java - Eclipse:启动静态资源时出错 java.lang.IllegalArgumentException

标签 java eclipse tomcat spring-mvc

我的 Eclipse IDE 中有一个名为 myproject2 的项目。我有一个 Tomcat 应用程序服务器,我可以在那里添加资源 myproject2(它是一个 Spring MVC 项目)。

现在,我在 Eclipse 中关闭了 myproject2,从 Tomcat 资源中删除了 myproject2,并使用项目名称:myproject3 进行了新的 Subversion check out 。

重新启动 IDE 我想将 myproject3 设置为 Tomcat 服务器,以便部署它。但是所有可用的都是 myproject2 可供选择。所以我选择它。我可以访问 http://localhost:8080/myproject2/但我收到此警告并在控制台中提供服务:

14.12.2010 11:43:11 org.apache.catalina.startup.HostConfig deployDescriptor
WARNING: A docBase C:\Spring\apache-tomcat-6.0.29-windows-x86\apache-tomcat-6.0.29\webapps\myproject2 inside the host appBase has been specified, and will be ignored
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext resourcesStart
SERVE: Error starting static Resources
java.lang.IllegalArgumentException: Document base C:\Spring\apache-tomcat-6.0.29-windows-x86\apache-tomcat-6.0.29\webapps\myproject3 does not exist or is not a readable directory
at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:142)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4249)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4418)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext start
SERVE: Error in resourceStart()
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext start
SERVE: Error getConfigured
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext start
SERVE: Context [/myproject3] startup failed due to previous errors
14.12.2010 11:43:11 org.apache.catalina.core.StandardContext stop
INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/myproject3] has not been started

那么这里有什么问题呢?为什么我没有 myproject3 来选择应该在 Tomcat 中部署什么?

有人知道吗?

最好的问候。


更新:

.project (myproject2):

<projectDescription>
    <name>myproject</name>
    <comment>My-Project. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
    <projects/>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
</projectDescription>

.project (myproject3)

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>myproject</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.common.project.facet.core.builder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.validation.validationbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.maven.ide.eclipse.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
         <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
         <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
         <nature>org.maven.ide.eclipse.maven2Nature</nature>
         <nature>org.eclipse.jdt.core.javanature</nature>
         <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
         <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
    </natures>
</projectDescription>

最佳答案

您是使用 Eclipse WTP 和 Tomcat 服务器集成来部署您的应用程序,还是您正在创建 WAR 并自行将其部署到 Tomcat?

如果您正在使用集成,您可以尝试创建一个 WAR 并自己部署它,接下来,看看会发生什么。发布更新 - 我会在之后跟进。


我再次阅读了您的原始问题。也许问题出在您创建 myproject3 的方式上。我怀疑没有必要的项目性质来通过 Eclipse 部署到服务器。 (“项目性质”是一个 Eclipse 概念;一个项目可以有多个项目;Eclipse 的不同部分检查项目性质以确定它们可以对哪些项目执行操作。)您说您从 Subversion check out 代码并在一个项目中创建项目步。这不一定会创建正确类型的项目。 Eclipse 的 J2EE 部署机制只允许您部署具有特定项目性质的项目——我认为是“eclipse.common.project.facet.core.nature”。此外,您的项目需要某些 Eclipse 构建器才能可行;我认为“org.eclipse.wst.common.project.facet.core.builder”是其中之一。

项目根目录下的 .project 文件是配置性质和构建器的地方。您应该在您的两个项目中检查这些文件。

问:在您的 Eclipse 工作区中,myproject2/.project 和 myproject3/.project 是否有显着差异(除了名称之外)?在此处发布差异。

问:myproject2在SVN中是否包含.project文件?

回答这些问题应该会告诉您更多信息。您可能需要仔细检查用于在单个步骤中签​​出和创建项目的不同选项。

关于java - Eclipse:启动静态资源时出错 java.lang.IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4438374/

相关文章:

tomcat - 无法获取tomcat 8 Up : Zip file exception

java对象引用在方法中被改变并理解结果

java - 在 SWT 中获取组组合内的所有复选框

java - Clojure Swing 异常 "No implementation of method: :children"

java - Maven - 从 JAR 加载资源?

java - 为什么无法从 WEB-INF 文件夹中加载 POSModel 文件?

eclipse - 如何在eclipse 中配置maven tomcat 端口?

hashmap的java流

java - 测试等待 VideoView 完成以开始新 Activity robolectric 3

c++ - 在编辑器中打开后 Ubuntu Linux 上的 Eclipse 构建错误