在提供和使用Jersey 1.x时,是否有一致的方法将Web应用程序部署到Glassfish 4?我似乎偶尔会做一次,但我无法一致地重现部署。
注意:
从网络甚至是这里的几个主题我已经设法编制了一些"要做的事情"即使我找不到一个试图做这件事的例子(令人惊讶的是)
我们使用maven并使用Jersey 1.17部署泽西jar文件,这些文件实际上使其成为战争文件如下:
jersey-servlet-1.17.1.jar jersey-spring-1.17.1.jar jersey-server-1.17.1.jar jersey-apache-client-1.17.1.jar jersey-multipart-1.17.1.jar jersey-client-1.17.1.jar jersey-json-1.17.1.jar jersey-core-1.17.1.jar jsr311-api-1.1.1.jar
当我们安装(通过maven)我通过
-Dcom.sun.enterprise.overrideablejavaxpackages=javax.ws.rs,javax.ws.rs.core,javax.ws.rs.ext
到maven的安装..
我们还使用glassfish-web.xml
文件进行部署,我们将类加载器委托标志设置为" false"
典型的部署例外:
org.glassfish.jersey.server.ContainerException: java.lang.AbstractMethodError: javax.ws.rs.core.Response.
这些是我从研究中收集到的一些技巧,他们肯定有所帮助,但我似乎仍然缺少一些东西。
如果它设法部署我们经常得到:
HTTP Status 500 - Internal Server Error ... java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder;
这两个都表明Glassfish仍在尝试使用JAX-RS 2.0
也许有一些jar文件我们可以安全地从Glassfish安装中删除阻碍,也许在部署我们的war文件时我可以使用另一个步骤(或步骤)。
只是好奇是否有人必须这样做或知道如何。