我目前正在使用 Jersey 1.8 和 Jersey Spring 插件 1.8,使用 JBoss EAP 6.3,它在 JDK 1.6 上运行良好。现在在升级到 JDK 1.8 和 JBoss EAP 6.4 时,绑定响应[1]时不支持 Jersey 1.0 。之后我将 Jersey 和 Jersey+Spring 版本升级到 2.4.1 [2]但是我得到了“异常:java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util /地图;” 启动服务器时出错。有人可以让我知道如何解决此问题或使用此 JDK 1.8 迁移实施的任何其他可能的解决方案吗?
- 尝试检查 mvn 依赖关系:树并从 axis2-transport-local jar 中删除了 jsr311-api jar,但仍然得到方法未找到错误 [3]
尝试注释掉“/jboss-eap-6.4\modules\system\layers\base\javax\ws\rs\api\main\module.xml” [5] 中配置的资源,并在启动时出现模块未找到错误服务器。即使这可行,也不确定这是正确的方法。
[1] 绑定错误 JDK 1.8 和 Jersey 1.8
20:01:12,484 错误 [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/tst02].[jersey-serlvet]] (ajp-/10.78.180.83:9109- 14) JBWEB000236: Servlet jersey-serlvet 的 Servlet.service() 抛出异常:java.lang.AbstractMethodError at org.codehaus.jackson.map.AnnotationIntrospector$Pair.findSerializer(AnnotationIntrospector.java:1148) [jackson-mapper-asl- 1.9.9.redhat-4.jar:1.9.9.redhat-4] 在 org.codehaus.jackson.map.ser.BasicSerializerFactory.findSerializerFromAnnotation(BasicSerializerFactory.java:366) [jackson-mapper-asl-1.9.9。 redhat-4.jar:1.9.9.redhat-4] 在 org.codehaus.jackson.map.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:252) [jackson-mapper-asl-1.9.9.redhat-4. jar:1.9.9.redhat-4] 在 org.codehaus.jackson.map.ser.StdSerializerProvider._createUntypedSerializer(StdSerializerProvider.java:782)[jackson-mapper-asl-1.9.9.redhat-4.jar:1.9.9.redhat-4] 在 org.codehaus.jackson.map.ser.StdSerializerProvider._createAndCacheUntypedSerializer(StdSerializerProvider.java:735)[jackson -mapper-asl-1.9.9.redhat-4.jar:1.9.9.redhat-4]
[2] 使用 2.4.1 升级到 Jersey 和 Jersey+Spring 版本后出错
06:12:53,208 错误 [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/tst01]] (ServerService 线程池 -- 113) JBWEB000289: Servlet jersey-serlvet 抛出负载() 异常:java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map; 在 org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:272) [jersey-server-2.4.1.jar:] 在 org.glassfish.jersey.servlet.WebComponent.(WebComponent.java:302) [jersey -container-servlet-core-2.4.1.jar:] 在 org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:167) [jersey-container-servlet-core-2.4.1.jar:] 在org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:349) [jersey-container-servlet-core-2.4.1.jar:] 在 javax.servlet.GenericServlet.init(GenericServlet.java:242) [ jboss-servlet-api_3.0_spec-1.0.2。
[4] 我们模块的 POM.xml Maven 依赖项
<dependency> <groupId>org.glassfish.jersey.ext</groupId> <artifactId>jersey-spring3</artifactId> <version>2.4.1</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>2.4.1</version> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-multipart</artifactId> <version>2.4.1</version> </dependency> <dependency> <groupId>org.jboss.spec.javax.ws.rs</groupId> <artifactId>jboss-jaxrs-api_2.0_spec</artifactId> <version>1.0.0.Final</version> </dependency>
[5] JBoss 模块.xml -->
<dependencies> <module name="org.jboss.resteasy.resteasy-jaxrs" services="export"/> </dependencies> </module>