代码
public static void main(String[] args) throws Exception {
//http://localhost:7001/TaskWebs/TaskManageWS
String endpoint = "http://172.16.192.12:7001/TaskWebs/TaskManageWS";
// String endpoint = "http://localhost:8080/sayHello/services/sayHelloService";
Service service = new Service();
Call call = (Call) service.createCall(); call.setTargetEndpointAddress(endpoint);
call.setOperationName(new QName("","addTask"));
// call.addParameter("name",XMLType.XSD_STRING,ParameterMode.IN);
// call.setReturnType(XMLType.XSD_STRING);//XMLType.XSD_STRING);
Object[] parameters = new Object[]{"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"};
for(Object parameter:parameters){
System.out.println((String)parameter);
}
// String message = (String)call.invoke(new Object[]{"123567"});
// System.out.println(message);
call.invoke(parameters); }
public static void main(String[] args) throws Exception {
//http://localhost:7001/TaskWebs/TaskManageWS
String endpoint = "http://172.16.192.12:7001/TaskWebs/TaskManageWS";
// String endpoint = "http://localhost:8080/sayHello/services/sayHelloService";
Service service = new Service();
Call call = (Call) service.createCall(); call.setTargetEndpointAddress(endpoint);
call.setOperationName(new QName("","addTask"));
// call.addParameter("name",XMLType.XSD_STRING,ParameterMode.IN);
// call.setReturnType(XMLType.XSD_STRING);//XMLType.XSD_STRING);
Object[] parameters = new Object[]{"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"};
for(Object parameter:parameters){
System.out.println((String)parameter);
}
// String message = (String)call.invoke(new Object[]{"123567"});
// System.out.println(message);
call.invoke(parameters); }
Exception in thread "main" AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
faultSubcode:
faultString: Failed to get operation name from the incoming request
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:Failed to get operation name from the incoming request
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:133)
at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:153)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
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.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
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.ibm.process.service.ServiceClient.main(ServiceClient.java:31) {http://xml.apache.org/axis/}hostname:yirong-ralfFailed to get operation name from the incoming request
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:133)
at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:153)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
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.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
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.ibm.process.service.ServiceClient.main(ServiceClient.java:31)全贴出来了,大家帮我看看到底什么问题,我掉用自己写的都可以,用别人都就出错
用工具生成也不是很容易 虽然自己做了个webservice 反正这个问题到现在都是半懂不懂的
web服务器地址是 :
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
package cn.spume.temp09;import org.apache.axis.client.Call;
import org.apache.axis.client.Service; import javax.swing.JOptionPane;
import javax.xml.namespace.QName; //天气预报客户端2008-05-17
public class SelfInvoke {
public static void main(String[] args) {
String theCityName = JOptionPane.showInputDialog("请输入要查询的城市名称");
String soapactionName = "http://WebXml.com.cn/";
try {
String endpoint = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.addParameter(new QName(soapactionName,
"theCityName"), org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN);
//call.addParameter(new javax.xml.namespace.QName("http://WebXml.com.cn/", "strPassword"), org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
call.setReturnType(new QName(soapactionName, "getWeatherbyCityName"), String[].class);//由于返回的是一个数组所以要自定义返回类型
call.setOperationName(new QName(
soapactionName, "getWeatherbyCityName"));
call.setUseSOAPAction(true);
call.setSOAPActionURI(soapactionName+"getWeatherbyCityName");
String[] result = (String[]) call.invoke(new Object[] {theCityName});
for (int i=0;i <result.length;i++)
{
System.out.println(result[i]);
}
JOptionPane.showMessageDialog(null, "结果已经在控制台输出");
}
catch (Exception e) {
System.err.println(e.toString());
e.printStackTrace();
}
} }
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
錯在 operation name
可以利用 webservicestudio20
來測試,用java client測反而不好觀察
call.setOperationName("addTask");
试试. try { String endpoint =
"http://192.88.88.41:8888/touchwebservice/services/DrpToCrmService";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName("chargesNotice");
QName qname =new QName("org.apache.axis.encoding.XMLType.XSD_STRING");
call.addParameter("xml",qname,
javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
String str1="<?xml version=\"1.0\" encoding=\"gb2312\"?><xmlInfo><orderInfo><orderNo>08102400000013</orderNo><orderStatus>YFK</orderStatus></orderInfo><orderItems><orderItem><productId>43439</productId><productCode>1.01.1.116.4.1</productCode><prodkucImei>356783024903404</prodkucImei></orderItem></orderItems></xmlInfo>";
String k = (String) call.invoke(new Object[]{str1});
System.out.println("result is ==" + k);
} catch (Exception e) {
System.err.println(e.getMessage());
}
还有,我报的这个错误到底是什么错误呢?