enjoysimple 2015-09-30 02:47 采纳率: 0%
浏览 2034

axis访问sap的webserv多返回值问题

sap的 wsdl文件部分:




xsd:complexType
xsd:sequence





/xsd:sequence
/xsd:complexType
/xsd:element

xsd:complexType
xsd:sequence



/xsd:sequence
/xsd:complexType
/xsd:element
/xsd:schema
/wsdl:types


/wsdl:message


/wsdl:message

我的java代码:
public static void main(String args[]) {
String wsdlURISap = "";
String namespaceURI = "";
String operationName = "";

String serviceLocalPart = ""; //
String portName = ""; //

  try{    
         wsdlURISap = "http://192.168.108.106:8001/sap/bc/srt/wsdl/flv_10002A111AD1/bndg_url/sap/bc/srt/rfc/sap/zmminterface/300/mmservices/binding?sap-client=300?wsdl";
         namespaceURI = "urn:sap-com:document:sap:soap:functions:mc-style";//   
         operationName = "Zmminterface";// 
         serviceLocalPart  =  "mmservices" ;// 
         portName = "binding" ;// 

             //5个参数测试值
            String Iheads ="1";
            String Iitems="2";
            String  Intid = "3";                
            String  Iselec = "4";           
            String   Paras ="5"; 
            Object[] arg0 = new Object[] { Iheads, Iitems,Intid, Iselec , Paras };  
             Parser wsdlParser = new Parser();
            //这里用户名密码设置有用 ,比如不设置会把url无效
            wsdlParser.setUsername("sapuser");
            wsdlParser.setPassword("123321");           
            wsdlParser.run(wsdlURISap);

           // 名命空间,服务名
            QName qName = new QName(namespaceURI, serviceLocalPart);                
            Service clientService = new Service(wsdlParser, qName);             
            javax.xml.rpc.Call call = clientService.createCall(
                QName.valueOf(portName), QName.valueOf(operationName));

          // http 方式认证用户名和密码
           ((org.apache.axis.client.Call) call).getMessageContext().setUsername("sapuser"); // httpbase认证用户名 
            ((org.apache.axis.client.Call) call).getMessageContext().setPassword("123321"); 
           ((org.apache.axis.client.Call) call).setTimeout(new Integer(30 * 1000));
            //调用sap 
            String    result =  (String) call.invoke(arg0);
            System.out.println(result);


       }


     catch(Exception e ){
          System.out.println("clientSAP方法返回值 *****"+e.toString() );


    }

}
    ==========================================
    异常:
    [ERROR] Exception:

org.xml.sax.SAXException: Deserializing parameter 'Eheads': could not find deserializer for type {urn:sap-com:document:sap:rfc:functions}string
at org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:277)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
at org.apache.axis.client.Call.invoke(Call.java:2467)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.infor.webService.client.SapWebServiceClinet.main(SapWebServiceClinet.java:60)

==========================
问题像是:三个字符型的返回值, 我要怎么 定义接收 ? 
  • 写回答

4条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 如何修改pca中的feature函数
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法