java - Artifactory java.lang.ClassNotFoundException : org. glassfish.jersey.servlet.internal.ServletContainerProviderFactory

标签 java maven tomcat jersey artifactory

我刚刚下载了 Artifactory zip,将其解压缩到 C: 上的路径,将 ARTIFACTORY_HOME env 设置为该路径,然后运行 ​​installService.bat。一切顺利。服务启动,但 servlet 未部署。捆绑的 Jersey jar 似乎有一些问题(可能是错误的版本?)。有人看过吗?

这是 artifactory-stderr.2018-01-17 的内容:

2018-01-17 16:56:24 Commons Daemon procrun stderr initialized
Jan 17, 2018 4:56:25 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8081"]
Jan 17, 2018 4:56:25 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Jan 17, 2018 4:56:25 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8040"]
Jan 17, 2018 4:56:25 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Jan 17, 2018 4:56:25 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8019"]
Jan 17, 2018 4:56:25 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Jan 17, 2018 4:56:25 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
Jan 17, 2018 4:56:25 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.5.23
Jan 17, 2018 4:56:25 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor [C:\bin\artifactory\tomcat\conf\Catalina\localhost\access.xml]
Jan 17, 2018 4:56:25 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor [C:\bin\artifactory\tomcat\conf\Catalina\localhost\artifactory.xml]
Jan 17, 2018 4:56:25 PM org.apache.catalina.startup.ContextConfig processServletContainerInitializers
INFO: Unable to process ServletContainerInitializer for [org.glassfish.jersey.servlet.init.JerseyServletContainerInitializer]. This is most likely due to a class defined in the @HandlesTypes annotation being missing. Enable DEBUG level logging for the full stack trace.
Jan 17, 2018 4:56:26 PM org.apache.catalina.core.ContainerBase addChildInternal
SEVERE: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/access]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1842)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: org/glassfish/jersey/servlet/internal/ServletContainerProviderFactory
    at org.glassfish.jersey.servlet.init.JerseyServletContainerInitializer.onStartup(JerseyServletContainerInitializer.java:134)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5196)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 10 more
Caused by: java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.internal.ServletContainerProviderFactory
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1291)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
    ... 13 more

Jan 17, 2018 4:56:26 PM org.apache.catalina.startup.HostConfig deployDescriptor
SEVERE: Error deploying configuration descriptor [C:\bin\artifactory\tomcat\conf\Catalina\localhost\access.xml]
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/access]]
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:756)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:630)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1842)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Jan 17, 2018 4:56:26 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deployment of configuration descriptor [C:\bin\artifactory\tomcat\conf\Catalina\localhost\access.xml] has finished in [562] ms
Jan 17, 2018 4:56:28 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deployment of configuration descriptor [C:\bin\artifactory\tomcat\conf\Catalina\localhost\artifactory.xml] has finished in [2,917] ms
Jan 17, 2018 4:56:28 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory [C:\bin\artifactory\tomcat\webapps\ROOT]
Jan 17, 2018 4:56:28 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory [C:\bin\artifactory\tomcat\webapps\ROOT] has finished in [32] ms
Jan 17, 2018 4:56:28 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8081"]
Jan 17, 2018 4:56:28 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8040"]
Jan 17, 2018 4:56:28 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8019"]

最佳答案

我不再偷懒了,想通了。希望有一天这对其他人有所帮助。

我不确定他们为什么不捆绑合适的 Jersey jar ,但无论如何。

在此处下载 Jersey 2.26 包:http://repo1.maven.org/maven2/org/glassfish/jersey/bundles/jaxrs-ri/2.26/jaxrs-ri-2.26.zip

在此处下载 Jersey-Guava: http://central.maven.org/maven2/org/glassfish/jersey/bundles/repackaged/jersey-guava/2.25.1/jersey-guava-2.25.1.jar

将所有这些 jar 放入两个 web 应用程序(artifactory 和 access)的 WEB-INF/lib 目录中。

就是这样!

关于java - Artifactory java.lang.ClassNotFoundException : org. glassfish.jersey.servlet.internal.ServletContainerProviderFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48324994/

相关文章:

java - 使用系统属性和静态字段迁移到 Maven 时,JUnit 类加载器出现问题

java - 部署的 .war 给出 404 错误

Java - 允许 null 作为 HashMap 键的原因?

java - 如何在 Spring 中以编程方式生成新的托管 bean

java - 代理(squid)后面的 Maven 测试

java - 无法使用 Spring+Maven 退出代码 1 执行 java

file - 在类路径 grails war/tomcat 上找不到文件

Tomcat 9 HTTP2 连接器在使用 ResponseEntity 发送字节数组时遇到问题

java - Apache 或其他一些 CLIENT JAVA 实现是否支持 HTTP/2?

java - 将 CSS 编译为 SWF 服务器端 Java,最佳做法是什么?