Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse:启动静态资源java.lang.IllegalArgumentException时出错_Java_Eclipse_Tomcat_Spring Mvc - Fatal编程技术网

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

Eclipse:启动静态资源java.lang.IllegalArgumentException时出错,java,eclipse,tomcat,spring-mvc,Java,Eclipse,Tomcat,Spring Mvc,我在EclipseIDE中有一个名为myproject2的项目。我有一个Tomcat应用服务器,我可以在那里添加资源myproject2(它是一个SpringMVC项目) 现在我在Eclipse中关闭了myproject2,从Tomcat资源中删除了myproject2,并使用projectname:myproject3进行了一次新的Subversion签出 重新启动IDE我想将myproject3设置为Tomcat服务器,以便部署它。但所有可用的都是myproject2可供选择。所以我选择了它

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

现在我在Eclipse中关闭了myproject2,从Tomcat资源中删除了myproject2,并使用projectname:myproject3进行了一次新的Subversion签出

重新启动IDE我想将myproject3设置为Tomcat服务器,以便部署它。但所有可用的都是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>

我的项目
我的项目。不支持:M2ECLIPSE不支持使用maven eclipse插件创建的项目文件。
org.eclipse.jdt.core.javabuilder
org.eclipse.jdt.core.javanature
.project(myproject3)


我的项目
org.eclipse.wst.jsdt.core.javascriptValidator
org.eclipse.wst.common.project.facet.core.builder
org.eclipse.jdt.core.javabuilder
org.eclipse.wst.validation.validationbuilder
org.maven.ide.eclipse.maven2Builder
org.eclipse.jem.workbench.JavaEMFNature
org.eclipse.wst.common.modulecore.ModuleCoreNature
org.maven.ide.eclipse.maven2Nature
org.eclipse.jdt.core.javanature
org.eclipse.wst.common.project.facet.core.nature
org.eclipse.wst.jsdt.core.jsNature

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

如果您使用的是集成,那么您可以尝试创建一个WAR,然后自己部署它,看看会发生什么。发布更新-我将在发布后跟进


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

项目根目录下的.project文件是配置natures和Builder的位置。您应该在两个项目中检查这些文件

问:在您的Eclipse工作区中,myproject2/.project和myproject3/.project是否有显著差异(除了名称之外)?在这里张贴差异

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


回答这些问题会告诉你更多。您可能希望在一个步骤中仔细检查签出和创建项目的不同选项。

我搜索了几天,但没有找到解决方案。所以我重新安装了所有东西,并从一个新项目中进行了设置

我认为Ladlestein的思路是正确的,但我可以通过重现问题的方式为这个问题添加更多的背景:

我有一个类似的Eclipse(Indigo)设置,其中我有一个Maven项目,并使用EclipseWTP特性部署到嵌入式Tomcat7服务器。如果我从Eclipse内部将项目作为Maven项目导入,那么一切都很好,但是当我从命令行执行
mvn Eclipse:clean
mvn Eclipse:Eclipse
时,就会出现问题。这当然会重建Eclipse
.project
文件,但没有一些明显重要的特性和buildcommand

我观察到一个
.project
文件与问题中的错误文件(在myproject2中)非常相似,并且在Eclipse内部,该项目不再是Eclipse所称的“动态Web模块”——因此不可部署——也不再是Maven项目。我可以通过以下方式解决此问题:

首先,将以下内容添加到
.project
文件中,使其成为一个Maven项目(我不知道是否有更好的方法通过Eclipse本身):


我也遇到了类似的问题(eclipse&tomcat7&WTP)&我通过手动编辑
eclipse\u workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmpX\server.xml解决了这个问题,其中tmpX是缓存项目发布设置的临时文件夹。

这个问题只有通过创建一个新项目才能解决。

(使用eclipse、tomcat7和WTP)。 通过从中删除(注释掉)以下行来解决此问题 %CATALINA_HOME%/conf/server.xml


Context docBase=“[CATALINA\u HOME]\webapps\\ROOT”path=”“reloadable=“false”/>

解决我的问题。我只是从另一个可运行的web项目复制.project文件并修改项目名称属性

发生这种情况是因为项目在使用该服务器之前运行,或者是使用该服务器配置的。因此,它的路径存储在tomcat目录中的文件夹中

在tomcat文件夹中,转到conf\Catalina\localhost\

在此文件夹中,删除与项目对应的xml文件

或者,删除服务器并将其添加到
<?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>
<buildSpec>
    ...
    ...
    <buildCommand>
        <name>org.eclipse.m2e.core.maven2Builder</name>
    </buildCommand>
</buildSpec>

<natures>
    ...
    ...
    <nature>org.eclipse.m2e.core.maven2Nature</nature> 
</natures>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>project1</name>
    <comment>NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
    <projects>
    </projects>
    <buildSpec>
        <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.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.validation.validationbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
        <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
    </natures>
</projectDescription>