java调用(axis2)WebService传递对象类型参数(源码)

Posted QGC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java调用(axis2)WebService传递对象类型参数(源码)相关的知识,希望对你有一定的参考价值。

温馨提示:axis2 jar包哟


    public static String pubRemoteFuc() {
        
        String endpoint = "http://cnblogs.com/qgc/xxxx/Service?wsdl";
        String result = "error";
        Service service = new Service();
        Call call;


        //参数对象
        SearchInfoVo d=new SearchInfoVo();
        d.setName("李建");
        d.setCardNum("44xxxxx");
   
        
        Object[] object = new Object[1];
        object[0] = d;//Object是用来存储方法的参数
        try {
            call = (Call) service.createCall();
            call.setTargetEndpointAddress(endpoint);// 远程调用路径
              QName qn = new QName("http://nciic.com.cn", "check" ); //接口的命名空间,请根据您的实际接口填写,和方法名称:<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:nci="http://nciic.com.cn" 

   
                call.setOperationName(qn);
                //设置参数的类型(这里是实体对象“SearchInfoVo”)http://cnblogs.com/qgc
              call.registerTypeMapping(SearchInfoVo.class,qn,  
                        new BeanSerializerFactory(SearchInfoVo.class, qn),  
                        new BeanDeserializerFactory(SearchInfoVo.class, qn));  
              call.addParameter("arg0", qn, ParameterMode.IN );  //"arg0"不用改哟,我这里只有一个参数,并且参数是一个实体对象  http://cnblogs.com/qgc
//            // 设置参数名:http://cnblogs.com/qgc
//            call.addParameter("name", // 参数名
//                    XMLType.XSD_STRING,// 参数类型:String
//                    ParameterMode.IN);// 参数模式:\'IN\' or \'OUT\'
/*            // 设置参数名:http://cnblogs.com/qgc
            call.addParameter("cardNum", // 参数名
                    XMLType.XSD_STRING,// 参数类型:String
                    ParameterMode.IN);// 参数模式:\'IN\' or \'OUT\'
            // 设置参数名:http://cnblogs.com/qgc
            call.addParameter("citizenId", // 参数名
                    XMLType.XSD_STRING,// 参数类型:String
                    ParameterMode.IN);// 参数模式:\'IN\' or \'OUT\'
*/            // 设置返回值类型:
            //call.setReturnType(XMLType.XSD_STRING);// 返回值类型:String
            call.setReturnType(XMLType.XSD_STRING);// 返回值类型:String

            result = (String) call.invoke(object);// 远程调用
            System.out.println(result);
        } catch (ServiceException e) {
            e.printStackTrace();
        } catch (RemoteException e) {
            e.printStackTrace();
        }
        return result;
    }

 

public static void main(String[] args) throws Exception {

pubRemoteFuc();//调用

以上是关于java调用(axis2)WebService传递对象类型参数(源码)的主要内容,如果未能解决你的问题,请参考以下文章

如何解决java axis 调用webservice服务器操作异常

JAVA Axis2调用WebService

axis2 webservice入门知识(JS,Java,PHP调用实例源码)

使用axis2调用webservice时,服务端接收到的参数为null

Java调用wsdl,怎么实现

Axis2生成wsdl客户端代码并实现webservice调用