java - 在 eclipse web 项目中需要什么才能让 run-as...run-on-server 工作?

标签 java eclipse tomcat

为了使 eclipse 的 run-as...run-on-server 命令正常工作,在 eclipse 动态 Web 项目中到底需要什么?

我在 eclipse 动态 web 项目中有一个经过全面测试的应用程序,我一直在使用 tomcat 7 管理器应用程序运行它,它允许您指向应用程序的 xml 配置文件,以便在创建之前在开发过程中发布应用程序 war 文件。那个应用的xml配置文件只是指向了web.xml的位置,如下:

<Context path="/myapp" docBase="C:\mypath\myapp\web"></Context>

(我也有一个 war 文件,但这不在这个问题的范围内。)

出于各种原因,我希望能够使用 eclipse 的 run-as...run-on-server 命令来测试这个应用程序,但是每次我尝试地点。

堆栈跟踪中的以下主要错误是 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 管理器运行时有效,因此我不确定在此处添加代码是否相关。我想知道是否只是缺少一些关键 Assets ,或者需要配置一些设置。

也许 ECLIPSE 没有找到 WEB.XML? web.xml 文件位于上面显示的上下文路径中。 Eclipse 可能希望它位于 WebContent/WEB-INF/web.xml 而不是,但我想我更改了首选项中的设置以匹配上面的上下文路径,并且使用 WebContent 文件夹会弄乱我的构建文件,所以我想避免那个。

最佳答案

在项目属性下的“部署程序集”下,确保包含您的 web.xml 的文件夹在列表中。我有一个 maven 项目,它在 webapps 文件夹中有 web.xml,但是默认的 Web 部署配置是发布“/WebContent”,并遗漏了我的“/src/main/webapp”文件夹,所以 Tomcat 没有看到它在服务器上运行之后。

如果您没有看到 Deployment Assembly,请转到项目属性、项目方面,确保选择“动态 Web 模块”,然后应用。然后返回项目属性,您应该会看到“部署程序集”的新选项。

此外,如果您确实有一个 maven 管理的项目,您将需要将您的 maven 依赖项添加到您的列表以及部署程序集中(添加 -> java 构建路径条目 -> maven 依赖项)。

关于java - 在 eclipse web 项目中需要什么才能让 run-as...run-on-server 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18519653/

相关文章:

java - 在 Java 中获取事件源

javascript - 如何从不同设备连接到 firestore 上的同一文档?

java - 刷新Jtable就是滚动表格

python - 有没有办法让 Eclipse+PyDev 像 Python 的 help() 那样显示函数文档?

java - 创建评估新创建的变量的代码模板

java - 动态 Web 项目 - 项目构面未将 CDI 显示为项目构面

java - Tomcat - 访问部署的应用程序时端口和 url 发生变化

java - 在 Tomcat 服务器上部署 JAR 或执行 java -jar 之间的区别

tomcat - niceditor中的uri更改

tomcat - Tomcat Http11NioProtocol的缺点