axis1.4调用WebService报找不到分派方法

从这里http://nrg19840409.iteye.com/blog/1018573看的axis1.4调用WebService的方法,里面说的第一种方法,调用的时候会出现找不到分派方法异常

解决方法

在设置OperationName时,要new一个QName设置namespace。
public String findUserInfoByName(String name) {
        String result = null;
        try {
            String endpoint = "http://test.com/CrmInfo/CrmInfoPort?wsdl";
            //直接引用远程的wsdl文件
            //以下都是套路
            Service service = new Service();
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(new java.net.URL(endpoint));
            /**
            *注意这里,要设置Namespace
            */
            call.setOperationName(new QName("http://server.com/","findUserInfoByName"));//WSDL里面描述的接口名称
            call.addParameter("arg0", XMLType.XSD_STRING,
                    ParameterMode.IN);//接口的参数
            call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
            result = (String)call.invoke(new Object[]{name});
            //给方法传递参数,并且调用方法
            System.out.println("result is :"+result);
        }
        catch (Exception e) {
            System.err.println(e.toString());
        }
        return result;
    }
posted @ 2017-03-14 11:43  A_yes  阅读(2062)  评论(0编辑  收藏  举报