代码
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); }

解决方案 »

  1.   

    出错信息
    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)全贴出来了,大家帮我看看到底什么问题,我掉用自己写的都可以,用别人都就出错
      

  2.   

    你先在IE上打开别的服务,看看有没有wsdl描述
      

  3.   

    那你就用那个url生成一个客户端调用就可以了用wsdl2java
      

  4.   

    我直接用call来调用不可以吗?
      

  5.   

    自己写是很容易出错
    用工具生成也不是很容易 虽然自己做了个webservice 反正这个问题到现在都是半懂不懂的
      

  6.   

    但是我自己用eclipse和xf写了一个sayhello,调用都没错啊 
      

  7.   

    你参考下这个  这是调用查询天气的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(); 
        } 
      } }
      

  8.   

    faultString: Failed to get operation name from the incoming request 
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    錯在 operation name 
    可以利用 webservicestudio20
    來測試,用java client測反而不好觀察
      

  9.   

    WSDL文件有问题吧,你可以先验证一下这个文件.
      

  10.   

    call.setOperationName(new QName("","addTask")); 可以改成
    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());
            }
      

  11.   

    不太清楚为什么,现在的代码是直接用他那边生成的stub客户端。有没有高人知道,为什么直接用axis写的客户端没有生成的好呢?
    还有,我报的这个错误到底是什么错误呢?