我是Java EE和Tomcat的新手。
我使用JBoss EWS 2.0在OpenShift中使用REST Java应用程序,我没有遇到任何问题。最近,我们得到了一台服务器,我必须运行我的网络服务。
在How to deploy a war file in Tomcat 7之后,我转到了我的应用程序root并使用了以下命令:
jar -cvf myapp.war *
请注意,myapp
是我的应用程序名称。
我将 .war 文件放到/base/path/of/tomcat/webapps/
并转到Tomcat GUI App Manager。
我看到Tomcat使用我的 .war 名称创建了一个文件夹并将文件放入其中,所以我启动了我的应用程序但是当我去http://localhost:8080/myapp/
时它返回了404.但是, OpenShift,当我打开它(打开根路径)时,它显示 index.html ,因为我的webservice路径无效且不起作用。
请指导我,谢谢你花在我问题上的时间。
答案 0 :(得分:0)
我必须写一个答案,因为我无法发表评论。
我建议给我们一份web.xml文件。
另一方面,你必须知道Tomcat是一个Servlet容器而JBoss是一个完整的堆栈JEE服务器。如果您的Web应用程序中有EJB,则无法运行。
答案 1 :(得分:0)
ASClémentDuveau表示,EJB应用程序无法部署在Servlet容器中(如Tomcat)。 EJB应用程序需要部署在JBoss,Wildfly,GlassFish,Weblogic,Websphere,TomEE等应用服务器中。
与Tomcat(符合Java EE)最相似的服务器是TomEE。
建议:如果需要使用Tomcat,可以为Spring Framework更改EJB。
答案 2 :(得分:0)
很简单。
在tomcat上使用自定义路径
部署war文件有两种方法第一个是
将war文件重命名为您想要的自定义网址(例如,war文件名为java-web-app-1.0.war
,路径为myapp
,因此您必须将其重命名为myapp.war)
并将其复制并放在{tomcat-path}/webapps/
下,然后Tomcat / TomEE完成其工作。 (它创建一个与war文件名相同的空目录)
大约1分钟后,您可以检查路径(在此示例中必须为localhost:8080/myapp
并查看您的war文件已部署)
第二个是使用Tomcat GUI。
转到Web Application Manager
部分。
它是这样的页面:
在Deploy
框中的只填充Context
字段(它将是自定义路径,在本例中为myapp
),然后选择war文件并按下部署按钮。不需要填写XML Configuration file URL
字段)
然后它会给你一个这样的信息:
这意味着您的war文件已部署在自定义路径上。