CXF3.0.4与spring整合开发Webservice功能的web项目

项目非常简单,项目结构如下:

就一个HelloWorldDao接口,一个实现类HelloWorldImpl,一个spring的配置文件applicationContext-server.xml,一个web项目的配置文件web.xml。(当然需要导入CXF3.0.4的包,以及spring的相关包,还有一些像common-logging,aopalliance这样的web项目必备的包,顺便提一下,我的开发环境是jdk1.8.0_40,tomcat7.0.59,我一般喜欢用最新版的!)具体包的截图如下:()

接下来就是spring的包:(其实spring的包也用不完,如和aop相关的)

接下来看代码和配置文件部分:

1: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"
    version="2.5">

    <!-- 设置Spring容器加载配置文件路径 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:applicationContext-server.xml</param-value>
    </context-param>

    <!-- 加载Spring容器配置 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>CXFService</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>CXFService</servlet-name>
        <url-pattern>/webservice/*</url-pattern>
    </servlet-mapping>
</web-app>  

2:applicationContext-server.xml

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

    <bean id="helloWorldImpl" class="com.java.service.impl.HelloWorldImpl" />

    <!-- 2:通过jaxws:server方式来配置webservice -->
    <jaxws:server serviceClass="com.java.service.HelloWorldDao"
        address="/helloworld">
        <jaxws:serviceBean>
            <ref bean="helloWorldImpl" />
        </jaxws:serviceBean>
    </jaxws:server>
</beans>    

3:HelloWorldDao

package com.java.service;

import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public interface HelloWorldDao {
    public void sayHello(@WebParam(name = "name") String name);

}

4:HelloWorldImpl

package com.java.service.impl;

import javax.jws.WebService;
import com.java.service.HelloWorldDao;

@WebService
public class HelloWorldImpl implements HelloWorldDao {

    @Override
    public void sayHello(String name) {
        System.out.println("hello," + name);
    }
}

在网上查了很多资料,CXF以前的版本需要引入3个xml文件,但是通过测试,只需要引入

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

即可!

最后进行测试:

注意,我们在web.xml中配置了webservice的拦截器:

    <servlet-mapping>
        <servlet-name>CXFService</servlet-name>
        <url-pattern>/webservice/*</url-pattern>
    </servlet-mapping>

即凡是与/webservice开头的url都可以交给CXFservice处理。于是在tomcat下面启动项目后,打开浏览器,输入:

http://localhost:8080/CXF3.0.4_Webservice/webservice

结果如下:

点击wsdl后面的超链接,结果如下:

测试成功。

时间: 2024-10-16 14:50:52

CXF3.0.4与spring整合开发Webservice功能的web项目的相关文章

spring+resteasy开发webservice服务

有一段时间没有更新博客,主要是最近一段时间自己比较迷茫,一直在思考自己以后的路该怎么走.希望大家也可以给我一些建议,谢谢!好了,回归正题,今天给大家带来的是spring+resteay开发webservice服务,不知道大家是否在这之前接触过webservice,我之前所了解的webservice是使用cxf还有axis2开发的,但是我觉得实现起来比较麻烦,而且不灵活,今天给大家介绍一种比较灵活的提供webservice服务的技术:resteasy.下面我重点讲解的resteasy常用的一些知识

Hibernate+Spring整合开发步骤

Hibernate是一款ORM关系映射框架+Spring是结合第三方插件的大杂烩,Hibernate+Spring整合开发效率大大提升. 整合开发步骤如下: 第一步:导入架包: 1.Hibernate基础包+Spring基础包(AOP代理包和cglib...) 第二步:在spring配置文件中配置datasource(数据库连接信息要么写在hibernate.cfg.xml中:要么写在datasource中) <?xml version="1.0" encoding="

Python开发WebService:REST,web.py,eurasia,Django

Python开发WebService:REST,web.py,eurasia,Django 博客分类: Python PythonRESTWebWebServiceDjango 对于今天的WebService开发,我们至少有两种选择:SOAP/WSDL/UDDI系列的: REST风格架构系列的 !!! 在Bioinformatics(生物信息学)领域,WebService是很重要的一种数据交换技术,未来必将更加重要.目前EBI所提供的WebService就分别有SOAP和REST两种方式的服务,

Spring整合CXf WebService总结

Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式的互操作的应用程序.关于Java webService框架,主要有AXIS.XFire.CXF,还有Java自带的JAX-WS(必须JDK6以上环境). SOAP RPC的工作原理:类似于web的请求/响应方式,不同之处在于web客户和web服务器之间传输的是HTML数据.在SOAP RPC模式中

servlet3.0全注解spring整合shiro

基本说明 基于Servlet3.0全注解配置的Spring整合Shiro 目录 配置文件 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.ap

用Spring Boot零配置快速创建web项目(1)

一.Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 本文是一个springboot入门级的helloworld程序. 二.maven安装与配置 下载地址:http://maven.apache

Jfinal数据库操作在WebService或非web项目中的使用

接触上jfinal后就基本不使用其它框架了,一直在web开发中使用,最近做了个小的WebService应用,还是使用jfinal操作数据库,在这里分享下使用经验. 我的环境是三个oracle数据库,一个数据库接收数据,然后分发数据到另外两个数据库,使用jfinal的多数据源功能刚好满足要求. 编写数据库初始化类: 直接上代码 package ynitil.pekk.ws.common; import java.util.List; import ynitil.pekk.ws.model.Cltx

cxf+spring+数字签名开发webservice

数字证书的准备         下面做的服务端和客户端证书在例子中无法加解密,不知道什么原因,我是使用正式环境中的客户端和服务端进行开发测试的,所以需要大家自己去准备证书,或者有人知道为什么jdk生成的一对证书无法加解密的原因那在好不过了.下面是我用jdk生成的证书: 1.1.客户端 1.创建私钥和keystore                     keytool -genkey -alias clientprivatekey -keypass keypass -keystore clie

cxf+spring+数字签名开发webservice(二)

场景         上一章中的webservice接口,因为现场正式环境的项目与外部单位网络不通,是通过前置机与外部进行数据交换,所以我们将webservice部署在前置机,在使用HttpURLConnection与正式服务器上进行数       据传递.这里可以使用的技术挺多的,如:java的rmi,Hessian,spring的HttpInvoker等,下面是使用HttpURLConnection的代码(实际情况是最后选择了spring的HttpInvoker): HttpURLConne