繁体   English   中英

Glassfish War部署Jar未加载

[英]Glassfish War deployment Jar not loaded

我有一个很烦人的问题。

因此,我想在我的Java Web应用程序中包含2个jar文件(.war文件)-要在2.1版本的glassfish中加载。

这些文件是:

axis2-adb-1.4.1.jarwstx-asl-3.2.4.jar

在我的控制台应用程序中,我只需将它们添加到我的类路径中就可以正常运行。 但是,当我将其部署到glassfish时(罐子放在WEB-INF/lib/ ),我得到了:

java.lang.reflect.InvocationTargetException

org.apache.axis2.AxisFault:org.apache.axis2.databinding.ADBException:无法在扩展映射器类中调用getTypeObject方法

我注意到在我的控制台应用程序中,当我从类路径中删除wstx-asl-3.2.4.jar ,我会得到这个完全相同的错误。 所以我的感觉是这个罐子没有怎么装。

然后我继续将瓶子重新包装在一起。 我制作了这个大axis2 + wstx.jar并将其加载到我的glassfish项目中。 同样的错误...一定要加载,因为如果没有axis2 jar,它将以更早的异常抛出axis2类。

所以我的理论是,glassfish会延迟加载jar,并且由于axis2 jar和我的主程序都不需要此wstx jar,因此无法正确加载。 但是我可能完全错了。

我真的希望有人可以帮助我解决这个问题。

从GF v2 b49开始, Woodstox作为Glassfish的一部分与sjsxp集成在一起,而sjsxp仍然是默认解析器。 要启用Woodstox,请在服务器端设置以下系统属性:

-Djavax.xml.stream.XMLEventFactory=com.ctc.wstx.stax.WstxEventFactory
-Djavax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory
-Djavax.xml.stream.XMLOutputFactory=com.ctc.wstx.stax.WstxOutputFactory

Glassfish v2中的Woodstox中有更多详细信息。

如果使用集成的Woodstox不满足您的要求,则可以尝试通过在class-loader元素中设置delegate="false"进行设置,以激活sun-web.xml文件中的“类加载委托功能”。 像这样:

<sun-web-app>
  <class-loader delegate="false"/>
</sun-web-app>

我认为这两个罐子都有同一个类。 不带getTypeObject方法的类将首先加载。 如果有机会更改classpath中已加载jar的顺序,则将有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM