java客户端调用c#的webservice服务

  此处使用到了CXF框架,可以使用以下坐标从maven仓库中获取相关jar包:

1 <dependency>
2   <groupId>org.apache.cxf</groupId>
3   <artifactId>apache-cxf</artifactId>
4   <version>3.0.3</version>
5   <type>pom</type>
6 </dependency>

  自定义一个ServerProxyer类,提供调用webservice的方法

package com.component;

import com.component.util.WebServicePropertyFileUtil;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;


/**
 * desc:webservice服务端在本地的代理类
 */
public class ServerProxyer {

    private static String wsdlUrl ;
    private static Client client;

    static{
        //获取wsdl地址
        WebServicePropertyFileUtil.init_Custom("webservice");
        wsdlUrl = WebServicePropertyFileUtil.get("wsdlUrl");
        //创建客户端实例
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        client = dcf.createClient(wsdlUrl);
    }

    /**
     * 调用webservice服务端方法
     * @param methodName 方法名
     * @param parameters 参数
     * @return
     */
    public static Object[] invoke(String methodName,String... parameters){
        Object[] res = null;
        try {
            res = client.invoke(methodName,parameters);
            for(Object obj : res){
                System.out.println(obj);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return  res;
    }

    public static void main(String[] args){
        invoke("SendMessages","haijen","您有一条新待办:","关于《》的通知");
    }
}

   注意事项:可能会出现cxf依赖的第三方jar和你本地项目已经使用的jar有冲突的情况,比如ehcache.jar,如果有冲突,需要对冲突的jar进行处理。

posted @ 2015-02-03 13:59  程序员一一涤生  阅读(2377)  评论(0编辑  收藏  举报