java 调用webservice

pom依赖

 <dependency>
            <groupId>org.apache.axis</groupId>
            <artifactId>axis</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>wsdl4j</groupId>
            <artifactId>wsdl4j</artifactId>
            <version>1.6.3</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.rpc</groupId>
            <artifactId>javax.xml.rpc-api</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>commons-discovery</groupId>
            <artifactId>commons-discovery</artifactId>
            <version>0.5</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>

java 代码--wsdl

       String url = "http://********:9000/soc/services/Xb";
        String localPart = "getInsInfo";
        String No = "11111223212";
        String time = "";
        String size = "";
        Object result = null;
        Service service = new Service();
        try {
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(new URL(url));
            // WSDL里面描述的接口名称(要调用的方法)
            call.setOperationName(new QName(url, localPart));
            //跨平台调用加上这个
            call.setUseSOAPAction(true);
            call.setSOAPActionURI(url);
//             接口方法的参数名, 参数类型,参数模式 IN(输入), OUT(输出) or INOUT(输入输出)
            call.addParameter("cusNo", XMLType.XSD_STRING, ParameterMode.IN);
            call.addParameter("user", XMLType.XSD_STRING, ParameterMode.IN);
            call.addParameter("pwd", XMLType.XSD_STRING, ParameterMode.IN);
            // 设置被调用方法的返回值类型
            call.setReturnType(XMLType.XSD_STRING);
            /* 设置方法中参数的值 */
            result = call.invoke(new Object[]{null, "weddsf", "123456"});
            } catch (ServiceException | RemoteException | MalformedURLException exception) {
            log.info("---------------------------------------异常");
            exception.printStackTrace();
        }

java 代码--asmx

     String url = "http://******:10511/WebServiceDataWithControl.asmx";
    //在浏览器输入上面的地址查看namespace
     String namespace = "http://www.suntront.com/";// targetNamespace

     String actionURI = "GetReadNowData"; // Action路径

     String op = "GetReadNowData"; // 要调用的方法名
        String localPart = "GetAllFreezeDayData";
        Object result = null;
        Service service = new Service();
        try {
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(new URL(url));
            //跨平台调用加上这个c
            call.setUseSOAPAction(true);
            call.setSOAPActionURI(namespace + actionURI);
            // 设置要调用哪个方法
            call.setOperationName(new QName(namespace, op));
//             接口方法的参数名, 参数类型,参数模式 IN(输入), OUT(输出) or INOUT(输入输出)
            call.addParameter(new QName(namespace, "user"), XMLType.XSD_STRING, ParameterMode.IN);
            call.addParameter(new QName(namespace, "pwd"), XMLType.XSD_STRING, ParameterMode.IN);
            call.addParameter(new QName(namespace, "pageSize"), XMLType.XSD_STRING, ParameterMode.IN);
            call.addParameter(new QName(namespace, "currentPageIndex"), XMLType.XSD_STRING, ParameterMode.IN);
            call.addParameter(new QName(namespace, "meterAddr"), XMLType.XSD_STRING, ParameterMode.IN);
            call.addParameter(new QName(namespace, "orderType"), XMLType.XSD_STRING, ParameterMode.IN);
            call.addParameter(new QName(namespace, "userCode"), XMLType.XSD_STRING, ParameterMode.IN);
            // 设置被调用方法的返回值类型
            call.setReturnType(XMLType.XSD_STRING);
            /* 设置方法中参数的值 */
            result = call.invoke(new Object[]{"wfsdfew","fsdfewfsf","10","1",null,"1",null});
            log.info("----------------------------------------end--保存結果{}", result);

        } catch (ServiceException | RemoteException | MalformedURLException exception) {
            log.info("---------------------------------------异常");
            exception.printStackTrace();
        }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容