Can';t用2.19覆盖Glassfish 4.1.0 Jersey版本(在Java 8应用程序中)
我们有一个需要升级到Java8的Java6应用程序。 作为该过程的一部分,其他组件也进行了升级,如Glassfish、Jersey。 我们现在无法使应用程序的一部分正常工作 我没有执行升级工作,但需要尝试解决问题,因为我们尚未找到具有相关知识的顾问来帮助我们解决问题。 我几乎不了解Glassfish和Jersey,所以如果我需要补充我的问题来澄清,请提前道歉 我们的应用程序配置了Jersey 2.19和Glassfish 4.1.0。 当我们在测试服务器上运行应用程序失败时,我们不会得到错误日志信息。 在本地安装Glassfish 4.1.0的VM(Mac OS X El Capitan,IntelliJ 2016.1.2,Java 1.8.091)中的开发人员机器上的调试模式下,我们得到错误: java.lang.ClassCastException:org.glassfish.jersey.server.validation.internal.validation无法强制转换为org.glassfish.jersey.internal.spi.AutoDiscoverable 执行升级的开发人员认为问题与Glassfish使用自己的Jersey版本而不是我们指定的2.19有关。 在他当地的环境中,他尝试按照 但这是不成功的 我们使用delegate=false设置了sun-web.xml文件,以覆盖Glassfish的球衣Can';t用2.19覆盖Glassfish 4.1.0 Jersey版本(在Java 8应用程序中),java,jersey-2.0,glassfish-4.1,Java,Jersey 2.0,Glassfish 4.1,我们有一个需要升级到Java8的Java6应用程序。 作为该过程的一部分,其他组件也进行了升级,如Glassfish、Jersey。 我们现在无法使应用程序的一部分正常工作 我没有执行升级工作,但需要尝试解决问题,因为我们尚未找到具有相关知识的顾问来帮助我们解决问题。 我几乎不了解Glassfish和Jersey,所以如果我需要补充我的问题来澄清,请提前道歉 我们的应用程序配置了Jersey 2.19和Glassfish 4.1.0。 当我们在测试服务器上运行应用程序失败时,我们不会得到错误日志
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD GlassFish Application Server 3.0 Servlet 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_3_0-0.dtd">
<sun-web-app>
<context-root>eden-node-app</context-root>
<class-loader delegate="false" />
</sun-web-app>
伊甸园节点应用程序
然后我们意识到,对于Glassfish 4.x,我们应该使用Glassfish-web.xml
(但认识到这一点并不适用于Glassfish 4.x)
所以我们换成了那个
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
<context-root>eden-node-app</context-root>
<class-loader delegate="false" />
</glassfish-web-app>
伊甸园节点应用程序
而且还做了额外的步骤
"
在GlassFish管理控制台中,转到配置->JVM设置,切换到JVM选项选项卡并添加以下选项:
-Dcom.sun.enterprise.overrideablejavaxpackages=javax.ws.rs,javax.ws.rs.core,javax.ws.rs.ext
重新启动GlassFish以使新的JVM设置生效。
"
仍然没有成功
我们认为这是一个问题,对吗?
你能帮我继续吗
提前谢谢