Java Spring MVC在GlassFish

时间:2017-03-20 23:31:00

标签: java spring spring-mvc deployment glassfish

首先,我想说我是java服务器的初学者,并且从不在我的intellij中的localhost以外的服务器上部署java .war应用程序。

我有一个简单的REST应用程序在localhost中正常工作,我还创建了war文件并通过命令“asadmin deploy --port 4849 war_name”进行部署,但是当我进入url http://stachurskipiotr4.usermd.net/cookbook-1.0-SNAPSHOT时,有一个服务器错误。

我完全不知道它是什么,我将不胜感激任何帮助。

2 个答案:

答案 0 :(得分:0)

访问该案例的域端口。如果您尚未配置,则默认值为8080。

http://stachurskipiotr4.usermd.net:8080/cookbook-1.0-SNAPSHOT

此外,如果已部署应用程序,请使用或登录管理控制台查看应用程序。您也可以直接从那里访问它。

答案 1 :(得分:0)

Glassfish已经提供了Jackson库,并且版本与Spring所依赖的版本冲突。 Glassfish是一个企业容器,企业容器是否有特定需求?尝试使用像Tomcat这样的常规servlet容器。如果你确实想要企业,也许你不需要使用Spring

编辑:

从项目中删除杰克逊罐子对你没有帮助; Spring代码想要它想要的版本。您可以尝试找出Glassfish提供的版本,然后查看Spring的哪个版本依赖于该版本并使用该版本的Spring。这是一个错误的尝试,因为这将只是冰山一角。不要尝试在企业容器中部署Spring代码,这些是竞争规范。

您的选择

1)找出为什么Tomcat无法正常工作。 Tomcat是经过实战考验的servlet容器,拥有数千个生产部署。

2)尝试使用不同的servlet容器,例如Jetty。

3)将代码重写为JEE规范并部署到Glassfish或Wildfly等企业容器(还有其他容器)。

4)使用Spring Boot嵌入容器并将应用程序打包为可执行jar。

EDIT2:

如果您选择了Spring Boot,那么您的工件将是一个可执行jar,因为容器是嵌入式的,所以不要将它部署到容器中。你可以通过java命令启动jar。您完全从部署中删除容器。我不知道您的部署环境,但此时您根本不使用Glassfish,您必须运行java命令来启动服务器。

如果需要Glassfish,则必须重写代码