我的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):
<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>
答案 0 :(得分:1)
您是使用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文件?
回答这些问题应该告诉你更多。您可能需要仔细检查一步中检出和创建项目的不同选项。
答案 1 :(得分:1)
我认为 Ladlestein 肯定是在正确的轨道上,但我可以通过我能够重现它的方式为这个问题添加更多的上下文:
我有一个类似的Eclipse(Indigo)设置,我有一个Maven项目,并使用Eclipse WTP功能部署到嵌入式Tomcat 7服务器。如果我从Eclipse中将项目作为Maven项目导入,那么一切正常,但是当我从命令行执行mvn eclipse:clean
和mvn eclipse:eclipse
时出现问题。这当然会重建Eclipse .project
文件,但没有一些显然重要的 Natures 和 buildCommands 。
我观察到一个.project
文件非常类似于问题中的错误文件(在myproject2中),在Eclipse本身中,项目不再是Eclipse所谓的动态Web模块&#34; - 因此无法部署 - 也不再是Maven项目。我能够解决这个问题如下:
首先通过在.project
文件中添加以下内容使其成为Maven项目(我不知道Eclipse本身是否有更好的方法):
<buildSpec>
...
...
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
</buildCommand>
</buildSpec>
<natures>
...
...
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
现在,您可以通过右键单击项目并运行Maven > Update Project Configuration...
来确保项目是最新的。
接下来,您可以通过Properties > Project Facets > Dynamic Web Module
(复选框)使项目可部署。这是一个更complete set of instructions for making your project a Dynamic Web Module。
最后,您的.project
文件应该更像这样:
<?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>
答案 2 :(得分:1)
这是因为项目在使用该服务器之前运行或者是使用该服务器配置的。因此,它的路径存储在tomcat目录中的文件夹中。
在你的tomcat文件夹中,转到conf \ Catalina \ localhost \
在此文件夹中,删除与项目对应的xml文件。
或者,删除服务器并重新添加。
答案 3 :(得分:0)
我搜索了几天,但我找不到解决方案。所以我重新安装了一切,并从一个新项目中进行了设置。
答案 4 :(得分:0)
我有类似的问题(使用eclipse&amp; tomcat7&amp; WTP)&amp;我通过手动编辑eclipse_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmpX\server.xml
来解决它,其中tmpX是缓存项目发布设置的临时文件夹。
答案 5 :(得分:0)
只有创建新项目才能解决此问题。
答案 6 :(得分:0)
我遇到了类似的问题(使用eclipse&amp; tomcat7&amp; WTP)。 通过删除(注释掉)以下行来解决它 %CATALINA_HOME%/ CONF / server.xml中
上下文docBase =“[CATALINA_HOME] \ webapps \\ ROOT”path =“”reloadable =“false”/&gt;
答案 7 :(得分:0)
解决我的问题。我只是从另一个可运行的Web项目中复制.project文件并修改项目名称属性
答案 8 :(得分:0)
我遇到了同样的问题。在我的服务器概述中(在服务器选项卡中双击服务器),我必须将部署路径设置为“MY_SERVER_PATH \ webapps”。希望它有用。
谢谢: - )
答案 9 :(得分:0)
从IDE中删除服务器实例并将其添加回来解决了我的问题。
答案 10 :(得分:0)
在我的情况下,我做了以下两个步骤,错误就消失了:
1 - 右键点击项目&gt;属性&gt;项目方面&gt;运行 我删除了Web服务器然后应用。再添加它然后应用
2 - 重新启动IDE
尴尬地为我工作。
答案 11 :(得分:-1)
问题已解决!! 只需删除您的服务器实例,然后从新服务器开始。