搭建web项目结合spring+cxf的webservice服务

服务端:

服务端和客户端都需要引入包

 1 antlr-2.7.7.jar
 2 aopalliance-1.0.jar
 3 asm-3.3.jar
 4 commons-collections-3.2.1.jar
 5 commons-lang-2.6.jar
 6 commons-logging-1.1.1.jar
 7 cxf-2.4.2.jar
 8 cxf-manifest.jar
 9 cxf-xjc-boolean-2.4.0.jar
10 cxf-xjc-bug671-2.4.0.jar
11 cxf-xjc-dv-2.4.0.jar
12 cxf-xjc-ts-2.4.0.jar
13 FastInfoset-1.2.9.jar
14 geronimo-activation_1.1_spec-1.1.jar
15 geronimo-annotation_1.0_spec-1.1.1.jar
16 geronimo-javamail_1.4_spec-1.7.1.jar
17 geronimo-jaxws_2.2_spec-1.0.jar
18 geronimo-jms_1.1_spec-1.1.1.jar
19 geronimo-servlet_3.0_spec-1.0.jar
20 geronimo-stax-api_1.0_spec-1.0.1.jar
21 geronimo-ws-metadata_2.0_spec-1.1.3.jar
22 isorelax-20030108.jar
23 jaxb-api-2.2.1.jar
24 jaxb-impl-2.2.1.1.jar
25 jaxb-xjc-2.2.1.1.jar
26 jettison-1.3.jar
27 jetty-continuation-7.4.5.v20110725.jar
28 jetty-http-7.4.5.v20110725.jar
29 jetty-io-7.4.5.v20110725.jar
30 jetty-security-7.4.5.v20110725.jar
31 jetty-server-7.4.5.v20110725.jar
32 jetty-util-7.4.5.v20110725.jar
33 joda-time-1.6.2.jar
34 jra-1.0-alpha-4.jar
35 js-1.7R2.jar
36 jsr311-api-1.1.1.jar
37 msv-core-2010.2.jar
38 neethi-3.0.1.jar
39 opensaml-2.4.1.jar
40 openws-1.4.1.jar
41 relaxngDatatype-20020414.jar
42 saaj-api-1.3.jar
43 saaj-impl-1.3.2.jar
44 serializer-2.7.1.jar
45 slf4j-api-1.6.1.jar
46 slf4j-jdk14-1.6.1.jar
47 spring-aop-3.0.5.RELEASE.jar
48 spring-asm-3.0.5.RELEASE.jar
49 spring-beans-3.0.5.RELEASE.jar
50 spring-context-3.0.5.RELEASE.jar
51 spring-core-3.0.5.RELEASE.jar
52 spring-expression-3.0.5.RELEASE.jar
53 spring-jms-3.0.5.RELEASE.jar
54 spring-tx-3.0.5.RELEASE.jar
55 spring-web-3.0.5.RELEASE.jar
56 stax2-api-3.1.1.jar
57 velocity-1.7.jar
58 woodstox-core-asl-4.1.1.jar
59 wsdl4j-1.6.2.jar
60 wss4j-1.6.2.jar
61 xalan-2.7.1.jar
62 xml-resolver-1.2.jar
63 xmlbeans-2.4.0.jar
64 xmlschema-core-2.0.jar
65 xmlsec-1.4.5.jar
66 xmltooling-1.3.1.jar
67 xsdlib-2010.1.jar

web.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5"
 3     xmlns="http://java.sun.com/xml/ns/javaee"
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 6     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 7 <!-- 两种方式配置1.监听器配置 2.servlet配置, 以下的是采用监听器配置的 -->
 8
 9     <!-- 通过上下文参数指定spring配置文件的位置 -->
