基于CXF的WebService服务

2017-04-15  本文已影响0人  I_李岩

CXF是Apache的一个开源框架,使用它可以发布一个类服务,其他应用程序可以调用接口,以下是我搭建webservice服务的步骤,主要是与spring整合搭建,用的是cxf 3.x和spring 4.x。

1 服务器端webservice服务搭建

这里需要说明的一点是cxf-core包在2.x版本中命名为cxf-rt-core,低版本的spring用的都是cxf-rt-core,刚开始我引的包也是这个,maven库中维护到2.7版之后这个包就以cxf-core的命名开始3.x的版本维护,由于与其他包的版本冲突造成服务一直搭不起来,浪费了很多时间。

2 客户端调用

引入cxf.jaxws jar包

 /**
 * 
 * @param methondNew
 * @param jsonStr
 * @return
 */
public String invoke(String methondNew, String jsonStr) {
    JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory
            .newInstance();
    //读取配置文件中接口地址
    String url = ArteryConfigUtil.getProperty("kqgl.webservice.address");
    HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
    httpClientPolicy.setConnectionTimeout(CommonConstant.NUMLJ_30000); //连接超时 
    httpClientPolicy.setAllowChunking(false);
    httpClientPolicy.setReceiveTimeout(CommonConstant.NUMJS_30000); //接收超时            
    Object[] json = null;
    try {
        Client client = factory.createClient(url);
        HTTPConduit httpConduit = (HTTPConduit) client.getConduit();
        httpConduit.setClient(httpClientPolicy);
        //invoke方法传入接口方法名和参数
        json = client.invoke(methondNew, jsonStr);
    } catch (Exception e) {
        Log.error(e);
    }
    return json[0].toString();
}
上一篇 下一篇

猜你喜欢

热点阅读