原想拿最新版cxf来制作的,无奈Apache的zip包总下不下来,国内的apache-cxf-2.2.10却一蹴而就,也就用了这个版本。下载地址是:http://pan.baidu.com/s/1tdgiW

整个程序的下载地址是:http://pan.baidu.com/s/1GdI5p ,里面包括服务器端和测试客户端,伸手党直接拿走就好了。

用cxf做Webservice还是很顺手的,感觉比以前的Axis1/2都要简单快捷。

首先,讲讲如何做服务器端。

先用MyEclipse创建一个Web工程,把apache-cxf-2.2.10里面lib目录的jar包都拷到web-inf下的lib目录里,再将所有lib引导到工程中。

其次,把Web.xml改写如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <display-name>Rts Cxf WebService</display-name>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/appctx.xml</param-value>
    </context-param>  

    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>  

    <servlet>
        <servlet-name>CXFServlet</servlet-name>
        <servlet-class>
            org.apache.cxf.transport.servlet.CXFServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>  

    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

然后,在WEB-INF下创建一个appctx.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:jaxws="http://cxf.apache.org/jaxws"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">  

    <import resource="classpath:META-INF/cxf/cxf.xml" />
    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />  

    <!-- 上面不用管 ,id随意,implementor是实现类,address在客户端的地址中会用到-->
    <jaxws:endpoint id="getresponse" implementor="com.hy.TestImpl" address="/getResponse" />
</beans>  

然后,创建一个接口:

package com.hy;

import javax.jws.WebService;

@WebService
public interface Test{
    public String getResponse(String req);
}

在实现一个类:

package com.hy;

import javax.jws.WebService;

@WebService
public class TestImpl implements Test{

    public String getResponse(String req) {

        return "Hello!"+req;
    }
}

注意上面的Annotator “@WebService” 不能少,我都用粗体标识出来了,少了就玩不转了。

之后,把工程发布到Tomcat里,WebService就运转起来了。

在浏览器地址栏输入http://localhost:8080/cxfServer是这个效果:

服务端运转起来,需要客户端来测试一下。

这回是制作一个java工程,将lib同样倒一下。

然后把Test接口拷贝过来,再写一个测试程序就好了:

package com.hy;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

public class Main{
    public static void main(String[] args){
        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
        factory.setServiceClass(Test.class);
        factory.setAddress("http://localhost:8080/cxfServer/getResponse");  // localhost:8080/ + appname+/+address(appctx.xml里写的)
        Test t = (Test) factory.create();
        System.out.println(t.getResponse("逆火狂飙"));
    }
}

这个跑完的效果是:Hello!逆火狂飙

就是这些内容,确实简单。你可以以此为基础发明自己的WebService。

2013年11月21日22:06:13

使用apache-cxf-2.2.10来制作一个极简版WebService程序的更多相关文章

  1. CBrother脚本10分钟写一个拯救“小霸王服务器”的程序

    CBrother脚本语言10分钟写一个拯救“小霸王服务器”的程序 到了一家新公司,接手了一坨c++服务器代码,到处内存泄漏,这服务器没有数据库,挂了后重启一下就好了,公司就这么凑活着用了几年了,定时重 ...

  2. 制作一个windows垃圾清理小程序

    制作一个windows垃圾清理小程序: 把下列代码保存为.bat文件(如垃圾清理.bat) 双击它就能很快地清理垃圾文件,大约一分钟不到. 就是下面的文字(这行不用复制)=============== ...

  3. 【URLOS应用开发基础】10分钟制作一个nginx静态网站环境应用

    URLOS开发者功能已上线有一段时间了,目前通过部分开发者的使用体验来看,不得不说URLOS在服务器软件开发效率方面确实有着得天独厚的优势,凭借docker容器技术与其良好的应用生态环境,URLOS必 ...

  4. Apache CXF多个远程拒绝服务漏洞(CVE-2013-2160)

    漏洞版本: Apache Group CXF <= 2.5.10 Apache Group CXF 2.7.4 Apache Group CXF 2.6.7 漏洞描述: BUGTRAQ ID: ...

  5. apache CXF wsdl2java工具的使用

    cxf的wsdl2java命令和JDK的wsimport命令的区别和使用 JDK提供了一个wsimport.exe的命令,主要是用于将WebService生成客户端代码,然后好调用WebService ...

  6. Apache CXF 103 CXF Basics - partial

    本Spike记录中内容,如无特别指出,均引用[1]. 0 引言 0.1 基本的Web服务术语 XML 业界的结构化交换信息表示的事实上的标准. XML namespace是在XML文档中提供唯一的命名 ...

  7. Apache CXF 102 CXF with REST

    前言 续上篇Apache CXF 101,摘抄部分REST概念性知识,以运行实例考察CXF对REST的支持. 目录 1 REST简介 2 工具 3 运行实例 内容 本Spike记录中内容,如无特别指出 ...

  8. Maven搭建webService (三) 创建客户端---使用Apache CXF方式实现

    package test; import net.cc.web.server.HelloWorld; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean ...

  9. 《Apache数据传输加密、证书的制作》——涉及HTTPS协议

    首先了解http和https: HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议. HTTPS和HTTP的区别: http是超文本传输协议,信息是明 ...

随机推荐

  1. Beaglebone Black开发板安装驱动

    Beaglebone Black开发板安装驱动 Beaglebone Black开发板安装驱动,在使用Beaglebone Black开发板子做任何事情之前首先需要安装驱动.下面的内容就了展示在Win ...

  2. 如何配置FastReport.Net环境

    利用FastReport.Net工具箱中的EnvironmentSettings组件可以控制FastReport.Net的环境设置.把EnvironmentSettings组件放到窗体上,并使用下面的 ...

  3. 【20181030T1】排列树【树形结构+组合数】

    题面 [正解] 一眼找规律 --**这东西有啥规律啊 哎好像根节点是最小的 好像可以组合数分配子树大小,子树内部-- 可以递归啊! 乱搞一顿就好啦 过了大样例 复杂度\(O(N)\) 切完T2后T3水 ...

  4. java_es

    在查询时过滤掉指定的"_id"的数据 GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();// 对 ...

  5. java开发_mysql中获取数据库表描述_源码下载

    功能描述: 在mysql数据库中,有两张表: data_element_config , test_table 我们需要获取表:test_table表的描述信息,然后把描述信息插入到表:data_el ...

  6. BSGS 模板

    模板如下: 扩展版本: 求解a^k=b %p 求k,最小的k一定小于p,否则会重复,否则无解 *********************** gcd(a,p)=1时 设k=mi+v m=sqrt(p) ...

  7. java同步ldap实例

    1.准备过程 1.1  在windows server 2008 R2操作系统下搭建AD域,不懂得看链接地址:http://99532720.blog.51cto.com/2194488/696611 ...

  8. ORACEL 创建表空间

    注意点: 1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行 2.确保路径存在,比如[D:\oracle\oradata\Oracle9i\]也就是你要保存文件的路径存 ...

  9. BUZZER Driver

  10. 软件版本GA,RC,alpha,beta,Build 含义

    (1)RC:(Release Candidate) Candidate是候选人的意思,用在软件上就是候选版本.Release.Candidate.就是发行候选版本.和Beta版最大的差别在于Beta阶 ...