博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用cfx与springMVC集成发布与调用webservice
阅读量:6157 次
发布时间:2019-06-21

本文共 3801 字,大约阅读时间需要 12 分钟。

hot3.png

版本:apache-cxf-3.2.1

JDK版本:1.8.0_25 
注:此版本最低支持1.8 , JDK7 请下载 CXF 3.1.14 版本
 
 

  1. 必须引用的jar包列表
    对应maven 依赖:
    org.apache.cxf
    cxf-core
    3.2.1
    org.apache.cxf
    cxf-rt-bindings-soap
    3.2.1
    org.apache.cxf
    cxf-rt-databinding-jaxb
    3.2.1
    org.apache.cxf
    cxf-rt-frontend-jaxws
    3.2.1
    org.apache.cxf
    cxf-rt-frontend-simple
    3.2.1
    org.apache.cxf
    cxf-rt-transports-http
    3.2.1
    org.apache.cxf
    cxf-rt-wsdl
    3.2.1
    org.apache.neethi
    neethi
    3.1.0
    org.codehaus.woodstox
    stax2-api
    3.1.4
    org.codehaus.woodstox
    woodstox-core-asl
    4.4.1
    wsdl4j
    wsdl4j
    1.6.3
    org.apache.ws.xmlschema
    xmlschema-core
    2.2.2
  2. 修改web.xml文件,引入代码片段
    Apache CXF Endpoint
    cxf
    cxf
    org.apache.cxf.transport.servlet.CXFServlet
    1
    cxf
    /services/*

     

  3. 创建接口与实现类
    HelloWord.java
    package com.quickmap.common;import javax.jws.WebParam;import javax.jws.WebService;// START SNIPPET: service@WebServicepublic interface HelloWorld {        String sayHi(@WebParam(name="text")String text);// @WebParam 里面的name是请求时候的参数名}// END SNIPPET: service

     

  4. HelloWorldImpl.java

     

    // START SNIPPET: servicepackage com.quickmap.common;import javax.jws.WebService;@WebService(endpointInterface = "com.quickmap.common.HelloWorld",            serviceName = "HelloWorld")public class HelloWorldImpl implements HelloWorld {    public String sayHi(String text) {        System.out.println("sayHi called");        return "Hello " + text;    }}// END SNIPPET: service

     

  5. 创建注入配置文件cxf-servlet.xml
    该文件保存到classpath根目录,如图
    222229_kBfR_2328605.png
    然后spring-context.xml引入
    <import resource="classpath:cxf-servlet.xml"  />
    222417_eq0k_2328605.png
    或直接把该配置文件放到WEB-INF根目录下和web.xml放到同一目录.
  6. 启动tomcat
    看到以下输出信息,说明发布成功
    223130_ocqu_2328605.png
  7. 在浏览器访问该地址
    http://localhost:8080/nkydsj/services/hello_world?wsdl
    223252_4ni8_2328605.png
  8. 客户端调用代码 Client.java运行后
    package com.quickmap.common;import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;public final class Client {    public static void main(String args[]) throws Exception {        JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();        org.apache.cxf.endpoint.Client client = clientFactory.createClient("http://localhost:8080/nkydsj/services/hello_world?wsdl");        Object[] result = new Object[0];        try {            result = client.invoke("sayHi", ",webservice调用成功啦!!!");            System.out.println(result[0]);        } catch (Exception e) {            e.printStackTrace();        }    }}
    223702_XQsP_2328605.png

 

转载于:https://my.oschina.net/matt0614/blog/1583713

你可能感兴趣的文章
HTML条件注释判断IE<!--[if IE]><!--[if lt IE 9]>
查看>>
发布和逸出-构造过程中使this引用逸出
查看>>
使用SanLock建立简单的HA服务
查看>>
Subversion使用Redmine帐户验证简单应用、高级应用以及优化
查看>>
Javascript Ajax 异步请求
查看>>
DBCP连接池
查看>>
cannot run programing "db2"
查看>>
mysql做主从relay-log问题
查看>>
Docker镜像与容器命令
查看>>
批量删除oracle中以相同类型字母开头的表
查看>>
Java基础学习总结(4)——对象转型
查看>>
BZOJ3239Discrete Logging——BSGS
查看>>
SpringMVC权限管理
查看>>
spring 整合 redis 配置
查看>>
cacti分组发飞信模块开发
查看>>
浅析LUA中游戏脚本语言之魔兽世界
查看>>
飞翔的秘密
查看>>
Red Hat 安装源包出错 Package xxx.rpm is not signed
查看>>
编译安装mysql-5.6.16.tar.gz
查看>>
活在当下
查看>>