1.接口 注意:一定要加注解:@WebService
1 package com.seecen.service; 2 3 import javax.jws.WebParam; 4 import javax.jws.WebService; 5 6 @WebService 7 public interface IWebService { 8 9 String sayHi(@WebParam(name="text")String text,@WebParam(name="age")int age); // 参数的名字叫text 10 11 }
2.实现
1 package com.seecen.service.impl; 2 3 import javax.jws.WebService; 4 5 import com.seecen.service.IWebService; 6 7 @WebService(endpointInterface ="com.seecen.service.IWebService",serviceName="testService") 8 public class WebServiceImpl implements IWebService{ 9 10 public String sayHi(String text, int age) { 11 return "思成" + text + age; 12 } 13 14 }
-------服务器端虚拟测试----在测试运行状态下生成com文件---
-————————如果启动Toam猫的话在xml文件中加入<load-on-startup>1</load-on-startup>----------------------
1 package main; 2 3 4 import javax.xml.ws.Endpoint; 5 6 import com.seecen.service.IWebService; 7 import com.seecen.service.impl.WebServiceImpl; 8 9 10 public class TestService { 11 12 public static void main(String[] args) { 13 System.out.println("Web Service start"); 14 IWebService webService = new WebServiceImpl(); 15 String address = "http://192.168.1.137:8080/web"; 16 Endpoint.publish(address,webService); // 发布服务地址和接口 17 System.out.println("Web Service started"); 18 } 19 20 }
----------------------------------------------------------------------
客户端使用:
找到 apache-cxf-3.0.1 存放的路径,找到其下的 bin
(在 cmd ---- F:----cd apache-cxf-3.0.1---cd bin (提前将com文件删掉)---wsdl2java‘空格’-frontend jaxws21 (url)http://192.168.1.137:8080/web?wsdl )
生成com 文件
1 public class Test { 2 3 /** 4 * @param args 5 */ 6 public static void main(String[] args) { 7 8 JaxWsProxyFactoryBean svr = new JaxWsProxyFactoryBean(); //通过JaxWsProxyFactoryBean动态生成客户端代理 9 svr.setServiceClass(IWebService.class); //传入服务接口 10 svr.setAddress("http://192.168.1.137:8080/web"); //发布服务的地址 11 IWebService hw = (IWebService)svr.create(); //然后调用create()方法创建动态代理 12 13 System.out.println(hw.sayHi("翠花", 18)); 14 15 } 16 17 }