Spring的WebService开发

由于项目使用Spring开发,所以笔者选择了Apache CXF进行WebService开发,原因是Apache CXF 提供方便的Spring整合方法,可以通过注解、Spring标签式配置来暴露Web Services和消费Web Services。
1.     首先去http://cxf.apache.org/download.html 下载最新的版本(目前是2.4.1)
2.     导入相应的包到项目中,大概包如下:
              commons-logging-1.1.1.jar
geronimo-activation_1.1_spec-1.0-M1.jar (or Sun‘s Activation jar)
geronimo-annotation_1.0_spec-1.1.jar (JSR 250)
geronimo-javamail_1.4_spec-1.7.1.jar (or Sun‘s JavaMail jar)
geronimo-servlet_3.0_spec-1.0.jar (or Sun‘s Servlet jar)
geronimo-ws-metadata_2.0_spec-1.1.1.jar (JSR 181)
jaxb-api-2.1.jar
jaxb-impl-2.1.13.jar
jaxws-api-2.1.jar
neethi-3.0.0.jar
saaj-api-1.3.jar
saaj-impl-1.3.jar
stax-api-1.0.1.jar
stax2-api-3.1.1.jar
wsdl4j-1.6.2.jar
woodstox-core-asl-4.0.8.jar
xmlschema-core-2.0.jar
xml-resolver-1.2.jar
cxf-2.4.0.jar
               Spring的包就不说了。
3.     新建一个接口

@WebService

public interface HelloWorldService {

public String getNewName(String userName);

}
使用@WebService标识让CXF知道使用该接口来创建WSDL
4.     新建一个实现类

@WebService(endpointInterface="org.app.demo.spring.service.HelloWorldService")

public class HelloWorldServiceImpl implements HelloWorldService {

public String getNewName(String userName) {

return "Hello Spring!" + userName;

}

}
5.     修改相应的配置文件
ApplicationContext.xml中加入如下代码

<jaxws:endpoint

id="helloWorld"

implementor="org.app.demo.spring.service.impl.HelloWorldServiceImpl"

           address="/HelloWorld" />
或者
<bean id=" helloWorldService" class=" org.app.demo.spring.service.impl.HelloWorldServiceImpl" />

<jaxws:endpoint

id="helloWorld"

implementor="#helloWorldService"

           address="/HelloWorld" />
 
注意:XML头文件需相应添加
xmlns:jaxws="http://cxf.apache.org/jaxws
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
 
web.xml中加入如下代码

<servlet>

<servlet-name>CXFServlet</servlet-name>

<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

<load-on-startup>2</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>CXFServlet</servlet-name>

