为了让 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>
(我也有一个战争文件,但这超出了这个问题的范围。)
由于各种原因,我希望能够使用 eclipse 的 run-as...run-on-server 命令来测试这个应用程序,但是这样做会导致每次我尝试站点中的任何 url 时都会出现 404 错误。
堆栈跟踪中的以下主要错误被其他帖子忽略:
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 管理器运行时有效,所以我不确定在此处添加代码是否相关。我想知道是否只是缺少一些关键资产,或者需要配置一些设置。
也许 ECLIPSE 没有找到 WEB.XML?web.xml 文件位于上面显示的上下文路径中。Eclipse 可能希望它位于 WebContent/WEB-INF/web.xml 中,但我认为我更改了首选项中的设置以匹配上面的上下文路径,并且使用 WebContent 文件夹会弄乱我的构建文件,所以我想避免那。