WebService认识二(使用Servlet搭建WebService服务)
发布时间:2020-12-16 23:43:04 所属栏目:安全 来源:网络整理
导读:注:在WebService认识一的基础之上进行补充; 准备:添加geronimo-jaxws_2.2_spec-1.1.jar 操作: 1:建立一个Servlet:CXFInitServiceServlet.java public class CXFInitServiceServlet extends CXFNonSpringServlet {private static final long serialVers
注:在WebService认识一的基础之上进行补充; 准备:添加geronimo-jaxws_2.2_spec-1.1.jar 操作: 1:建立一个Servlet:CXFInitServiceServlet.java public class CXFInitServiceServlet extends CXFNonSpringServlet { private static final long serialVersionUID = 1L; @Override protected void loadBus(ServletConfig sc) {//在init的时候调用 super.loadBus(sc); Bus bus = this.getBus(); BusFactory.setDefaultBus(bus); //当有多个webservice需要访问时,我们通过在web.xml中添加参数并读取的方式动态加载 @SuppressWarnings("unchecked") Enumeration<String> enumeration = this.getInitParameterNames(); while (enumeration.hasMoreElements()) { String elemName = enumeration.nextElement(); try { Class<?> clazz = Class.forName(this.getInitParameter(elemName)); Endpoint.publish(elemName,clazz.newInstance()); } catch (Exception e) { e.printStackTrace(); } } } }为该Servlet在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"> <display-name>WebServiceExp</display-name> <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.wjlmgqs.web.CXFInitServiceServlet</servlet-class> <init-param> <param-name>/user</param-name> <param-value>org.wjlmgqs.service.imp.UserServiceImp</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/webservice/*</url-pattern> </servlet-mapping> </web-app> 注:我们通过在init-param中配置webservice接口实现类,然后再servlet中读取改配置并对外发布。此处可以配置多个。 3:修改客户端 public class UserWebServiceClient { public static void main(String[] args) { JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setServiceClass(UserService.class); factory.setAddress("http://localhost:8080/WebServiceExp/webservice/user?wsdl"); UserService userService = (UserService) factory.create(); List<User> findUser = userService.findUser("wang"); for(User u : findUser){ System.out.println(u.toString()); } } } 结果同WebService认识一的结果 4:使用浏览器访问:http://localhost:8080/WebServiceExp/webservice/user?wsdl (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |