注:在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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。