weblogic8.1上axis1.4客户端调用问题

来源:互联网 发布:mac图片编辑大小 编辑:程序博客网 时间:2024/06/07 04:06

最近做的系统改造

本系统运行在weblogic8上,jdk使用1.4,要调用外围系统的webservice接口,服务端由XFire生成

我先根据服务端提供的wsdl生成了客户端调用代码

在进行调用测试的时候,我先在系统内用main方法的方式调用,可以调通

之后把代码放到需要用的地方,打包,部署在本机weblogic上

运行报错:

Caused by: java.lang.NullPointerException
        at org.apache.axis.message.MessageElement.addTextNode(MessageElement.java:1388)
        at org.apache.axis.message.SOAPHandler.addTextNode(SOAPHandler.java:148)
        at org.apache.axis.message.SOAPHandler.endElement(SOAPHandler.java:112)
        at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Lorg.apache.xerces.xni.QName;Lorg.apache.xerces.xni.Augmentations;)V(Unknown Source)
        at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement()I(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Z)Z(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Z)Z(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Z)Z(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Lorg.apache.xerces.xni.parser.XMLInputSource;)V(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Lorg.apache.xerces.xni.parser.XMLInputSource;)V(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Lorg.xml.sax.InputSource;)V(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
        at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
        at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796)
        at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
        at org.apache.axis.client.Call.invoke(Call.java:2767)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at com.ailk.webservice.code.InvoiceHttpBindingStub.getInvoiceCode(InvoiceHttpBindingStub.java:165)
        at com.linkage.billing.cashbill.invoiceManage.invoicePrint.InvoicePrintAction.getInvoiceInfo(InvoicePrintAction.java:204)

 

在网上搜了一些解决方法:

1. 修改WEB-INF下的weblogic.xml文件,大致是优先加载web-inf中的class

    我修改后,系统进不去了,这个方法不行

2. 修改weblogic 的 startWebLogic.cmd 启动文件,将axis1.4的jar包优先于weblogic的jar包

set axis_LIB_PATH=E:\study\axis\axis1.4\axis-1_4\lib

set New_AXIS=%axis_LIB_PATH%\axis.jar;%axis_LIB_PATH%\axis_ant.jar;%axis_LIB_PATH%\commons-discovery-0.2.jar;%axis_LIB_PATH%\commons-logging-1.0.4.jar;%axis_LIB_PATH%\jaxrpc.jar;%axis_LIB_PATH%\log4j-1.2.8.jar;%axis_LIB_PATH%\saaj.jar;%axis_LIB_PATH%\wsdl4j-1.5.1.jar;

 

set CLASSPATH=%New_LIB%;%New_BO%;%New_EJB%;%WEBLOGIC_CLASSPATH%;……

问题解决