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

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

现在我关闭了Eclipse中的myproject2,从Tomcat资源中删除了myproject2并使用projectname:myproject3进行了新的Subversion结帐。

重新启动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)

  myproject My-Project. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.    org.eclipse.jdt.core.javabuilder    org.eclipse.jdt.core.javanature   

.project(myproject3)

   myproject      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文件是配置自然和构建器的位置。 您应该检查两个项目中的那些文件。

问:在Eclipse工作区中,myproject2 / .project和myproject3 / .project是否有明显不同(名称除外)? 在这里发布差异。

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

回答这些问题应该告诉你更多。 您可能需要仔细检查一步检出和创建项目的不同选项。

我认为Ladlestein肯定是在正确的轨道上,但我可以通过我能够重现它的方式为这个问题添加更多的上下文:

我有一个类似的Eclipse(Indigo)设置,我有一个Maven项目,并使用Eclipse WTPfunction部署到嵌入式Tomcat 7服务器。 如果我从Eclipse中导入项目作为Maven项目,那么一切正常,但是当我执行mvn eclipse:clean时出现问题mvn eclipse:cleanmvn eclipse:eclipse从命令行执行mvn eclipse:eclipse 。 这当然会重建Eclipse .project文件,但是没有一些显然重要的NaturesbuildCommands

我观察的.project文件非常类似于问题中的错误(在myproject2中),在Eclipse本身内,项目不再是Eclipse所谓的“动态Web模块” – 因此不可部署 – 也不再是Maven项目。 我能够解决这个问题如下:

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

  ... ...  org.eclipse.m2e.core.maven2Builder    ... ... org.eclipse.m2e.core.maven2Nature  

现在,您可以通过右键单击项目并运行Maven > Update Project Configuration...来确保项目是最新的Maven > Update Project Configuration...

接下来,您可以通过“ Properties > Project Facets > Dynamic Web Module (复选框)使项目可部署。 这是一套更完整的说明,用于使您的项目成为动态Web模块 。

最后,您的.project文件看起来应该更像这样:

   project1 NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.     org.eclipse.wst.common.project.facet.core.builder     org.eclipse.jdt.core.javabuilder     org.eclipse.m2e.core.maven2Builder     org.eclipse.wst.validation.validationbuilder      org.eclipse.jdt.core.javanature org.eclipse.wst.common.project.facet.core.nature org.eclipse.m2e.core.maven2Nature org.eclipse.wst.common.modulecore.ModuleCoreNature   

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

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

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

或者,删除服务器并再次添加。

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

我有类似的问题(使用eclipse和tomcat7和WTP)我通过手动编辑eclipse_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmpX\server.xml解决了这个问题,其中tmpX是临时文件夹,其中包含缓存项目发布设置。

只有创建新项目才能解决此问题。

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

上下文docBase =“[CATALINA_HOME] \ webapps \\ ROOT”path =“”reloadable =“false”/>

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

我遇到了同样的问题。 在我的服务器概述中(在服务器选项卡中双击服务器),我必须将部署路径设置为“MY_SERVER_PATH \ webapps”。希望它有用。

谢谢 :-)

从IDE中删除服务器实例并将其添加回来解决了我的问题。

在我的情况下,我做了以下两个步骤,错误消失了:

1 – 右键单击​​项目>属性>项目构面>运行时我删除了Web服务器然后应用。 再添加它然后应用

2 – 重新启动IDE

尴尬地为我工作。

问题解决了!! 只需删除您的服务器实例并从新服务器开始。