我想知道如何删除以下代码中的错误 . 我的客户代码是:

public class TestClient {

public static void main(String [] args) {
    try {
        String endpoint = "http://localhost:8080//services/HelloWorld";
        Service  service = new Service();
        Call     call    = (Call) service.createCall();

        call.setTargetEndpointAddress( new java.net.URL(endpoint) );
        call.setOperationName(new QName("http://example", "sayHelloWorldFrom"));
        call.addParameter("from", org.apache.axis.Constants.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
        call.setReturnType(org.apache.axis.Constants.XSD_STRING);
        String ret = (String) call.invoke( new Object[] {"aaa"} );

        System.out.println("Sent 'Hello!', got '" + ret + "'");
    } catch (Exception e) {
        e.printStackTrace();
    }
}
}

我运行代码时收到的异常是:

log4j:WARN找不到logger(org.apache.axis.i18n.ProjectResourceBundle)的appender . log4j:WARN请正确初始化log4j系统 . AxisFault faultCode:{http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode:faultString:org.xml.sax.SAXException:SimpleDeserializer遇到了一个子元素,这是因为它正在尝试反序列化 . faultActor:faultNode:faultDetail:{http://xml.apache.org/axis/}hostname:MAQ org.xml.sax.SAXException:SimpleDeserializer在尝试反序列化时遇到了一个不期望的子元素 . org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)位于org.apache.axis.encoding.DeserializationContext.endElement的org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) (DeserializationContext.java:1087)com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement (XMLDocumentFragmentScannerImpl.java:1783)com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl $ FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2970)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl .next(XMLDocumentScannerImpl.java:606)位于com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:118)的com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl com.sun.org.apache中的.scanDocument(XMLDocumentFragmentScannerImpl.java:510) . xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)位于com.sun.org.apache的com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) . xerces.internal.parsers.XMLParser.parse(XMLParser.java:141),位于com.sun.org.apache的com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) . xerces.internal.jaxp.SAXParserImpl $ JAXPSAXParser.parse(SAXParserImpl.java:643)位于org.apache.axis的com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327) . 在org.apache的org.apache.axis.Message.getSOAPEnvelope(Message.java:435)的org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)中的encoding.DeserializationContext.parse(DeserializationContext.java:227)位于org.apache.axis.strategies.InvocationStrategy.visit的org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)中的.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796) (InvocationStrategy.java:32) org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)at org.apache.axis.client.AxisClient.invoke(AxisClient.java) :165)org.apache.axis.client.Call.invokeEngine(Call.java:2784)org.apache.axis.client.Call.invoke(Call.java:2767)org.apache.axis.client . Call.invoke(Call.java:2443)atg.apache.axis.client.Call.invoke(Call.java:2366)atg.apache.axis.client.Call.invoke(Call.java:1812)示例.TestClient.main(TestClient.java:24)

当我尝试发送没有任何参数的 Object[] { } 时,我没有收到任何错误 .

这是我的webservice的代码:

@WebService
public class HelloWorld {
  @WebMethod
  public String sayHelloWorldFrom(String from) {
    String result = "Hello, world, from " + from;
    System.out.println(result);
    return result;
  }
}