相同的docker映像在不同的主机上有不同的行为-jersey 1不加载类

相同的docker映像在不同的主机上有不同的行为-jersey 1不加载类,docker,jersey,jax-rs,docker-container,docker-image,Docker,Jersey,Jax Rs,Docker Container,Docker Image,强调文本同一docker映像在不同主机上的行为不同。 在主机1上,属于rest包的类由jersey成功启动。 在主机2和3上,不会启动rest包的类 我的dockerfile是: 我以以下方式运行docker: docker run-d-P8080:8080-i-t语义网:最新版本 web.xml <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" &qu

强调文本同一docker映像在不同主机上的行为不同。 在主机1上,属于rest包的类由jersey成功启动。 在主机2和3上,不会启动rest包的类

我的dockerfile是:

我以以下方式运行docker:

docker run-d-P8080:8080-i-t语义网:最新版本

web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>


    <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>
                io.swagger.jaxrs.json,
                io.swagger.jaxrs.listing,
                restapi
            </param-value>
    </servlet>


    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/v0.6/*</url-pattern>
    </servlet-mapping>

</web-app>
<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-bundle -->
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-bundle</artifactId>
            <version>1.19</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-servlet -->
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-servlet</artifactId>
            <version>1.19</version>
        </dependency>
B) Jersey不会从restapi包-主机2和主机3启动任何类

我在另外两台不同的主机上试过

主持人2:

操作系统:Linux 3.10.0-957.27.2.el7.x86_64#1 SMP周一至七月29日17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Docker版本19.03.12,内部版本48a66213fe

主持人3:

Windows 10 Pro,OC build 17763.1039,版本1809

Docker版本19.03.8,构建afacb8b

日志-没有从restapi包启动任何类

14-Jul-2020 12:47:14.634 INFO [localhost-startStop-1] com.sun.jersey.api.core.PackagesResourceConfig.init Scanning for root resource and provider classes in the packages:
  io.swagger.jaxrs.json
  io.swagger.jaxrs.listing
  restapi
14-Jul-2020 12:47:14.676 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /usr/local/tomcat/webapps/reasoner-api.war has finished in 13,273 ms
com.sun.jersey.api.core.ScanningResourceConfig.logClasses根资源类发现行甚至不会出现在日志中,就像主机1中的成功场景一样

当我击中http://localhost:8080/reasoner-api/v0.6/testReasoner,我得到以下错误:

java.lang.NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoaderPA()Ljava/security/PrivilegedAction;
让我知道我是否应该为主持人提供更多信息

14-Jul-2020 12:47:14.634 INFO [localhost-startStop-1] com.sun.jersey.api.core.PackagesResourceConfig.init Scanning for root resource and provider classes in the packages:
  io.swagger.jaxrs.json
  io.swagger.jaxrs.listing
  restapi
14-Jul-2020 12:47:14.676 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive /usr/local/tomcat/webapps/reasoner-api.war has finished in 13,273 ms
java.lang.NoSuchMethodError: com.sun.jersey.core.reflection.ReflectionHelper.getContextClassLoaderPA()Ljava/security/PrivilegedAction;