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

CXF 入门步骤 详解:HelloWorld接口发布

发布时间:2020-12-17 00:36:29 所属栏目:安全 来源:网络整理
导读:第一步:在myeclipse中新建一个web项目名为myWs, 并导入依赖的jar包(cxf,spring,apache-commons相关) ? 1、commons-logging-1.1.1.jar 2、cxf-2.4.1.jar 3、geronimo-activation_1.1_spec-1.1.jar 4、geronimo-annotation_1.0_spec-1.1.1.jar 5、geronimo-

第一步:在myeclipse中新建一个web项目名为myWs,
并导入依赖的jar包(cxf,spring,apache-commons相关)

?

1、commons-logging-1.1.1.jar

2、cxf-2.4.1.jar

3、geronimo-activation_1.1_spec-1.1.jar

4、geronimo-annotation_1.0_spec-1.1.1.jar

5、geronimo-javamail_1.4_spec-1.7.1.jar

6、geronimo-jaxws_2.2_spec-1.0.jar

7、geronimo-servlet_3.0_spec-1.0.jar

8、geronimo-stax-api_1.0_spec-1.0.1.jar

9、geronimo-ws-metadata_2.0_spec-1.1.3.jar

10、jettison-1.3.jar

11、jetty-continuation-7.4.2.v20110526.jar

12、jetty-http-7.4.2.v20110526.jar

13、jetty-io-7.4.2.v20110526.jar

14、jetty-server-7.4.2.v20110526.jar

15、jetty-util-7.4.2.v20110526.jar

16、neethi-3.0.0.jar

17、saaj-api-1.3.jar

18、saaj-impl-1.3.2.jar

19、serializer-2.7.1.jar

cxf结合spring时所需jar包,此例子也需要这些,用到了spring上下文加载

(

? ? spring-asm-3.0.5.RELEASE.jar

? ? spring-beans-3.0.5.RELEASE.jar

? ? spring-context-3.0.5.RELEASE.jar

? ? spring-core-3.0.5.RELEASE.jar

? ? spring-expression-3.0.5.RELEASE.jar

? ? spring-aop-3.0.5.RELEASE.jar

? ? spring-web-3.0.5.RELEASE.jar

)

20、wsdl4j-1.6.2.jar

21、xalan-2.7.1.jar

22、xercesImpl.jar

23、xml-resolver-1.2.jar

24、xmlschema-core-2.0.jar

?

第二步:在WEB-INF中创建基本的cxf-beans.xml内容如下(作用:主要做webservice接口属性配置,通过web.xml配置加载,文件名和位置可以顺便,web.xml配置会用到)

?

Xml代码??

收藏代码

  1. <?xml?version="1.0"?encoding="UTF-8"?>??
  2. <beans?xmlns="http://www.springframework.org/schema/beans"??
  3. ????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"?xmlns:jaxws="http://cxf.apache.org/jaxws"??
  4. ????xmlns:cxf="http://cxf.apache.org/core"??
  5. ????xsi:schemaLocation="http://cxf.apache.org/jaxws?http://cxf.apache.org/schemas/jaxws.xsd?http://cxf.apache.org/core?http://cxf.apache.org/schemas/core.xsd?http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"??
  6. ????default-autowire="byType"?default-lazy-init="true">??
  7. ??
  8. ????description>使用Apache?CXF的Web?Service配置文件,以下三个为固定配置文件(不需要创建)</import?resource="classpath:META-INF/cxf/cxf.xml"?/>??
  9. import?resource="classpath:META-INF/cxf/cxf-servlet.xml"?import?resource="classpath:META-INF/cxf/cxf-extension-soap.xml"? ????<!--在这里配置相应内容-->??
  10. ??????
  11. beans>??

第三部:在web.xml中加入cxf相应配置,内容如下:

<!--cxf?start-->??
  • <!--用于加载cxf-beans.xml配置信息-->??
  • context-param ????????param-name>contextConfigLocationparam-value>WEB-INF/cxf-beans.xml<!--使用spring?ContextLoaderListener?加载cxf-beans.xml-->??
  • listenerlistener-class>org.springframework.web.context.ContextLoaderListener<!--配置CXFServlet-->??
  • servletservlet-name>CXFServletdisplay-name>CXF?Servletservlet-class>org.apache.cxf.transport.servlet.CXFServletload-on-startup>1servlet-mapping ????????<!--?url可自定义配置,用于CXFServlet请求地址拦截,访问会用到?-->??
  • url-pattern>/services/*<!--cxf?end?-->??
  • ?第四步:创建webservice接口及实现类

    Java代码??

    收藏代码

      1,创建接口??
    1. @WebService()//此注解必须,里面name,portName,targetNamespace?serviceName?可以不用指定??
    2. public?interface?IHelloService?{??
    3. ????public?String?sayHello();??
    4. }??
    5. 2,创建实现类??
    6. class?HelloWorldServiceImpl?implements?IHelloService?{??
    7. public?String?sayHello()?{??
    8. ????????System.out.println("It's?my?first?webservice?!");??
    9. ????????return?"你已经成功调用sayHello()方法!";??
    10. ????}??
    11. }??

    ?第五步:配置cxf-beans.xml,加入以下内容:

    <!--id:随意配,implementor:指定接口具体实现类,address:随意配,访问时会用到,下面会做说明-->??
  • jaxws:endpoint?id="HelloWorldService"?implementor="com.ws.HelloWorldServiceImpl"??
  • ????????address="/IHelloService"jaxws:endpoint>??
  • ?第六步:发布webservice到tomcat

    1,验证ws是否发布成功:??

  • ???1.1,如果项目发布放在TOMCAT_HOME/webapps下时:??
  • ???????访问http://IP地址:端口/项目名/services/{cxf-beans.xml中配置的address}?wsdl??
  • 1.2,如果是在tomcat_home/conf的server.xml中配置的是外部站点(<Context??path="/testWs"?docBase="D:DevelopermyWs"?debug="0"?reloadable="false"?/>),??
  • ???那访问方式应该是http://IP:端口/path值(没有就不用加)/services/{cxf-beans.xml中配置的address}?wsdl,??
  • ???例如:http://localhost:8080/testWs/services/IHelloService?wsdl?//services对应web.xml中的<url-pattern>/services/*</url-pattern>?services??
  • ????验证是否能正常看到xml格式的页面??
  • 可以用SoapUi 软件测试接口

    GOOD LUCKY!!!

    ?

    写的不明的地方 还请大家提出

    远程具体调用方式请参考:CXF 入门之远程接口调用

    (编辑:李大同)

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

      推荐文章
        热点阅读