10     <context-param>
11         <param-name>contextConfigLocation</param-name>
12         <param-value>classpath:cxf-servlet.xml</param-value>
13     </context-param>
14     <listener>
15         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
16     </listener>
17
18     <!-- 配置CXF框架的核心Servlet  -->
19     <servlet>
20         <servlet-name>cxf</servlet-name>
21         <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
22         <!-- 通过初始化参数指定配置文件的位置 -->
23         <!--
24         <init-param>
25             <param-name>config-location</param-name>
26             <param-value>classpath:cxf-servlet.xml</param-value>
27         </init-param>
28          -->
29     </servlet>
30
31     <servlet-mapping>
32         <servlet-name>cxf</servlet-name>
33         <url-pattern>/cxf/*</url-pattern>
34     </servlet-mapping>
35
36   <welcome-file-list>
37     <welcome-file>index.jsp</welcome-file>
38   </welcome-file-list>
39 </web-app>

cxf-servlet.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
 4     xmlns:soap="http://cxf.apache.org/bindings/soap" xmlns:jaxrs="http://cxf.apache.org/jaxrs"
 5     xsi:schemaLocation="http://www.springframework.org/schema/beans
 6                         http://www.springframework.org/schema/beans/spring-beans.xsd
 7                         http://cxf.apache.org/bindings/soap
 8                         http://cxf.apache.org/schemas/configuration/soap.xsd
 9                         http://cxf.apache.org/jaxws
10                         http://cxf.apache.org/schemas/jaxws.xsd
11                         http://cxf.apache.org/jaxrs
12                         http://cxf.apache.org/schemas/jaxrs.xsd
13                         ">
14     <!-- 引入CXF Bean定义如下,早期的版本中使用,如果是servlet引入的话则下面三句不用了,因为框架引入了 -->
15     <import resource="classpath:META-INF/cxf/cxf.xml" />
16     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
17     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
18
19     <!-- 通过spring配置文件发布CXF的服务 -->
20
21     <!-- 第一种发布方式:没有接口的发布(简单发布) -->
22     <!--
23         id:唯一标识
24         address:访问url
25         implementor:提供服务的类型
26      -->
27     <jaxws:endpoint id="helloService" address="/hello"
28         implementor="cn.itcast.cxf.HelloService">
29         <!-- 加入消息拦截器 -->
30         <jaxws:inInterceptors>
31             <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
32         </jaxws:inInterceptors>
33         <jaxws:outInterceptors>
34             <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
35         </jaxws:outInterceptors>
36     </jaxws:endpoint>
37
38     <!-- 第二种发布方式:带有接口的发布 -->
39     <!--
40         id:唯一标识
41         address:访问url
42         serviceClass:接口类型
43      -->
44     <jaxws:server id="hiService" address="/hi"
45         serviceClass="cn.itcast.cxf.IHiService">
46         <jaxws:serviceBean>
47             <!-- 提供服务的实现类 -->
48             <bean class="cn.itcast.cxf.HiServiceImpl"></bean>
49         </jaxws:serviceBean>
50
51         <!-- 加入消息拦截器  -->
52         <jaxws:inInterceptors>
53             <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
54         </jaxws:inInterceptors>
55         <jaxws:outInterceptors>
56             <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
57         </jaxws:outInterceptors>
58     </jaxws:server>
59
60     <!-- 配置restful方式的web服务 -->
61     <bean id="ps" class="cn.itcast.restful.PersonServiceImpl"></bean>
62     <jaxrs:server id="personService" address="/p">
63         <jaxrs:serviceBeans>
64             <ref bean="ps"/>
65         </jaxrs:serviceBeans>
66         <jaxrs:inInterceptors>
67             <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"></bean>
68         </jaxrs:inInterceptors>
69         <jaxrs:outInterceptors>
70             <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
71         </jaxrs:outInterceptors>
72     </jaxrs:server>
73 </beans>

忽略60-72 那是 jason方面的配置

IHiService.java

1 package cn.itcast.cxf;
2
3 import javax.jws.WebService;
4
5 @WebService
6 public interface IHiService {
7     public String sayHi(String name);
8 }

HiServiceImpl.java

 1 package cn.itcast.cxf;
 2
 3 public class HiServiceImpl implements IHiService {
 4
 5     @Override
 6     public String sayHi(String name) {
 7         System.out.println("sayHi....");
 8         return "hi " + name;
 9     }
10
11 }

然后

localhost:8080/项目地址/hi?xsdl

客户端

利用 wsimport -s 地址 或者ws2java -s地址的命令

得到文件后

把接口文件复制来

配置文件 ClientBean.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
 4     xmlns:soap="http://cxf.apache.org/bindings/soap"
 5     xsi:schemaLocation="http://www.springframework.org/schema/beans
 6                         http://www.springframework.org/schema/beans/spring-beans.xsd
 7                         http://cxf.apache.org/bindings/soap
 8                         http://cxf.apache.org/schemas/configuration/soap.xsd
 9                         http://cxf.apache.org/jaxws
10                         http://cxf.apache.org/schemas/jaxws.xsd">
11         <!-- 配置客户端bean -->
12         <!--
13             id:唯一标识
14             address:请求的服务地址
15             serviceClass:客户端接口
16          -->
17         <jaxws:client id="hiService" address="http://localhost/CXF_03/cxf/hi" serviceClass="cn.itcast.cxf.IHiService"></jaxws:client>
18
19 </beans>

测试 IHiService就是拷贝过来的接口文件,放到项目中

 1 package cn.itcast.test;
 2
 3 import org.springframework.context.ApplicationContext;
 4 import org.springframework.context.support.ClassPathXmlApplicationContext;
 5
 6 import cn.itcast.cxf.IHiService;
 7
 8 public class Test1 {
 9     public static void main(String[] args) {
10         //初始化spring
11         ApplicationContext ctx = new ClassPathXmlApplicationContext("ClientBeans.xml");
12         IHiService s = (IHiService) ctx.getBean("hiService");
13         s.sayHi("abc");
14         System.out.println(s.getClass().getName());
15     }
16 }

搭建web项目结合spring+cxf的webservice服务

时间: 2024-10-12 13:38:32

搭建web项目结合spring+cxf的webservice服务的相关文章

spring + cxf 的webservice服务端和客户端功能

原文:spring + cxf 的webservice服务端和客户端功能 源代码下载地址:http://www.zuidaima.com/share/1550463730928640.htm spring + cxf 的webservice服务端和客户端功能. 提供页面调用ws和java代码调用两种方式. 引用jar包请下载:http://pan.baidu.com/s/1jGog2WI

在web项目中使用cxf开发webservice,包含spring支持

本文主要介绍了,如何使用cxf内置的例子,学会开发webserivce,在web项目中使用,且包含spring支持. webserivce的开发可以使用cxf或者axis,好像还有httpclient等等.以前也多次研究过,上网搜过很多别人的例子来看,写过代码下来,但没有总结过,少废话,上干货. 1. 到cxf的官网下载jar包.我用的是以前下载下来的apache-cxf-2.7.6.zip,并非最新版本.下载完成后,解压后,目录结构如下左图: 打开其中的samples文件夹,其内包含了很多例子

Eclipse+Maven+Spring+CXF 构建webservice 服务

一.   软件准备 Eclipse 4.2.1 Maven 2.2.1 Spring 3.2.6 CXF 3.0.2 软件下载和Eclipse 安装 maven插件等请參考其它文章. 二.   步骤 1.        新建webproject,利用maven管理.例如以下: project名为test,完毕以后.项目结构例如以下图: src/main/java 准备放 java 程序. src/main/resources准备放各类资源文件. 2.        加入代码 1)        

jfinal集成spring cxf做webservice服务

链接地址:http://zhengshuo.iteye.com/blog/2154047 废话不说,直接上代码 新增cxf的plugin CXFPlugin Java代码   package com.jfinal.plugin.spring; import org.apache.cxf.Bus; import org.apache.cxf.bus.spring.SpringBusFactory; import org.apache.cxf.transport.servlet.ServletTra

Spring Boot入门-快速搭建web项目

Spring Boot 概述: Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum

Spring-Boot快速搭建web项目详细总结

最近在学习Spring Boot 相关的技术,刚接触就有种相见恨晚的感觉,因为用spring boot进行项目的搭建是在太方便了,我们往往只需要很简单的几步,便可完成一个spring MVC项目的搭建,感觉就是下图: 好,下面就本人搭建项目的过程简单说说如何快速搭建一个spring MVC项目,相信我,spring-boot这趟车,你上了根本就停不下来了! 下面是这篇博客的主要内容: 1.spring boot 介绍 2.spring boot 项目快速搭建 3.spring-boot中单元测试

使用idea+springboot+Mybatis搭建web项目

使用idea+springboot+Mybatis搭建web项目 springboot的优势之一就是快速搭建项目,省去了自己导入jar包和配置xml的时间,使用非常方便. 1.创建项目project,然后选择Spring initializr,点击下一步  2.按图示进行勾选,点击下一步,给项目起个名字,点击确定. 3.项目生成有,点击add as maven project,idea 会自动下载jar包,时间比较长  4.项目生成后格式如下图所示:  其中DemoApplication.jav

springBoot 搭建web项目(前后端分离,附项目源代码地址)

springBoot 搭建web项目(前后端分离,附项目源代码地址) 概述 该项目包含springBoot-example-ui 和 springBoot-example,分别为前端与后端,前后端分离,利用ajax交互. springBoot-example-ui 前端html 技术:BootStrap + layer + jquery + css + html 该项目git地址:https://github.com/jiangcaijun/springBoot-example-ui sprin

如何使用maven搭建web项目

博客园注册了有二十多天了,还没有写过博客,今天就发一篇,也便于后面查找笔记. 我个人已经做了几年的java web开发了,由于所在的公司是业务型公司,用的都是一些老旧的稳定技术,很少接触到稍微新点的内容, 经过几年的不进则退,自己的技术能力已经开始慢慢的被时代潮流淘汰.为了在大浪淘沙中能生存下来,自己要好好加油,从基本内容开始,稳步沉淀,更新自己的技术库. 不求一口吃个大胖子,只求每天进步一点点. 废话不多说,言归正传.如何使用maven搭建web项目呢? 第一步:首先创建一个maven项目 创