<url-pattern>/*</url-pattern>

</servlet-mapping>
6.     启动Tomcat,打开http://localhost:8080/myapp/HelloWorld?wsdl就可以看到了
7.     客户端调用也很方便,如下代码:

URL wsdlUrl = new URL("http://192.168.0.114:8080/myapp/HelloWorld?wsdl");

QName SERVICE_NAME = new QName("http://impl.service.spring.demo.app.org/","HelloWorldServiceImplService");

Service service = Service.create(wsdlUrl, SERVICE_NAME);

HelloWorldService hello = service.getPort(HelloWorldService.class);

System.out.println(hello.getNewName("WebService调用"));
然后执行代码后,会打印出 Hello Spring!WebService调用。
注意   1. IP地址为Webservice的服务器的地址。
         2. 必须把相应的接口复制到客户端项目中。
时间: 2024-10-11 09:48:30

Spring的WebService开发的相关文章

基于Spring和CXF的webservice开发环境搭建

使用CXF发布webservice服务时,规范的做法是先书写一个接口,用以声明服务类型. 基于Spring和CXF开发web service的框架搭建 一.创建web项目 Eclipse中新建一个dynamic webproject,命名为:CXFTest 二.导入需要的jar包 把下载的CXF项目的解压缩文件中lib文件夹下的所有jar包拷贝到WebContent->WEB-INF->lib文件夹下 三.创建服务接口 在Java resource->src目录下新建package包:c

Spring集成XFire开发WebService

Spring是目前最流行的JavaEE Framework,但是使用Spring的Spring-WS开发WebService却十分繁琐.XFire是一个简化WebService开发的开源项目,通过Spring和XFire的结合可以大大简化基于Spring Framework的应用中的WebService开发. Spring和XFire可以通过多种方式结合,下文介绍的是笔者常用的一种简单而实用的方法.所用的Spring版本为2.0,XFire版本为1.2.6 1.配置XFire Servlet 在

WebService开发笔记 1 -- 利用cxf开发WebService竟然如此简单

现在的项目中需要用到SOA概念的地方越来越多,最近我接手的一个项目中就提出了这样的业务要求,需要在.net开发的客户端系统中访问java开发的web系统,这样的业务需求自然需要通过WebService进行信息数据的操作.下面就将我们在开发中摸索的一点经验教训总结以下,以供大家参考. 我们项目的整个架构使用的比较流行的WSH MVC组合,即webwork2 + Spring + Hibernate; 1.首先集成Apacha CXF WebService 到 Spring 框架中; apache

Webservice开发概念

一.Web Service基本概念 Web Service由两部分组成 SOAP--Web Service之间的基本通信协议. WSDL--Web Service描述语言,它定义了Web Service做什么,怎么做和查询的信息. 二.什么是 Webservice? Web 是使应用程序可以与平台和编程语言无关的方式进行相互通信的一项技术.Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作.它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个

eclipse下的webservice开发

关于eclipse下的webservice开发,有非常多的教程,这里只记下学习过程中的弯路: 1.无论是CXF模式还是AXIS模式,在出现start server之后,点击next报错:"selection must be wsdl",原因其实非常简单,就是启动server时有异常,没有可以访问的wsdl.需要将异常解决了之后就行. 2.使用CXF模式时,CXF的版本要与eclipse中的一致,eclipse mars.1下要求CXF2.x,此时官网的已经到3了,使用老版本. 3.使用

WebService到底是什么?WebService平台技术、WebService开发、适用场合

一.序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分.但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService到底是什么?何时应该用? 当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦客户端应用程序,一种是基于浏览器的富客户端应用程序(RIA),当然后一种技术相对来说更加的时髦一些(如现在很流行的Html5技术),这里

Spring线程池开发实战

Spring线程池开发实战 作者:chszs,转载需注明. 作者博客主页:http://blog.csdn.net/chszs 本文提供了三个Spring多线程开发的例子,由浅入深,由于例子一目了然,所以并未做过多的解释.诸位一看便知. 前提条件: 1)在Eclipse创建一个Java项目,我取名为SpringThreadDemo.2)项目所需的JAR包如图所示:  下面开始. 注:项目源码已经托管到GitHub,地址:https://github.com/chszs/SpringThreadD

Hibernate+Spring+Struts2整合开发中的一个分页显示方案(转载)

分页显示一直是web开发中一大烦琐的难题,传统的网页设计只在一个JSP或者ASP页面中书写所有关于数据库操作的代码,那样做分页可能简单一点,但当把网站分层开发后,分页就比较困难了,下面是我做Spring+Hibernate+Struts2项目时设计的分页代码,与大家分享交流. 1.DAO层接口的设计,在MemberDao接口中定义了如下两个方法: public interface MemberDao{        //省略了其他的代码        /**     * 分页查询     * @

MyBatis+Spring+Spring MVC整合开发

MyBatis+Spring+Spring MVC整合开发课程观看地址:http://www.xuetuwuyou.com/course/65课程出自学途无忧网:http://www.xuetuwuyou.com 课程介绍一.课程用到的软件:1.jdk 1.82.eclispe luna3.tomcat 84.MySQL 5.1 +5.navicat 9 + 二.课程涉及到的技术点1.MyBatis基础,主要介绍2.MyBatis高级,3.SpringMVC基础4.SpringMVC高级5.My