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

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.必须把相应的接口复制到客户端项目中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: