加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

webservices——发布CXF的方法总结!!!

发布时间:2020-12-16 23:42:00 所属栏目:安全 来源:网络整理
导读:注意:jar包还是*.jar哦!!! ? 先说发布的方法总结! ? 第一种:用一个j2se的main方法来发布 ? [java] ? view plain copy print ? public ? class ?Server?{?? ???? public ? static ? void ?main(String[]?args)?{?? ????????Endpoint.publish( "http://1

注意:jar包还是*.jar哦!!!

?

先说发布的方法总结!

?

第一种:用一个j2se的main方法来发布

?

[java]? view plain copy print ?
  1. public?class?Server?{??
  2. ????public?static?void?main(String[]?args)?{??
  3. ????????Endpoint.publish("http://127.0.0.1:8080/cxf",?new?HelloImpl());??
  4. ????}??
  5. }??

?

第二种用tomcat来发布

webX.xml:

[xhtml]? ?
    <servlet>??
  1. ????<servlet-name>CXFServlet</servlet-name>??
  2. ????<servlet-class>t.T</servlet-class>??
  3. ????<init-param>??
  4. ????????<param-name>/hello</param-name>??
  5. ????????<param-value>t.HelloImpl</param-value>??
  6. ????</init-param>??
  7. ????<load-on-startup>1</load-on-startup>??
  8. </servlet>??
  9. <servlet-mapping>??
  10. ????<servlet-name>CXFServlet</servlet-name>??
  11. ????<url-pattern>/services/*</url-pattern>??
  12. </servlet-mapping>??

?

t.java:

?
    package?t;??
  1. ??
  2. import?java.util.Enumeration;??
  3. import?javax.servlet.ServletConfig;??
  4. import?javax.servlet.ServletException;??
  5. import?javax.xml.ws.Endpoint;??
  6. import?org.apache.cxf.Bus;??
  7. import?org.apache.cxf.BusFactory;??
  8. import?org.apache.cxf.transport.servlet.CXFNonSpringServlet;??
  9. public?class?T?extends?CXFNonSpringServlet?{??
  10. ????private?static?final?long?serialVersionUID?=?-4143021604478775522L;??
  11. ????public?void?loadBus(ServletConfig?servletConfig)?throws?ServletException?{??
  12. ????????super.loadBus(servletConfig);??
  13. ????????Bus?bus?=?this.getBus();??
  14. ????????BusFactory.setDefaultBus(bus);??
  15. ????????//?获取在web.xml中配置的要发布的所有的Web服务实现类并发布Web服务??
  16. ????????Enumeration<String>?enumeration?=?this.getInitParameterNames();??
  17. ????????while?(enumeration.hasMoreElements())?{??
  18. ????????????String?key?=?enumeration.nextElement();??
  19. ????????????String?value?=?this.getInitParameter(key);??
  20. ????????????try?{??
  21. ????????????????Class?clazz?=?Class.forName(value);??
  22. ????????????????try?{??
  23. ????????????????????Endpoint.publish(key,?clazz.newInstance());??
  24. ????????????????}?catch?(InstantiationException?e)?{??
  25. ????????????????????e.printStackTrace();??
  26. ????????????????}?catch?(IllegalAccessException?e)?{??
  27. ????????????????}??
  28. ????????????}?catch?(ClassNotFoundException?e)?{??
  29. ????????????????e.printStackTrace();??
  30. ????????????}??
  31. ????????}??
  32. ????}??
  33. }??

?

第三种:还是用tomcat,但是采用spring的一些东东。

web.xml

?
    <context-param>??
  1. ????<param-name>contextConfigLocation</param-name>??
  2. ????<param-value>/WEB-INF/beans.xml</param-value>??
  3. </context-param>??
  4. <listener>??
  5. ????<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>??
  6. </listener>??
  7. <servlet>??
  8. ????<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>??
  9. ????<load-on-startup>1</load-on-startup>??
  10. </servlet>??
  11. <servlet-mapping>??
  12. ????<url-pattern>/services/*</url-pattern>??
  13. </servlet-mapping>??

?

同目录还有一个beans.cml:

?
    <?xml?version="1.0"?encoding="UTF-8"?>??
  1. <beans?xmlns="http://www.springframework.org/schema/beans"??
  2. ????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??
  3. ????xmlns:jaxws="http://cxf.apache.org/jaxws"??
  4. ????xmlns:jaxrs="http://cxf.apache.org/jaxrs"??
  5. ????xsi:schemaLocation="http://www.springframework.org/schema/beans??
  6. ????http://www.springframework.org/schema/beans/spring-beans.xsd??
  7. ????http://cxf.apache.org/jaxws??
  8. ????http://cxf.apache.org/schemas/jaxws.xsd??
  9. ????http://cxf.apache.org/jaxrs??
  10. ????http://cxf.apache.org/schemas/jaxrs.xsd">??
  11. ??????
  12. ????<import?resource="classpath:META-INF/cxf/cxf.xml"?/>??
  13. ????<import?resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>??
  14. ????<import?resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml"?/>??
  15. ????<import?resource="classpath:META-INF/cxf/cxf-servlet.xml"?/>??
  16. ??????
  17. ????<jaxws:endpoint?id="helloServiceWs"?address="/hello"?implementor="#helloService"?/>??
  18. ????<bean?id="helloService"?class="t.HelloImpl"?/>??
  19. </beans>??

?

再说一哈,客户端代码生成总结!!!这里提一下而已,多个思路。

?

1.手写:

?
    public?class?Client?{??
  1. ????????JaxWsProxyFactoryBean?factory?=?new?JaxWsProxyFactoryBean();??
  2. ????????factory.setAddress("http://127.0.0.1/cxf_server/services/hello");??
  3. ????????factory.setServiceClass(HelloInter.class);??
  4. ????????HelloInter?helloInter?=?(HelloInter)?factory.create();??
  5. ????????helloInter.hello();??
  6. }??

?

2.用eclipse自动生成!

?

3.用XFire里面有的东西也可以生成。

?

4.用spring也可以生成。

?

5.用图形界面工具,比如soapui。(最简单)

?

6.用ant自动生成等等。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读