`
eksliang
  • 浏览: 599548 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

CXF学习笔记二(在WEB容器中发布WebService)

阅读更多

转载请出自出处:http://eksliang.iteye.com/blog/2265685

一、概述

在《CXF学习笔记一》中使用代理工厂JaxWsProxyFactoryBean来发布WebService,但是这种发布有个缺陷,那就是必须运行在指定端口上面,如果端口被占用,就会报错,假如现在的需求是:我有个WEB应用想部署在tomcat里面,而我这个WEB应用发布的WebService我也想使用8080端口,怎么办?

答:使用CXF自带的CXFServlet就可以完成这个功能。

 

二、配置CXFServlet

既然是CXFServlet那就必须在web.xml中配置这个Servlet,代码如下:

 

<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>classpath:applicationContext-*.xml</param-value>
</context-param>
<!-- Cxf中使用 CXFServlet,发布跟当前项目端口相同的服务 -->
<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>/cxf/*</url-pattern>
</servlet-mapping>
 

 

 默认情况下,CXFServlet会去加载WEB-INF下创建cxf-servlet.xml配置文件,但是我这里配置了contextConfigLocation,所以在类路径下面加载的CXF配置也同样生效。

 

三、服务接口以及实现类如下所示

接口:

 

import java.util.List;
import javax.jws.WebService;
import com.gosun.jws.daomain.Users;

/**
 * @author Ickes
 */
@WebService
public interface UserService {
	/**
	 * 测试返回list
	 * @return
	 */
	public List<Users> geAlltUsers();
	/**
	 * 测试返回实体,以及传人普通参数
	 * @param id
	 * @return
	 */
	public Users getUser(String id);
	
	/***
	 * 测试传入对象
	 * @param user
	 */
	public void save(Users user);
	
	/**
	 * 测试传人集合
	 * @param users
	 */
	public void saves(List<Users> users);
	
}
 实现类:

 

import java.util.List;
import javax.jws.WebService;
import com.gosun.jws.daomain.Users;
import com.gosun.jws.daomain.UsersFactory;

@WebService(serviceName = "cxfService", 
			endpointInterface = "com.gosun.jws.cxf.UserService"
)
public class UserServiceImpl implements UserService {

	@Override
	public List<Users> geAlltUsers() {
		return UsersFactory.getUsers();
	}

	@Override
	public Users getUser(String id) {
		System.out.println(id);
		return UsersFactory.getUser();
	}

	@Override
	public void save(Users user) {
		System.out.println(user.toJson());
	}

	@Override
	public void saves(List<Users> users) {
		for (Users u : users) {
			System.out.println(u.toJson());
		}
	}
}

 测试用到的:UsersFactory工具类和Users实体类在:http://eksliang.iteye.com/blog/2265021篇文章的3.1和3.2代码中

 

四、配置CXF的配置文件

在classpath目录下面新建applicationContext-cxf.xml文件,内容如下所示:

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:soap="http://cxf.apache.org/bindings/soap"
	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">
	
	<!-- CXFServlet 会自动把com.gosun.jws.cxf.UserServiceImpl发布为WebService -->
	<jaxws:server id="cxfUserService" serviceClass="com.gosun.jws.cxf.UserService"
		address="/userService">
		<jaxws:serviceBean>
			<bean class="com.gosun.jws.cxf.UserServiceImpl" />
		</jaxws:serviceBean>
	</jaxws:server>

</beans>

 

 

五、测试

我使用8080端口进行发布我的WEB服务,在浏览器中输入http://localhost:8080/jws/cxf,返回结果如下发布成功。



 

 

 

 

  • 大小: 26 KB
分享到:
评论

相关推荐

    WebService的实现——CXF学习笔记

    【WebService的实现——CXF学习笔记】 在Java世界中,WebService是一种通过标准协议(如SOAP)进行跨平台、跨语言通信的技术。CXF是Apache软件基金会的一个开源项目,它提供了构建和消费Web服务的工具和库。CXF支持...

    CXF框架发布webservice

    学习这些内容后,开发者将能够熟练地使用CXF框架和Spring框架来构建和发布高质量的Web服务,同时也能掌握服务的测试、安全性和事务管理等关键环节。通过实践,你可以更好地理解和掌握这些技术,提升你的Web服务开发...

    SpringBoot框架及CXF发布WebService

    **SpringBoot框架** SpringBoot是由Pivotal团队提供的全新框架,其设计目标是简化Spring应用...这两个部分可以作为学习和实践SpringBoot发布和消费Web服务的起点,帮助开发者深入理解SpringBoot与CXF的协同工作方式。

    Spring+CXF 发布WebService服务

    1. **配置Spring上下文**:首先,我们需要创建一个Spring配置文件,例如`spring-cxf.xml`,在这个文件中,我们会定义CXF的bean,如`JaxWsServerFactoryBean`,用于创建和发布WebService服务。 2. **定义WebService...

    使用CXF发布WebService

    当我们谈论“使用CXF发布WebService”时,我们实际上是在讨论如何利用Apache CXF框架创建和部署Web服务。Apache CXF是一个开源的Java框架,专门用于构建和消费Web服务,支持多种协议,如SOAP和RESTful。 首先,我们...

    springboot整合CXF发布webservice和客户端调用

    这个项目提供了一个很好的示例,通过详细注释帮助开发者理解如何在SpringBoot应用中发布和调用Web服务。 1. **SpringBoot简介** SpringBoot简化了Spring应用程序的初始设置和配置,通过自动配置和“起步依赖”...

    CXF+Spring+Tomcat发布WebService

    【标题】"CXF+Spring+Tomcat发布WebService"涉及的是使用Apache CXF框架与Spring框架结合,在Tomcat服务器上部署和消费Web服务的过程。这是一个常见的企业级应用开发场景,特别是对于实现基于SOAP协议的Web服务。...

    cxf发布webservice示例

    webservice示例 springmvc+maven+cxf发布webservice 博客地址 http://blog.csdn.net/joe_storm/article/details/78839150

    CXF使用EndpointImpl发布WebService加入拦截器

    在Java世界中,Apache CXF是一个广泛使用的开源框架,它允许开发者创建和消费Web服务。在Web服务开发中,拦截器扮演着至关重要的角色,它们提供了在消息发送和接收过程中插入自定义逻辑的能力。本篇文章将深入探讨...

    用cxf开发webservice

    在服务端配置中,你需要在`web.xml`文件中添加CXF所需的参数和Servlet配置。例如,设置`contextConfigLocation`以指示CXF加载应用程序上下文,包括`applicationContext-cxf.xml`文件。同时,配置CXFServlet,它是CXF...

    CXF webservice初学笔记

    在学习CXF时,了解源码有助于深入理解其工作原理。你可以查看CXF的GitHub仓库,探索其实现细节。同时,CXF提供了一系列工具,如CXF WSDL2Java生成器,用于从WSDL文件生成Java代码,以及CXF wsdl2wsdl工具,用于处理...

    webService(基于cxf)的完整例子

    在这个基于CXF的Web服务完整例子中,我们将深入探讨CXF的核心概念、配置、以及如何创建和调用Web服务。 1. **CXF框架介绍**:CXF,全称为"Code first eXtended Framework",最初由XFire项目发展而来,后与Apache ...

    超详细CXF学习笔记

    webservice+cxf基础笔记和视频,

    然后,当你开始使用CXF和Spring整合时,你将学习如何在Spring配置文件中声明和配置CXF服务,以及如何将服务接口实现类注入到Spring容器中。此外,你还会了解到如何通过CXF的端点发布功能将服务暴露出来,以及如何...

    springboot+CXF发布webservice接口

    本教程将详细介绍如何在Spring Boot项目中集成CXF来发布Web服务接口。 首先,我们需要确保项目中包含了Spring Boot和CXF的相关依赖。在`pom.xml`文件中,我们需要添加以下依赖: ```xml &lt;groupId&gt;org.spring...

    WebService CXF 详细教程

    3. **配置服务**:在Spring或其他容器中配置CXF,指定服务地址、服务类等信息。 4. **部署服务**:将服务部署到应用服务器,如Tomcat或Jetty。 5. **创建客户端**:同样,使用CXF工具从WSDL生成客户端代理类,然后...

    eclipse+CXF开发webService

    在开发webService之前,需要安装相关的软件环境,包括windowXP、eclipse3.7、tomcat7、jdk1.6和CXF2.4.3等。首先,需要从eclipse官方网站下载eclipse的安装包,并解压缩。然后,从apache官网下载CXF插件,包括apache...

    WebService CXF学习文档

    做开发时,查了大量资料,发现一比较全面的资料,分享一下!...WebService CXF学习——高级篇(一)(二) 1.整合Spring框架 2.CXF+Spring+Hibernate 3.WS-Security WebService CXF学习——JAXB剖析

    CXF+Jetty发布WebService

    总结,"CXF+Jetty发布WebService"是一个将Java服务接口通过CXF转换成Web服务,并使用Jetty作为服务器的实践过程。CXF简化了服务开发,而Jetty提供了轻量级的运行环境。理解并掌握这一技术栈,对于开发基于Java的...

    CXF发布WebService,jboss和tomcat都能发布

    在本教程中,我们将深入探讨如何使用CXF在JBoss和Tomcat这两种流行的Java应用服务器上发布Web服务。 ### 一、CXF WebService发布 1. **CXF环境搭建** 在开始之前,确保你已经安装了Java Development Kit (JDK) 和...

Global site tag (gtag.js) - Google Analytics