webservice客户端连接方式

选取自己写的代码和部分以下博客内容

https://blog.csdn.net/menghuanzhiming/article/details/78475785

 

方式一:使用HttpURLConnection调用方式

document为入参组织对象,注意:dom4j要求root根节点只有一个,多节点请使用方式二。
webservice客户端连接方式
private Object[] connectWS(org.dom4j.Document document,String url){
        JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance();
        System.out.println("wsUrl===="+url);
        Client client = factory.createClient(url);
        // 需要密码的情况需要加上用户名和密码
        //client.getOutInterceptors().add(new ClientLoginInterceptor(USER_NAME,PASS_WORD));
        HTTPConduit conduit = (HTTPConduit) client.getConduit();
        HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
        httpClientPolicy.setConnectionTimeout(2000);  //连接超时
        httpClientPolicy.setAllowChunking(false);    //取消块编码
        httpClientPolicy.setReceiveTimeout(120000);     //响应超时
        conduit.setClient(httpClientPolicy);
        Object[] objects = null;
        try {

            String s = document.asXML();
            System.out.println("数据:--->>>" + s);
            objects = client.invoke("process", s);
            String result = objects.toString();
            System.out.println("返回数据:result---->>>" + result);
            System.out.println("返回数据:---->>>" + objects[0]);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return  objects;
    }
View Code

方式二:使用idea生成webservice客户端接口IIHService(wsimport生成客户端代码 )

(1)使用生成的IIHServiceService调用IIHService

IIHServiceService iihServiceService = new IIHServiceService();
IIHService iihService= iihServiceService.getIIHServicePort();
// iihService 调用接口
  String xml = "入参的xml格式";
  String result = iihService.process("XXX",xml);
  System.out.println(result);  

(2) 使用service编程调用IIHService

package XX;  

import java.io.IOException;
import java.net.URL;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import XX.IIHService ;  

/** 
 *  
 *  Title: ServiceClient.java
 *  Description:Service编程实现服务端调用
 *  这种方式同样需要wsimport生成客户端代码,只不过仅需要将服务接口类引入即可,例如如果需要 
 *  端口服务,则需要将生成的IIHService .class类引入
 */  
public class ServiceClient {  

    public static void main(String[] args) throws IOException {  
        //创建WSDL的URL,注意不是服务地址  
        URL url = new URL("http://IIII:PPPP/CC/IIHService?wsdl");  

        //创建服务名称  
        //1.namespaceURI - 命名空间地址 (wsdl文档中的targetNamespace)
        //2.localPart - 服务视图名  (wsdl文档中服务名称,例如<wsdl:service name="MobileCodeWS">)
        QName qname = new QName("http://IIII/", "IIHServicePort");  

        //创建服务视图  
        //参数解释:  
        //1.wsdlDocumentLocation - wsdl地址  
        //2.serviceName - 服务名称  
        Service service = Service.create(url, qname);  
        //获取服务实现类 
        //参数解释:serviceEndpointInterface - 服务端口(wsdl文档中服务端口的name属性)
        IIHService iihService= service.getPort(IIHService.class);  
        //调用查询方法  
        String xml = "入参的xml格式";
        String result = iihService.process("XXX",xml);
        System.out.println(result);  
    }  
}     

 

webservice客户端连接方式

上一篇:Web服务器压力测试工具 - HULK


下一篇:js判断鼠标上下滚动及停止滚动