WebService -- Java 实现之 CXF ( 使用:Spring+CXF+Tomcat发布webService)

1. 新建一个Maven项目,选择webapp模板,命名为WS_Spring_CXF_Tomcat

2. 在POM.xml中添加Spring和CXF的依赖

    <!-- 添加 Spring dependency -->
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-core</artifactId>
	    <version>4.1.7.RELEASE</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-beans</artifactId>
	    <version>4.1.7.RELEASE</version>
	</dependency>
	<dependency>
	     <groupId>org.springframework</groupId>
	     <artifactId>spring-tx</artifactId>
	     <version>4.1.7.RELEASE</version>
	    </dependency>
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-context</artifactId>
	    <version>4.1.7.RELEASE</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-context-support</artifactId>
	    <version>4.1.7.RELEASE</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-web</artifactId>
	    <version>4.1.7.RELEASE</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-webmvc</artifactId>
	    <version>4.1.7.RELEASE</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-aop</artifactId>
	    <version>4.1.7.RELEASE</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-aspects</artifactId>
	    <version>4.1.7.RELEASE</version>
	</dependency>
	<dependency>
	    <groupId>org.springframework</groupId>
	    <artifactId>spring-jdbc</artifactId>
	    <version>4.1.7.RELEASE</version>
	</dependency> 

    <!-- 添加CXF dependency  -->
	<dependency>
	    <groupId>org.apache.cxf</groupId>
	    <artifactId>cxf-core</artifactId>
	    <version>3.1.5</version>
	</dependency>
	<dependency>
	    <groupId>org.apache.cxf</groupId>
	    <artifactId>cxf-rt-frontend-jaxws</artifactId>
	    <version>3.1.5</version>
	</dependency>
	<dependency>
	    <groupId>org.apache.cxf</groupId>
	    <artifactId>cxf-rt-transports-http</artifactId>
	    <version>3.1.5</version>
	</dependency>

3. 修改 project->src->main->web app->WEB-INFO->web.xml

指定spring配置和servlet配置:

<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>WS_Spring_CXF_Tomcat</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

    <!-- Spring config-->
	<context-param>
	    <param-name>contextConfigLocation</param-name>
	    <param-value>classpath:applicationContext.xml</param-value>
	</context-param>

	<!-- Spring listener -->
	<listener>
	    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	     <!-- Add on a servlet to handle web service request -->
	<servlet>
	 <servlet-name>CXFServlet</servlet-name>
	 <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
	</servlet>  

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

4. 添加Spring配置文件到classpath路径下

<?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:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jee="http://www.springframework.org/schema/jee"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:jaxws="http://cxf.apache.org/jaxws"
    xsi:schemaLocation="
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">    

    <!-- import CXF configuration files -->
    <import resource="classpath:META-INF/cxf/cxf.xml"/>
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>

注意添加:

1.Spring和CXF名空间;

2.CXF配置文件

5.定义WebService接口及实现类

package com.example.tuo.webservice.impl;

import javax.jws.WebService;

import org.springframework.stereotype.Component;

import com.example.tuo.webservice.HelloWorld;

@Component("helloWorld")
@WebService
public class HelloWorldImpl implements HelloWorld{

	public String sayHello(String sb) {
		// TODO Auto-generated method stub
		return "Hello world," +sb;
	}

}

在实现类中添加 "@Component("helloWorld")" 注解,并且修改Spring配置文件(applicationContext.xml),利用Spring管理实现类

<!-- auto scan class as bean -->
<context:component-scan base-package="com.example.tuo.webservice" />

6.修改Spring配置文件,暴露微博service的endpoint

<!-- define web service provider  -->
	<jaxws:endpoint
	    implementor="#helloWorld"
	    address="/HelloWorld">
	</jaxws:endpoint>

7. 启动Tomcat,在浏览器中输入webservice的address

http://localhost:8080/WS_Spring_CXF_Tomcat/webservice/HelloWorld?wsdl

OK, 这样我们就成功的讲webservice发布到了Tomcat上。 :)

时间: 2024-08-27 00:28:44

WebService -- Java 实现之 CXF ( 使用:Spring+CXF+Tomcat发布webService)的相关文章

WebService—CXF整合Spring实现接口发布和调用过程2

一.CXF整合Spring实现接口发布 发布过程如下: 1.引入jar包(基于maven管理) <!-- cxf --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>2.7.18</version> </dependency> <de

WebService—CXF整合Spring实现接口发布和调用过程

一.CXF整合Spring实现接口发布 发布过程如下: 1.引入jar包(基于maven管理) <!-- cxf --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>2.7.18</version> </dependency> <de

使用spring和Tomcat发布CXF WebService

上一节中使用代理工厂JaxWsProxyFactoryBean来发布WebService, 这种方式必须指定运行的端口,如果端口被占用,就会发布失败. cxf的WebService也可利用Tomcat来发布,并且使用8080端口.方法如下: maven配置: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>4.3.0

myeclipse上spring+mybatis+axis2发布webservice接口的问题及个人实现的方式

前提: 这个月的突然一天,有个项目对接需要使用axis2发布的接口,这下难倒我了,毕竟之前我是连webservice接口都不知怎么发布的.后来从HelloWorld开始发布了第一个接口--sayHi();到这一步的时候都是很顺利的,唯独和axis2整合的时候,出现问题了,spring的dao层在axis2发布后的接口里,一直为null,貌似是spring一直没有被初始化,这期间我测试过按照正常流程来执行一个请求,是正确的,唯独和axis2整合后就不行了,在这测试的时间内,很痛苦,很痛苦,所有能想

eclipse提示设置(java,js,html),tomcat发布位置

zjava 然后将其值改为 .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW 再查找 zjs 然后将其值改为 .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW 再查找 zhtml 然后将其值改为 <=.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW tomcat发布位置: javaWorkSpace\.metadata\.plugins\or

【Java EE 学习第81天】【CXF框架】【CXF整合Spring】

一.CXF简介 CXF是Apache公司下的项目,CXF=Celtix+Xfire:它支持soap1.1.soap1.2,而且能够和spring进行快速无缝整合. 另外jax-ws是Sun公司发布的一套开发WebService服务的标准.早期的标准如jax-rpc已经很少使用,而cxf就是在新标准jax-ws下开发出来的WebService,jax-ws也内置到了jdk1.6当中. CXF官方下载地址:http://cxf.apache.org/download.html 下载完成之后,解压开压

webservice cxf与spring详解

wsdl文档结构图 JDK方式开发 server端代码 package server; import javax.jws.WebMethod; import javax.jws.WebService; /**  *   *   * SEI:Service Endpoint Interface 发布的服务接口  *  */ @WebService public interface HelloWS { @WebMethod     public String sayHello(String name

spring,cxf,restful发布webservice传递List,Map,List&lt;Map&gt;

上一篇文章中概述了怎么在Javaweb中发布webservice,这篇文章讲解怎么传递复杂的对象 所用的jar包如下 当服务器返回的是List或者是Map时,一定要将其封装在一个类中, 首先创建封装类,封装了List,Map对象,以及自定义的User类 User.java public class User { private String name; private int age; public User() { } public User(String name, int age) { t

Maven 创建java Web项目,配置Spring,CXF

1.搭建Maven环境 参考文章 Maven3路程(一)环境搭建 http://www.cnblogs.com/leiOOlei/p/3359561.html Maven3路程(二)Eclipse集成Maven http://www.cnblogs.com/leiOOlei/p/3361379.html Maven3路程(三)用Maven创建第一个web项目(1) Maven3路程(三)用Maven创建第一个web项目(2)servlet演示 Maven 配置Spring 参考 http://b