微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webservices——发布CXF的方法总结!!!

注意:jar包还是*.jar哦!!!

 

先说发布的方法总结!

 

第一种:用一个j2se的main方法来发布

 

[java]  view plain copy print ?
  1. public class Server {  
  2.     public static void main(String[] args) {  
  3.         Endpoint.publish("http://127.0.0.1:8080/cxf"new HelloImpl());  
  4.     }  
  5. }  

 

第二种用tomcat来发布

webX.xml:

[xhtml]  ?
    <servlet>  
  1.     <servlet-name>CXFServlet</servlet-name>  
  2.     <servlet-class>t.T</servlet-class>  
  3.     <init-param>  
  4.         <param-name>/hello</param-name>  
  5.         <param-value>t.HelloImpl</param-value>  
  6.     </init-param>  
  7.     <load-on-startup>1</load-on-startup>  
  8. </servlet>  
  9. <servlet-mapping>  
  10.     <servlet-name>CXFServlet</servlet-name>  
  11.     <url-pattern>/services/*</url-pattern>  
  12. </servlet-mapping>  

 

t.java:

?
    package t;  
  1.   
  2. import java.util.Enumeration;  
  3. import javax.servlet.ServletConfig;  
  4. import javax.servlet.servletexception;  
  5. import javax.xml.ws.Endpoint;  
  6. import org.apache.cxf.Bus;  
  7. import org.apache.cxf.BusFactory;  
  8. import org.apache.cxf.transport.servlet.CXFNonspringServlet;  
  9. public class T extends CXFNonspringServlet {  
  10.     private static final long serialVersionUID = -4143021604478775522L;  
  11.     public void loadBus(ServletConfig servletConfigthrows servletexception {  
  12.         super.loadBus(servletConfig);  
  13.         Bus bus = this.getBus();  
  14.         BusFactory.setDefaultBus(bus);  
  15.         // 获取在web.xml中配置的要发布的所有的Web服务实现类并发布Web服务  
  16.         Enumeration<String> enumeration = this.getinitParameterNames();  
  17.         while (enumeration.hasMoreElements()) {  
  18.             String key = enumeration.nextElement();  
  19.             String value = this.getinitParameter(key);  
  20.             try {  
  21.                 Class clazz = Class.forName(value);  
  22.                 try {  
  23.                     Endpoint.publish(key, clazz.newInstance());  
  24.                 } catch (InstantiationException e) {  
  25.                     e.printstacktrace();  
  26.                 } catch (illegalaccessexception e) {  
  27.                 }  
  28.             } catch (ClassNotFoundException e) {  
  29.                 e.printstacktrace();  
  30.             }  
  31.         }  
  32.     }  
  33. }  

 

第三种:还是用tomcat,但是采用spring的一些小编。

web.xml

?
    <context-param>  
  1.     <param-name>contextConfigLocation</param-name>  
  2.     <param-value>/WEB-INF/beans.xml</param-value>  
  3. </context-param>  
  4. <listener>  
  5.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  6. </listener>  
  7. <servlet>  
  8.     <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>  
  9.     <load-on-startup>1</load-on-startup>  
  10. </servlet>  
  11. <servlet-mapping>  
  12.     <url-pattern>/services/*</url-pattern>  
  13. </servlet-mapping>  

 

同目录还有一个beans.cml:

?
    <?xml version="1.0" encoding="UTF-8"?>  
  1. <beans xmlns="http://www.springframework.org/schema/beans"  
  2.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xmlns:jaxws="http://cxf.apache.org/jaxws"  
  4.     xmlns:jaxrs="http://cxf.apache.org/jaxrs"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans  
  6.     http://www.springframework.org/schema/beans/spring-beans.xsd  
  7.     http://cxf.apache.org/jaxws  
  8.     http://cxf.apache.org/schemas/jaxws.xsd  
  9.     http://cxf.apache.org/jaxrs  
  10.     http://cxf.apache.org/schemas/jaxrs.xsd">  
  11.       
  12.     <import resource="classpath:meta-inf/cxf/cxf.xml" />  
  13.     <import resource="classpath:meta-inf/cxf/cxf-extension-soap.xml"/>  
  14.     <import resource="classpath:meta-inf/cxf/cxf-extension-jaxrs-binding.xml" />  
  15.     <import resource="classpath:meta-inf/cxf/cxf-servlet.xml" />  
  16.       
  17.     <jaxws:endpoint id="helloServiceWs" address="/hello" implementor="#helloService" />  
  18.     <bean id="helloService" class="t.HelloImpl" />  
  19. </beans>  

 

再说一哈,客户端代码生成总结!!!这里提一下而已,多个思路。

 

1.手写:

?
    public class Client {  
  1.         JaxWsProxyfactorybean factory = new JaxWsProxyfactorybean();  
  2.         factory.setAddress("http://127.0.0.1/cxf_server/services/hello");  
  3.         factory.setServiceClass(HelloInter.class);  
  4.         HelloInter helloInter = (HelloInter) factory.create();  
  5.         helloInter.hello();  
  6. }  

 

2.用eclipse自动生成

 

3.用XFire里面有的东西也可以生成

 

4.用spring也可以生成

 

5.用图形界面工具,比如soapui。(最简单)

 

6.用ant自动生成等等。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