您的位置:首页 > 编程语言 > Java开发

基于spring4.3.6,cxf3.0.12的WebService开发

2017-03-03 00:00 525 查看
基于spring4.3.6,cxf3.0.12的WebService开发

由于项目使用Spring开发,所以笔者选择了ApacheCXF进行WebService开发,原因是ApacheCXF提供方便的Spring整合方法, 可以通过注解、Spring标签式配置来暴露WebServices和消费WebServices。
1.首先去http://cxf.apache.org/download.html下载最新的版本(目前是3.0.12)
2.Mavenpom依赖相应的包到项目中,大概包如下:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.0.12</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.0.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.6.RELEASE</version>
</dependency>
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服务器。
7.启动Tomcat,打开http://localhost:8080/myapp/HelloWorld?wsdl就可以看到了
8.客户端调(javaproject)用也很方便,如下代码:
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调用"));
8.客户端调(javaweb)ApplicationContext.xml中加入如下代码
<beanid="helloWorld"

class="org.app.demo.spring.service.HelloWorldService"

factory-bean="clientFactory"factory-method="create"/>

<beanid="clientFactory"class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">

<propertyname="serviceClass"value="org.app.demo.spring.service.HelloWorldService"/>

<propertyname="address"value="http://192.168.0.114:8080/myapp/HelloWorld"/>

</bean>
类@Autowired

privateHelloWorldServicehelloWorld;
然后执行代码后,会打印出HelloSpring!WebService调用。
注意1.IP地址为Webservice的服务器的地址。
2.必须把相应的接口复制到客户端项目中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: