欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI

页面树结构

欢迎使用普元文档库

Skip to end of metadata
Go to start of metadata

【问题描述】

集成jaxrs-ri-2.23.1框架去实现rest api开发接口的,但是当我们将jersey-container-servlet.jar,jersey-client.jar等jar包放入lib中后,即使不去在构建路径中添加jar,启动服务时候也会报错
报错信息如下:

严重: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/default]]
 at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:632)
 at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1247)
 at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1898)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
 at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
 at java.util.concurrent.FutureTask.run(FutureTask.java:138)
 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
 at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.UnsupportedClassVersionError: org/glassfish/jersey/servlet/init/JerseyServletContainerInitializer : Unsupported major.minor version 51.0 (unable to load class org.glassfish.jersey.servlet.init.JerseyServletContainerInitializer)
 at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2961)
 at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
 at java.lang.Class.forName0(Native Method)
 at java.lang.Class.forName(Class.java:249)
 at org.apache.catalina.startup.WebappServiceLoader.loadServices(WebappServiceLoader.java:187)
 at org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:152)
 at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1546)
 at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1268)
 at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:876)
 at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:374)
 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
 at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
 at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5355)
 at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
 ... 11 more
初步估计是jar包冲突导致的问题后来我们发现发现,web.xml中配置了resteasyservlet,请问有相关的使用文档么?如果有的话我们就可以直接使用而不用集成其他框架了

【解答】

这个问题的根源就是引用的jar包编译级别和当前的jre版本不兼容, 为了保证项目未来的兼容性更好,建议调整整个项目的编译级别,编译级别越低兼容性越好,这个可以参考apache开源项目的最终介质