我正在尝试将oracle java 6应用程序升级到java 7,这是一个struts应用程序。我正在使用Websphere应用程序服务器8.5.5.13作为我的应用程序服务器。由于某些Oracle Java 1.7不支持的jar文件版本,我无法启动该应用程序。 因此,我已经升级了glassfish jersey依赖项jar文件版本。
升级后,我得到了java.lang.NoSuchMethodError。我将球衣的版本从2.3.1更改为2.7。因为Java 1.7支持2.7的glassfish球衣版本。
以下是我的pom.xml文件中的依赖项。
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>${jersey-version}</version>
</dependency>
,并将glassfish hk2版本从2.2.0-b14更改为2.3.0
<dependency>
<groupId>org.glassfish.hk2</groupId>
<artifactId>hk2-api</artifactId>
<version>${hk2-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.hk2</groupId>
<artifactId>hk2-utils</artifactId>
<version>${hk2-version}</version>
</dependency>
这是我面临的例外:
[10/23/18 17:06:37:569 IST] 000000ab ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0271E: Uncaught init() exception created by servlet [JAX-RS REST Servlet] in application [BIGS_REST_EAR]: java.lang.NoSuchMethodError: javax/ws/rs/core/Application.getProperties()Ljava/util/Map;
如何避免使用NoSuchMethodError
?
我为此感到震惊。指引我正确的方向。