新手求教:java调用PHP webservice返回类型为return: tns:xboxinfo 该怎么做

亵渎 发布于 2014/06/13 15:30
阅读 150
收藏 0

对方提供的信息如下:

Name: boxinfo
Binding: msgapiBinding
Endpoint: http://ip/webservice/wuser.php
SoapAction: http://ip/webservice/wuser.php/boxinfo
Style: rpc
Input:
  use: encoded
  namespace: 
  encodingStyle: http://schemas.xmlsoap.org/soap/encoding/
  message: boxinfoRequest
  parts:
    user: xsd:string
    pass: xsd:string
    onlyinbox: xsd:string
Output:
  use: encoded
  namespace: 
  encodingStyle: http://schemas.xmlsoap.org/soap/encoding/
  message: boxinfoResponse
  parts:
    return: tns:xboxinfo
Namespace: 
Transport: http://schemas.xmlsoap.org/soap/http
Documentation: 

我的代码:

String result=null;
        try {
                String endpoint = " http://ip/webservice/wuser.php?wsdl";
                //String nameSpace="urn:msgapi";
                // 调用过程
                Service service = new Service();
                Call call = (Call) service.createCall();             
                call.setTargetEndpointAddress(new java.net.URL(endpoint));
                call.setOperationName("boxinfo");// WSDL里面描述的操作名称
                call.setSOAPActionURI("http://ip/webservice/wuser.php/boxinfo");
                // 给方法传递参数,并且调用方法
                Object[] obj = new Object[] { username,pwd,"" };
                result = (String) call.invoke(obj);
               // System.out.println("Result is : " + result);
        } catch (Exception e) {
                e.printStackTrace();
        }

看网上的说需要注册对象,于是我加了如下代码:

QName qn=new QName("urn:msgapi","xboxinfo");
                call.registerTypeMapping(xboxinfo.class, qn,
                new BeanSerializerFactory(xboxinfo.class, qn),    
                     new BeanDeserializerFactory(xboxinfo.class, qn));
但是这里的Xboxinfo没有本地类啊,报错了。

这种情况该怎么处理啊,求教!

加载中
返回顶部
顶部