我想知道如何删除以下代码中的错误。 我的客户代码是:
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找不到记录器的appender (org.apache.axis.i18n.ProjectResourceBundle)。 log4j:警告请 正确初始化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:MAQorg.xml.sax.SAXException:SimpleDeserializer遇到了一个子节点 在预期的东西中,它正在尝试的东西 反序列化。在 org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222) 在 org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) 在 org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) 在 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609) 在 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) 在 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.scanDocument(XMLDocumentFragmentScannerImpl.java:510) 在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) 在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) 在 com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) 在 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) 在 com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl $ JAXPSAXParser.parse(SAXParserImpl.java:643) 在 com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:327) 在 org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227) 在org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)at at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796) 在 org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144) 在
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) 在org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)at at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)at at org.apache.axis.client.Call.invokeEngine(Call.java:2784)at 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 example.TestClient.main(TestClient.java:24)
当我尝试发送没有任何参数的Object[] { }
时,我没有收到任何错误。
以下是我的网络服务的代码:
@WebService
public class HelloWorld {
@WebMethod
public String sayHelloWorldFrom(String from) {
String result = "Hello, world, from " + from;
System.out.println(result);
return result;
}
}