axis2 远程调用sap的接口报错 First Element must contain the local name, Envelope , but found definitions

仕氵 发布于 2014/07/03 11:29
阅读 5K+
收藏 0
代码: 
            String url = "http://erpdev.kn.com:8000/sap/bc/srt/wsdl/srvc_005056847E081EE3A8E785E5DEE59A5C/wsdl11/allinone/ws_policy/document?sap-client=200";


            // 使用RPC方式调用WebService
            RPCServiceClient serviceClient = new RPCServiceClient();
            // 指定调用WebService的URL
            EndpointReference targetEPR = new EndpointReference(url);
            targetEPR.setName("");
            HttpTransportProperties.Authenticator basicauth = new HttpTransportProperties.Authenticator();
            basicauth.setUsername("");  //服务器访问用户名   
            basicauth.setPassword(""); //服务器访问密码  
 // axis1 服务端
            Options options = serviceClient.getOptions();
            options.setProperty(HTTPConstants.AUTHENTICATE, basicauth);
            // 确定目标服务地址
            options.setTo(targetEPR);
            // 确定调用方法
            options.setAction("urn:sap-com:document:sap:soap:functions:mc-style:zmdmPsMaintian");


            /**
             * 指定要调用的getPrice方法及WSDL文件的命名空间 如果 webservice 服务端由axis2编写 命名空间
             * 不一致导致的问题 org.apache.axis2.AxisFault: java.lang.RuntimeException:
             * Unexpected subelement arg0
             */

            QName qname = new QName("urn:sap-com:document:sap:soap:functions:mc-style", "ZmdmPsMaintian");

 Object[] parameters = new Object[]{ps};


            // 指定getPrice方法返回值的数据类型的Class对象
            Class[] returnTypes = new Class[]{
                ZsmdmPsRet.class
            };
//
//            // 调用方法一 传递参数,调用服务,获取服务返回结果集
//            OMElement element = serviceClient.invokeBlocking(qname, parameters);
//            // 值得注意的是,返回结果就是一段由OMElement对象封装的xml字符串。
//            // 我们可以对之灵活应用,下面我取第一个元素值,并打印之。因为调用的方法返回一个结果
//            String result = element.getFirstElement().getText();


            // 调用方法二 getPrice方法并输出该方法的返回值
            Object[] response = serviceClient.invokeBlocking(qname, parameters, returnTypes);

加载中
返回顶部
顶部