我正在使用JAX-WS来创建存根。我必须在WAS 7.0上部署我的EAR文件。
默认情况下,对插件文件夹中存在的轴jar org.apache.axis2.jar中的类调用该类,并且发生错误以阻止应用程序运行。
在配置菜单中,我检查了父最后一个选项,并从plugins文件夹中删除了轴jar。然后应用程序运行正常。
但现在我的要求是运行应用程序而不从plugins文件夹中删除org.apache.axis2.jar。
我们有什么办法可以在不删除jar的情况下运行应用程序。
提前致谢。
尝试aviad的回答后编辑: 我仍面临同样的问题
Caused by: java.lang.ClassCastException: Cannot cast class org.apache.axis2.jaxws.spi.Provider to class javax.xml.ws.spi.Provider
at java.lang.Class.cast(Class.java:1691)
... 131 more
答案 0 :(得分:0)
我强烈建议您阅读WAS Class loader determination paper.。 您需要使用shared library并在EAR中定义依赖关系加载顺序。
祝你好运!
答案 1 :(得分:0)
首先想到的是为WebSphere Webservice框架(基于axis2)生成存根。这很有效,我有一起运行axis1和axis2 webservices的项目。这项工作可以在Eclipse pretty easy(或Rational Software Architect / Developer for WebSphere - available as demo versions as well)中完成。
第二个镜头是更改生成的类中的导入。这当然需要一个稳定的WSDL,因此不需要定期生成类。我认为从生成的类开始最终使它们适应您的需求并手动附加额外的代码总是一个好主意。