Spring的WebService开发
2015-07-16 13:24
477 查看
由于项目使用Spring开发,所以笔者选择了ApacheCXF进行WebService开发,原因是ApacheCXF提供方便的Spring整合方法,可以通过注解、Spring标签式配置来暴露WebServices和消费WebServices。
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(orSun'sActivationjar)
geronimo-annotation_1.0_spec-1.1.jar(JSR250)
geronimo-javamail_1.4_spec-1.7.1.jar(orSun'sJavaMailjar)
geronimo-servlet_3.0_spec-1.0.jar(orSun'sServletjar)
geronimo-ws-metadata_2.0_spec-1.1.1.jar(JSR181)
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
publicinterfaceHelloWorldService{
publicStringgetNewName(StringuserName);
}
使用@WebService标识让CXF知道使用该接口来创建WSDL
4.新建一个实现类
@WebService(endpointInterface="org.app.demo.spring.service.HelloWorldService")
publicclassHelloWorldServiceImplimplementsHelloWorldService{
publicStringgetNewName(StringuserName){
return"HelloSpring!"+userName;
}
}
5.修改相应的配置文件
ApplicationContext.xml中加入如下代码
<jaxws:endpoint
id="helloWorld"
implementor="org.app.demo.spring.service.impl.HelloWorldServiceImpl"
address="/HelloWorld"/>
或者
<beanid="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/jaxwshttp://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.客户端调用也很方便,如下代码:
URLwsdlUrl=newURL("http://192.168.0.114:8080/myapp/HelloWorld?wsdl");
QNameSERVICE_NAME=newQName("http://impl.service.spring.demo.app.org/","HelloWorldServiceImplService");
Serviceservice=Service.create(wsdlUrl,SERVICE_NAME);
HelloWorldServicehello=service.getPort(HelloWorldService.class);
System.out.println(hello.getNewName("WebService调用"));
然后执行代码后,会打印出HelloSpring!WebService调用。
注意1.IP地址为Webservice的服务器的地址。
2.必须把相应的接口复制到客户端项目中。
相关文章推荐
- Java中native关键字
- 17.Java5的Exchanger同步工具
- 查看spring命名空间的版本号
- java synchronized详解
- 16.Java5的CountDownLatch同步工具
- SpringMVC——文件上传
- SpringMVC——文件上传
- eclipse jsp 添加图片
- Eclipse配置Android开发环境
- day1--Java基础语法--Java语言基础--思考案例
- SpringMVC——返回JSON数据&&文件上传下载
- SpringMVC——返回JSON数据&&文件上传下载
- 15.Java5的CyclicBarrier同步工具
- 01-Jvm 内存区域复习笔记 分类: JVM Java 2015-07-16 12:52 139人阅读 评论(0) 收藏
- 14.Java5的Semaphere同步工具
- spring 配置Spring对Cache的支持
- Java学习----继承和接口的区别是什么???
- Eclipse在线安装SVN
- Ubuntu jdk报Picked up JAVA_TOOL_OPTIONS信息解决
- 【Java】给定直角坐标系上的两条直线,确定这两条直线会不会相交