此处使用到了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进行处理。