使用Apache CXF和Spring集成创建Web Service
1.创建HelloWorld 接口类
1 |
package com.googlecode.garbagecan.cxfstudy.helloworld; |
2 |
import javax.jws.WebParam; |
3 |
import javax.jws.WebResult; |
4 |
import javax.jws.WebService; |
6 |
public interface HelloWorld { |
7 |
public @WebResult (name= "String" )String sayHi( @WebParam (name= "text" ) String text); |
2.创建HelloWorld实现类
1 |
package com.googlecode.garbagecan.cxfstudy.helloworld; |
2 |
public class HelloWorldImpl implements HelloWorld { |
3 |
public String sayHi(String name) { |
4 |
String msg = "Hello " + name + "!" ; |
5 |
System.out.println( "Server: " + msg); |
3.修改web.xml文件
01 |
<!DOCTYPE web-app PUBLIC |
02 |
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" |
03 |
"http://java.sun.com/dtd/web-app_2_3.dtd" > |
05 |
< display-name >cxfstudy</ display-name > |
07 |
< servlet-name >cxf</ servlet-name > |
08 |
< servlet-class >org.apache.cxf.transport.servlet.CXFServlet</ servlet-class > |
09 |
< load-on-startup >1</ load-on-startup > |
12 |
< servlet-name >cxf</ servlet-name > |
13 |
< url-pattern >/ws/*</ url-pattern > |
16 |
< listener-class >org.springframework.web.context.ContextLoaderListener</ listener-class > |
20 |
< param-name >contextConfigLocation</ param-name > |
21 |
< param-value >classpath*:**/spring.xml</ param-value > |
4.创建spring配置文件并放在classpath路径下
01 |
<? xml version = "1.0" encoding = "UTF-8" ?> |
02 |
< beans xmlns = "http://www.springframework.org/schema/beans" |
03 |
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws = "http://cxf.apache.org/jaxws" |
04 |
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd |
05 |
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> |
06 |
< import resource = "classpath:META-INF/cxf/cxf.xml" /> |
07 |
< import resource = "classpath:META-INF/cxf/cxf-extension-soap.xml" /> |
08 |
< import resource = "classpath:META-INF/cxf/cxf-servlet.xml" /> |
09 |
< jaxws:endpoint id = "helloworld" implementor = "com.googlecode.garbagecan.cxfstudy.helloworld.HelloWorldImpl" address = "/HelloWorld" /> |
12 |
< jaxws:client id = "helloworldClient" address = "http://localhost:9000/ws/HelloWorld" serviceClass = "com.googlecode.garbagecan.cxfstudy.helloworld.HelloWorld" /> |
5.创建测试类
01 |
package com.googlecode.garbagecan.cxfstudy.helloworld; |
02 |
import org.springframework.context.ApplicationContext; |
03 |
import org.springframework.context.support.ClassPathXmlApplicationContext; |
04 |
public class SpringClient { |
05 |
public static void main(String[] args) { |
06 |
ApplicationContext context = new ClassPathXmlApplicationContext( "spring.xml" ); |
07 |
HelloWorld helloworld = (HelloWorld)context.getBean( "helloworldClient" ); |
08 |
System.out.println(helloworld.sayHi( "kongxx" )); |
6.测试
6. 1.首先启动tomcat或者使用maven的jetty,并访问http://localhost:9000/ws/HelloWorld?wsdl来验证web service已经启动并且生效;
6. 2.然后运行测试类来验证web service。