Eclipse:启动静态资源java.lang.IllegalArgumentException时出错
我在EclipseIDE中有一个名为myproject2的项目。我有一个Tomcat应用服务器,我可以在那里添加资源myproject2(它是一个SpringMVC项目) 现在我在Eclipse中关闭了myproject2,从Tomcat资源中删除了myproject2,并使用projectname:myproject3进行了一次新的Subversion签出 重新启动IDE我想将myproject3设置为Tomcat服务器,以便部署它。但所有可用的都是myproject2可供选择。所以我选择了它。我可以访问,但我收到此警告并在控制台中服务: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可供选择。所以我选择了它
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>