基于web的cxf的第一种发布方式——简单发布

标签: web cxf | 发表时间:2013-06-02 17:37 | 作者:caihongshijie6
出处:http://blog.csdn.net

前面所介绍的cxf发布方式都只给予javase的,以下是基于web的cxf的发布方式的第一种——简单发布


1、导包

      新建一个webproject,然后导入cxf的基本jar包(共67个)

2、web.xml

    在web.xml中加上以下代码

    
<!-- 配置CXF的核心Servlet -->
	<servlet>
		<servlet-name>cxf</servlet-name>
		<!-- 如果名字太长记不住的话,可以通过新建一个类,然后继承的方式来获得类全名 -->
		<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
	</servlet>
	
	
	<servlet-mapping>
		<servlet-name>cxf</servlet-name>
		<url-pattern>/cxf/*</url-pattern>
	</servlet-mapping>

3、HelloService

package com.njupt.cxf;

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.jws.WebService;
import javax.xml.ws.BindingType;
import javax.xml.ws.soap.SOAPBinding;

@WebService//如果不加,则看不到对外提供方法
@BindingType(value=SOAPBinding.SOAP12HTTP_BINDING)//将soap1.1协议改成soap1.2协议
public class HelloService {

	public String sayHello(String name){
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");
		
		return sdf.format(new Date()) + " hello " + name;
	}
}


4、cxf-servlet.xml

 在web-inf下新建一个file,名为cxf-servlet.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"
	xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:cxf="http://cxf.apache.org/core"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
          	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
            http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
            http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd">
	<!-- 引入CXF Bean定义如下,早期的版本中使用 -->
	<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:服务的请求url--> 
    <jaxws:endpoint id="helloService" implementor="com.njupt.cxf.HelloService"  address="/hello">
         
         <!-- 加入请求的消息拦截器 -->
         <jaxws:inInterceptors>
         
            <!-- 如果名字太长记不住的话,可以通过新建一个类,然后继承的方式来找到类的全名 -->
            <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
         </jaxws:inInterceptors>
         
         <!-- 加入响应的消息拦截器 -->
         <jaxws:outInterceptors>
            <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
         </jaxws:outInterceptors>
         
    </jaxws:endpoint> 
</beans>	

5、将项目部署到tomcat中

6、在地址栏中输入http://localhost:8080/CXF_3/cxf/hello?wsdl进行测试。(如果记不住,输入http://localhost:8080/CXF_3/cxf即可,  然后按照提示一步一步的往下做)


7、如果需要调用,参考前面的调用方式即可

作者:caihongshijie6 发表于2013-6-2 17:37:45 原文链接
阅读:13 评论:0 查看评论

相关 [web cxf] 推荐:

cxf+web service(二)代理工厂,安全验证,数据绑定

- - ITeye博客
(二)代理工厂,安全验证,数据绑定. 1.服务端:ServerFactoryBean,JaxWsServerFactoryBean 用于服务端调用.前者针对POJO,后者针对JAX-WS,他们用于生成服务端的EndPoint,暴露出服务接口. 2.客户端:ClientProxyFactoryBean,JaxWsProxyFactoryBean 用于客户端调用.前者针对POJO,后者针对JAX-WS,他用于在客户端生成Web Service的代理proxy.

基于web的cxf的第一种发布方式——简单发布

- - CSDN博客编程语言推荐文章
前面所介绍的cxf发布方式都只给予javase的,以下是基于web的cxf的发布方式的第一种——简单发布.       新建一个webproject,然后导入cxf的基本jar包(共67个).     在web.xml中加上以下代码.      . .

WebService之JAX-WS、CXF、Spring3.0+

- - 博客园_首页
          面对工作的需要,web服务这一块一直都在身边转悠着. 既然工作中需要这些,作为程序员就应该去了解和学习. 下面主要简述采用CXF+Spring+JAX-WS来发布WebService服务,以及创建客户端调用服务.          1、先了解关于WebService的相关概念以及一些专有名词的解释:.

webservice编程基础—cxf

- - ITeye博客
最近研究了一下cxf的使用,主要的步骤如下:. 下载最新的cxf包apache-cxf-2.6.2.tar.zip,并解压,有一个lib文件,里面的jar包,就是webservice需要的(不完全需要,看你的应用,但是懒的分),加载进你的webservice的工程即可. 配置两个配置文件,为beans.xml和web.xml,内容如下:.

Hessian, CXF, Spring httpinvoke 对比

- - Java - 编程语言 - ITeye博客
做了一个 Hessian, CXF, Spring httpinvoke 速度对比. 时间消耗  cxf > spring httpinvoke > hessian. 并发为10, 调用1W次所耗时间. 当然, 都知道 cxf 和 hessian 实现以及应用场景不太一样, 但差这么多还是很意外的.

CXF WEBSERVICE 安全验证

- - 企业架构 - ITeye博客
CXF 封装的接口,不希望对外暴露 WSDL结构,找到的CXF安全认证技术都是基于拦截器,在调用的时候返回认证错误信息, 不能保护WSDL不被看到,后来看到别人的一个实现方式最简单有效,基于URL拦截的安全保护,用FILTER. 现在把这2种安全保护都记录下来,备用. 参考: http://www.myexception.cn/open-source/1505475.html.

cxf + spring 的WS Security示例

- - RSS - IT博客云
WSPasswordCallback的 passwordType属性和 password属性都为null,你只能获得用户名(identifier),一般这里的逻辑是使用这个用户名到数据库中查询其密码,然后再设置到 password属性,WSS4J会自动比较客户端传来的值和你设置的这个值. 你可能会问为什么这里CXF不把客户端提交的密码传入让我们在 ServerPasswordCallbackHandler中比较呢.

CXF 入门:HelloWorld接口发布

- - ITeye博客
第一步:在myeclipse中新建一个web项目名为myWs,. 并导入依赖的jar包(cxf,spring,apache-commons相关). cxf结合spring时所需jar包,此例子也需要这些,用到了spring上下文加载. 第二步:在WEB-INF中创建基本的cxf-beans.xml内容如下(作用:主要做webservice接口属性配置,通过web.xml配置加载,文件名和位置可以顺便,web.xml配置会用到).

CXF+JAXB处理复杂数据

- - 博客园_首页
CXF+JAXB处理复杂数据. JAXB 来实现对象和XML之间的映射. 前面的例子 中,使用CXF发布的Webservice,其方法的参数和返回值都是简单类型. 本文讨论对象复杂性的分级,验证对于各种复杂度JAXB的支持情况,以及使用JAXB时对于Map,循环引用,继承等情况的处理办法. 文中的例子没有直接调用JAXB的API,而是用CXF发布webservice的形式验证对象到xml的marshal和unmarshal, 所以本文也可以作为使用CXF的参考资料.

webService学习之cxf与spring的简单整合

- - 企业架构 - ITeye博客
一:先把cxf的jar包导进去,我是直接在官网下载的cxf的包,解压后直接把lib文件夹里的jar一次.    性全部丢进去了,因为在学习,还不知道哪些包要哪些包不要的,所以干脆直接放进去. . . .