【webservice】JAX-WS独立服务使用
生活随笔
收集整理的這篇文章主要介紹了
【webservice】JAX-WS独立服务使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【webservice】JAX-WS獨立服務使用
建立maven Java項目,在項目中導入CXF jar包的支持,要提供jaxws服務,就引入jaxws的jar包,要提供jaxrs服務,就要引入jaxrs的jar包。
使用maven坐標
<!--要進行jaxws服務開發--> <dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxws</artifactId><version>3.0.1</version> <dependency> <!--內置jetty web服務器--> <dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-transports-http-jetty</artifactId><version>3.0.1</version> </dependency>查看完整日志
<!--日志實現--> <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.12</version> </dependency>要使用日志,同時需要導入log4j.properties配置文件.
編寫服務端程序。編寫實體類
public class User{private Integer id;private String username;private Sting city;private List<Car> cars = new ArrayList<Car>(); } public class Car{private Integer id;private String carName;private Double price; }編寫服務
@WebService public interface IUserService {@WebMethodpublic String sayHello(String name);@WebMethodpublic List<Car> findCarsByUser(User user); }@WebService使用在類上面,標記類是WebService服務提供對象;
@WebMethod使用在方法上面,標記方法是WebService服務的提供方法。
服務實現
@WebService(endpointInterface = "cn.nwtxxb.cxf.services.IUserService",serviceName="userService") public class UserServiceImpl implements IUserService {//簡單參數傳遞public String sayHello(String name){return "hello,"+name;}//復雜參數傳遞public List<Car> findCarsByUser(User user){if("xiaoming").equals(user.getUsername()){List<Car> cars = new ArrayList<Car>();Car car1 = new Car();car1.setId(1);car1.setName("凱迪拉克");car1.setPrice(200000d);cars.add(car1);}} }@WebService注解設置endPointInterface接口服務完整類名,servicename是服務名稱。
想將UserService的服務方法發布到網絡上,供其他系統調用。
public static void main(String[] args){//使用CXF將UserService服務注冊到網絡上//1.服務的實現對象IUserService userService = new UserServiceImpl();//2.發布服務的地址String address = "http://localhost:9999/userService";//3.發布服務的地址Endpoint.publish(address,userService);System.out.println("服務已經啟動..."); }訪問網址:http://localhost:9999/userService?wsdl
編寫客戶端操作
public static void main(String[] args){//編寫客戶端 調用發布WebService服務JaxWsProxyFactoryBean jaxWsProxyFactoryBean = new JaxProxyFactoryBean();jaxWsProxyFactoryBean.setServiceClass(IUserService.class);jaxWsproxyFactoryBean.setAddress("http://localhost:9999/userService");//創建調用遠程服務代理對象IUserService proxy = (IUserService)jaxWsProxyFactoryBean.create();//調用代理對象的任何一個方法,都將通過網絡調用web服務System.out.println(proxy.sayHello("你我他學習吧"));總結
以上是生活随笔為你收集整理的【webservice】JAX-WS独立服务使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【软考】2017年11月软件设计师上午真
- 下一篇: 【软考】2017年11月软件设计师上午真