分享

CXF MyEclipse 开发webservice入门实例之HelloWorld

 高亮的知识库 2012-02-14

CXF+MyEclipse 开发webservice入门实例之HelloWorld

分类: Web Services 1475人阅读 评论(4) 收藏 举报

按照CXF的用户文档上的描述,来写一个helloworld的webservice小实例!

 

第一步,新建一个名为“CXF_HelloWorld”的web project,加入如下jar包。

 

另外还需要加入spring的jar包。

 

第二步,配置web.xml,把CXFServlet配置到web.xml中

 

代码如下:

  1. <?xml version="1.0" encoding="UTF-8"?>    
  2. <web-app version="2.4" xmlns="http://java./xml/ns/j2ee" xmlns:xsi="http://www./2001/XMLSchema-instance"    
  3.   xsi:schemaLocation="http://java./xml/ns/j2ee      
  4.     http://java./xml/ns/j2ee/web-app_2_4.xsd">    
  5.        
  6.   <servlet>    
  7.     <description>Apache CXF Endpoint</description>    
  8.     <display-name>cxf</display-name>    
  9.     <servlet-name>cxf</servlet-name>    
  10.     <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>    
  11.     <load-on-startup>1</load-on-startup>    
  12.   </servlet>    
  13.   <servlet-mapping>    
  14.     <servlet-name>cxf</servlet-name>    
  15.     <url-pattern>/services/*</url-pattern>    
  16.   </servlet-mapping>    
  17.   <session-config>    
  18.     <session-timeout>60</session-timeout>    
  19.   </session-config>    
  20. </web-app>    

 

第三步,编写webservice

 

HelloWorld.java

  1. package cxf.server;  
  2.   
  3. import javax.jws.WebMethod;  
  4. import javax.jws.WebParam;  
  5. import javax.jws.WebService;  
  6.   
  7. @WebService  
  8. public interface HelloWorld {  
  9.     @WebMethod  
  10.     public String sayHello(@WebParam String message);  
  11. }  

 

 

 

HelloWorldImpl.java

 

[c-sharp] view plaincopy?
  1. package cxf.server;  
  2.   
  3. public class HelloWorldImpl implements HelloWorld{  
  4.   
  5.     @Override  
  6.     public String sayHello(String message) {  
  7.         // TODO Auto-generated method stub   
  8.         return message;  
  9.     }  
  10.   
  11. }  

 

 

第四步,把编写好的服务部署到cxf-servlet.xml中

 

cxf-servlet.xmls放在web-inf目录下

 

[c-sharp] view plaincopy?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www./schema/beans"  
  3.     xmlns:xsi="http://www./2001/XMLSchema-instance"  
  4.     xmlns:jaxws="http://cxf./jaxws"  
  5.     xmlns:soap="http://cxf./bindings/soap"  
  6.     xsi:schemaLocation="     
  7. http://www./schema/beans http://www./schema/beans/spring-beans.xsd      
  8. http://cxf./bindings/soap http://cxf./schemas/configuration/soap.xsd      
  9. http://cxf./jaxws      
  10. http://cxf./schemas/jaxws.xsd">   
  11.     <jaxws:server id="HelloWorld" serviceClass="cxf.server.HelloWorld">  
  12.         <jaxws:serviceBean>  
  13.             <bean class="cxf.server.HelloWorldImpl" />  
  14.         </jaxws:serviceBean>  
  15.     </jaxws:server>  
  16. </beans>  

 

第五步,编写客户端调用webservice

 

客户端HelloWorldClient.java

 

[c-sharp] view plaincopy?
  1. package cxf.client;  
  2.   
  3. import org.apache.cxf.interceptor.LoggingInInterceptor;  
  4. import org.apache.cxf.interceptor.LoggingOutInterceptor;  
  5. import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;  
  6.   
  7. import cxf.server.HelloWorld;  
  8.   
  9. public class HelloWorld {     
  10.     public static void main(String[] args) {     
  11.         JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();     
  12.         factory.getInInterceptors().add(new LoggingInInterceptor());     
  13.         factory.getOutInterceptors().add(new LoggingOutInterceptor());     
  14.         factory.setServiceClass(HelloWorld.class);     
  15.         factory.setAddress("http://localhost:8080/CXF_HelloWorld/services/HelloWorld");     
  16.         HelloWorld client = (HelloWorld) factory.create();     
  17.         String reply = client.sayHello("hello world!");     
  18.         System.out.println(reply);     
  19. }    
  20. }  

 

 

第六步,部署,运行

 

把项目部署到tomcat上,启动tomcat,运行HelloWorldClient.java

 

控制台成功输出hello world!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多