我已将这些 Jersey 1.19 库打包到我的 WEB-INF 文件夹中:
- jersey-client-1.19.4.jar
- jersey-core-1.19.4.jar
- jersey-json-1.19.4.jar
- jersey-multipart-1.13.jar
- jersey-server-1.19.4.jar
- jersey-servlet-1.19.4.jar
- jsr311-api-1.1.1.jar
并已通过打包 war 的解压验证了它们的存在,并将其部署在 tomcat 8.5 上,并且启动正常。
但是,当我在此服务器上运行流量时,我在 server.init()
上遇到异常:
com.sun.jersey.spi.service.ServiceConfigurationError:com.sun.jersey.spi.container.WebApplicationProvider::java.io.FileNotFoundException:JAR条目WEB-INF/lib/jersey-server-1.19 .4.jar
此外, 我有一个 Java 应用程序可以构建这些 Jersey 应用程序,并且已经运行了很多年。现在我也添加了对 Jersey 2 应用程序的支持,并将这些 war 文件与 tomcat 上所需的依赖项一起打包(tomcat 8.5 带有 jersey1 和 jersey2 wars),主应用程序的类路径中没有关于 jersey 的内容。
最佳答案
检查 Jersey 的 pom.xml 中是否存在所有依赖项。
使用这些依赖项更新项目的pom.xml:
<dependencies>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.19.4</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.19.4</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.19.4</version>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
<version>1.19.4</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.19.4</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.19.4</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
添加这些依赖项后,在项目上执行mvn clean install/package
以创建一个新的war,然后将其部署到tomcat上。
我认为问题将会得到解决。
关于java - 将所有依赖项打包到 WEB-INF 中的 Jersey 1.19.4 应用程序在 Tomcat 8.5 上为 jersey-server 抛出 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63032901/