非常感谢孙浩老师。
先把之前的meta-inf中的文件拷贝到Webroot的WEB-INF中,还要修改UserServiceImpl中wsdlLocation = "WEB-INF/wsdl/user.wsdl":
再导入jaxws-ri的jar包。
在WEB-INF下创建sun-jaxws.xml:
<?xml version="1.0" encoding="UTF-8"?> <endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0"> <endpoint name="UserService" implementation="cn.lichen.service.UserServiceImpl" url-pattern="/us" /> </endpoints>
配置web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <listener> <listener-class>com.sun.xml.ws.transport.http.servlet.WSservletcontextlistener</listener-class> </listener> <servlet> <servlet-name>UserService</servlet-name> <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserService</servlet-name> <url-pattern>/us</url-pattern> </servlet-mapping> </web-app>
因为要部署到Tomcat中,还要修改user.wsdl:
<wsdl:service name="UserService"> <wsdl:port binding="tns:userServiceSOAP" name="UserServicePort"> <soap:address location="http://localhost:8080/Webservice_07_pro_service/us" /> </wsdl:port> </wsdl:service>
发布到Tomcat中之后,在浏览器打开http://localhost:8080/Webservice_07_pro_service/us?wsdl:
使用wsimport导出Java文件,拷贝到客户端中,把IUserService拷贝到服务端:
测试方法:
package cn.lichen.test; import java.util.List; public class TestClient { private UserService userService = null; private IUserService service = null; @Before public void init() { userService = new UserService(); service = userService.getUserServicePort(); } @Test public void testList() { List<User> users = service.list(); for (User u : users) { System.out.println(u.getNickname()); } } @Test public void testAdd() { try { User user = new User(); user.setUsername("lisi"); user.setNickname("李四"); user.setPassword("123"); service.add(user); } catch (UserException_Exception e) { System.out.println(e.getMessage()); } } @Test public void testLogin() { try { System.out.println(service.login("lisi","123").getNickname()); } catch (UserException_Exception e) { System.out.println(e.getMessage()); } } @Test public void testDelete() { service.delete("lisi"); } }
结果,客户端实现异构连接服务端:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。