我正在尝试使用 maven 在 weblogic 服务器中部署axis2 webservices。该项目有 maven 模块,其中一个是我在其中定义了轴 servlet 的战争。wsdl 在那里,所以我使用 wsdl2code 插件生成 xmlbean 和模式并将其放入 jar 模块中。结构如下。
--lv-ear (ear with dependency on war)
|
--lv-ws
|
--lv-ws-ccid (jar module with skeleton and xmlbeans)
|
--lv-ws-ecs (jar module with skeleton and xmlbeans)
|
--lv-ws-web (war module with dep on jar modules)
|
--WEB-INF
|
--conf/axis2.xml
--services/ccid/services.xml
我构建并将耳朵部署到 weblogic 域。战争作为 ear 的一部分成功部署,并部署了服务。我能够访问 wsdl 文件。当我尝试调用该服务时,我得到了以下模式文件的ClassNotFoundException。
Caused by: java.lang.ClassNotFoundException: schemaorg_apache_xmlbeans.system.s2104B1E6E09A2A85656B3E630BA151C1.TypeSystemHolder
我看到那条路径中的随机字符串对我来说不同。所以我尝试再次调用并低于NoClassDefFoundError,即使在我尝试了不同的方法后它仍然存在。
java.lang.NoClassDefFoundError: Could not initialize class com.lv.ws.ccid.xmlbean.InputDocument
at com.lv.ws.ccid.xmlbean.InputDocument$Factory.parse(InputDocument.java:463)
at com.lv.ws.ccid.CcidMessageReceiverInOut.fromOM(CcidMessageReceiverInOut.java:332)
at com.lv.ws.ccid.CcidMessageReceiverInOut.invokeBusinessLogic(CcidMessageReceiverInOut.java:46)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:173)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:144)
我对此进行了搜索,并找到了一些告诉基于http://axis.apache.org/axis2/java/core/docs/app_server.html为axis2配置应用服务器的内容。当我尝试它时,我得到了以下错误。
weblogic.xml.stax.XmlStreamInputFactory can not be cast to javax.xml.stream.XmlInputFactory
放弃该配置后,我通过将 webservice 框架和 xmlbean 文件放在 aar 中并将 aar 放入WEB-INF/services中进行了一些其他可能的部署。我还尝试将MANIFEST.MF 中的Class-Path条目放在 jar 文件的 ear / war 中,但无济于事。我仍然得到相同的NoClassDefFoundError。你能给我一些解决这个问题的建议吗?