WebService CXF学习(进阶篇1):自定义对象传递(简单JavaBean
这一节我们就CXF框架简单的JavaBean对象传递进行讲解。
? 第一步:创建传输的JavaBean对象(UserInfo) package com.ws.model; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; @XmlRootElement(name="UserInfo") @XmlAccessorType(XmlAccessType.FIELD) @XmlType(propOrder={"userName","userAge"}) public class UserInfo { private String userName; private Integer userAge; public UserInfo(String name,Integer age){ this.userAge = age; this.userName = name; } public UserInfo(){ } // 添加geter/seter方法.. } 注解:@XmlRootElement-指定XML根元素名称(可选) 第二步:创建webservices服务端接口和实现类? package com.ws.services; import javax.jws.WebService; import com.ws.model.UserInfo; @WebService public interface IUserServices { public UserInfo getUserInfo(String userName,Integer userAge); } ?? 2、创建服务端接口实现类 package com.ws.services.impl; import javax.jws.WebService; import com.ws.model.UserInfo; import com.ws.services.IUserServices; @WebService public class UserServicesImpl implements IUserServices { public UserInfo getUserInfo(String userName,Integer userAge) { return new UserInfo(userName,userAge); } } 3、创建服务端,并发布服务 package com.test; import javax.xml.ws.Endpoint; import org.apache.cxf.jaxws.JaxWsServerFactoryBean; import com.ws.services.impl.UserServicesImpl; public class ServerTest { public ServerTest(){ // 发布User服务接口 Endpoint.publish("http://localhost:8090/userInfoServices",new UserServicesImpl()); } public static void main(String[] args) { // 启动服务 new ServerTest(); System.out.println("Server ready..."); try { Thread.sleep(1000*300);//休眠五分分钟,便于测试 } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Server exit..."); System.exit(0); } } 第三步:创建webservices客户端,并进行测试(这里只例举在客户端工程中的测试方法)? package com.ws.client; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import com.ws.model.UserInfo; import com.ws.server.IUserServices; public class UserTest { public static void main(String[] args) { //创建WebService客户端代理工厂 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); //注册WebService接口 factory.setServiceClass(IUserServices.class); //设置WebService地址 factory.setAddress("http://localhost:8090/userInfoServices"); IUserServices userServices = (IUserServices)factory.create(); System.out.println("invoke userinfo webservice..."); // 测试返回JavaBean对象的 UserInfo user = userServices.getUserInfo("vicky",23); System.out.println("UserName: "+user.getUserName()); System.out.println("UserAge : "+user.getUserAge()); System.exit(0); } } 第四步:运行webServices服务,在IE中输入http://localhost:8090/userInfoServices?wsdl,验证服务是否成功发布 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |