为了让eclipse的run-as ... run-on-server命令工作,在Eclipse的动态Web项目中究竟需要什么?
我在eclipse动态Web项目中有一个经过全面测试的应用程序,我一直使用tomcat 7管理器应用程序运行它,它允许您指向应用程序的xml配置文件,以便在开发之前发布应用程序一个战争档案。该应用程序xml配置文件只指向web.xml的位置,如下所示:
<Context path="/myapp" docBase="C:\mypath\myapp\web"></Context>
(我也有一个war文件,但这超出了这个问题的范围。)
由于各种原因,我希望能够使用eclipse的run-as ... run-on-server命令测试这个应用程序,但这样做每次我尝试任何url时都会导致404错误现场。
堆栈跟踪的以下主要错误是 dismissed by other postings:
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:myapp' did not find a matching property.
对于踢,这是eclipse控制台中的整个堆栈跟踪:
Aug 29, 2013 12:28:54 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\glassfish\jdk\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/eclipse_kepler/jre/bin/../jre/bin/server;C:/eclipse_kepler/jre/bin/../jre/bin;C:/eclipse_kepler/jre/bin/../jre/lib/amd64;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\MATLAB\R2010a Student\bin;C:\Program Files\Microsoft Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Java\jdk1.7.0_17\bin;C:\eclipse_kepler;;.
Aug 29, 2013 12:28:54 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:myapp' did not find a matching property.
Aug 29, 2013 12:28:55 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Aug 29, 2013 12:28:55 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Aug 29, 2013 12:28:55 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 801 ms
Aug 29, 2013 12:28:55 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Aug 29, 2013 12:28:55 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.42
Aug 29, 2013 12:28:55 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Aug 29, 2013 12:28:55 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Aug 29, 2013 12:28:55 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 462 ms
没有catalina.out文件,因为它试图通过eclipse运行tomcat。此外,代码在通过tomcat 7管理器运行时起作用,因此我不确定在此处添加代码是否相关。我想知道是否只缺少一些关键资产,或者需要配置一些设置。
PERHAPS ECLIPSE没有找到WEB.XML? web.xml文件位于上面显示的上下文路径中。 Eclipse可能希望它位于WebContent / WEB-INF / web.xml中,但我认为我在首选项中更改了该设置以匹配上面的上下文路径,并且使用WebContent文件夹会弄乱我的构建文件,所以我想避免这一点。
答案 0 :(得分:2)
在项目属性下,在&#34;部署程序集&#34;下,确保包含web.xml的文件夹位于列表中。我有一个maven项目,它在webapps文件夹中有web.xml,但默认的Web部署配置是发布&#34; / WebContent&#34;,并且省略了我的&#34; / src / main / webapp&#34 ;文件夹,所以Tomcat在服务器上运行后没有看到它。
如果您没有看到部署程序集,请转到项目属性,项目构面,确保&#34;动态Web模块&#34;选中,然后申请。然后返回项目属性,您应该看到&#34;部署程序集&#34;的新选项。
此外,如果您确实有maven托管项目,则需要将maven依赖项添加到列表以及部署程序集中(add - &gt; java build path entries - &gt; maven dependencies)。