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

时间:2023-03-08 15:35:56

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

 <dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>apache-cxf</artifactId>
<version>3.0.3</version>
<type>pom</type>
</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进行处理。