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