2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

CXF 2.0 webservice 學習筆記

 奶奶熊 2007-11-12

對比了一下CXF2 和 AXIS 2 還是選擇在框架中集成CXF2。不過CXF2的文檔更新的真是慢啊,試了一下,目前CXF2支持的兩種綁定方式j(luò)axb2和aegis,看了半天源碼總算調(diào)通了。又忍不住批一下他的文檔,給的都是半調(diào)子的例子,希望開發(fā)小組能盡快完善?。?/p>

先放一個HelloWold的aegis的配置:
一、server 端:
1. HelloWorld.java

代碼
  1. package demo.spring;   
  2.   
  3. import javax.jws.WebService;   
  4.   
  5. @WebService  
  6. public interface HelloWorld {   
  7.     String sayHi(String text);   
  8. }   

 

2.HelloWorldImpl.java

代碼
  1. package demo.spring;   
  2.   
  3. import javax.jws.WebService;   
  4.   
  5. @WebService(endpointInterface = "demo.spring.HelloWorld")   
  6. public class HelloWorldImpl implements HelloWorld {   
  7.   
  8.     public String sayHi(String text) {   
  9.         return "Hello " + text;   
  10.     }   
  11. }   

 

3.beans.xml

代碼
  1. <beans xmlns="http://www./schema/beans"  
  2.     xmlns:xsi="http://www./2001/XMLSchema-instance"  
  3.     xmlns:jaxws="http://cxf./jaxws"  
  4.     xsi:schemaLocation="   
  5. http://www./schema/beans http://www./schema/beans/spring-beans.xsd   
  6. http://cxf./jaxws http://cxf./schemas/jaxws.xsd">  
  7.   
  8.     <import resource="classpath:META-INF/cxf/cxf.xml" />  
  9.     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />  
  10.     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />  
  11.   
  12.     <bean id="jaxWsServiceFactoryBean"  
  13.         class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">  
  14.         <property name="wrapped" value="true" />  
  15.         <property name="dataBinding" ref="aegisBean" />  
  16.     </bean>  
  17.   
  18.     <bean id="aegisBean"  
  19.         class="org.apache.cxf.aegis.databinding.AegisDatabinding" />  
  20.   
  21.     <jaxws:endpoint id="CollectiveServices"  
  22.         implementor="demo.spring.HelloWorldImpl" address="/HelloWorld">  
  23.         <jaxws:serviceFactory>  
  24.             <ref bean="jaxWsServiceFactoryBean"/>  
  25.         </jaxws:serviceFactory>  
  26.     </jaxws:endpoint>  
  27. </beans>  

 

4.web.xml

代碼
  1. <web-app version="2.4" xmlns="http://java./xml/ns/j2ee"  
  2.     xmlns:xsi="http://www./2001/XMLSchema-instance"  
  3.     xsi:schemaLocation="http://java./xml/ns/j2ee http://java./xml/ns/j2ee/web-app_2_4.xsd">  
  4.   
  5.     <context-param>  
  6.         <param-name>contextConfigLocation</param-name>  
  7.         <param-value>WEB-INF/beans.xml</param-value>  
  8.     </context-param>  
  9.   
  10.     <listener>  
  11.         <listener-class>  
  12.             org.springframework.web.context.ContextLoaderListener   
  13.         </listener-class>  
  14.     </listener>  
  15.   
  16.     <servlet>  
  17.         <servlet-name>CXFServlet</servlet-name>  
  18.         <servlet-class>  
  19.             org.apache.cxf.transport.servlet.CXFServlet   
  20.         </servlet-class>  
  21.         <load-on-startup>1</load-on-startup>  
  22.     </servlet>  
  23.   
  24.     <servlet-mapping>  
  25.         <servlet-name>CXFServlet</servlet-name>  
  26.         <url-pattern>/ws/*</url-pattern>  
  27.     </servlet-mapping>  
  28.   
  29. </web-app>  

 

二、客戶端

1.ClientTest.java

代碼
  1. package demo.spring.client;   
  2.   
  3. import static org.junit.Assert.assertEquals;   
  4.   
  5. import org.apache.cxf.aegis.databinding.AegisDatabinding;   
  6. import org.apache.cxf.frontend.ClientProxyFactoryBean;   
  7. import org.junit.AfterClass;   
  8. import org.junit.BeforeClass;   
  9. import org.junit.Test;   
  10. import org.springframework.context.support.ClassPathXmlApplicationContext;   
  11.   
  12. import demo.spring.HelloWorld;   
  13.   
  14. public final class ClientTest {   
  15.   
  16.     private static ClassPathXmlApplicationContext context;   
  17.   
  18.     @BeforeClass  
  19.     public static void beforeClass() {   
  20.         context = new ClassPathXmlApplicationContext(   
  21.                 new String[] { "demo/spring/client/client-beans.xml" });   
  22.     }   
  23.   
  24.     @AfterClass  
  25.     public static void afterClass() {   
  26.         context = null;   
  27.     }   
  28.   
  29.     @Test  
  30.     public void testSayHiWithSpringConfig() throws Exception {   
  31.   
  32.         HelloWorld client = (HelloWorld) context.getBean("client");   
  33.   
  34.         String response = client.sayHi("Joe");   
  35.         assertEquals("Hello Joe", response);   
  36.     }   
  37.        
  38.     /**  
  39.      * 這個官方有例子(http://cwiki./CXF20DOC/aegis-databinding.html)  
  40.      *   
  41.      * @throws Exception  
  42.      */  
  43.     @Test  
  44.     public void testSayHiByCode() throws Exception {   
  45.   
  46.          ClientProxyFactoryBean factory = new ClientProxyFactoryBean();   
  47.          factory.setServiceClass(HelloWorld.class);   
  48.          factory.setAddress("http://localhost:8080/testCxf/ws/HelloWorld");   
  49.          factory.getServiceFactory().setDataBinding(new AegisDatabinding());   
  50.          HelloWorld client = (HelloWorld) factory.create();   
  51.   
  52.          assertEquals("Hello Joe", client.sayHi("Joe"));   
  53.     }      
  54. }   
  55.   

 

2.client_beans.xml(testSayHiWithSpringConfig()中需要使用的配置文件)

代碼
  1. <beans xmlns="http://www./schema/beans"  
  2.     xmlns:xsi="http://www./2001/XMLSchema-instance"  
  3.     xmlns:jaxws="http://cxf./jaxws"  
  4.     xsi:schemaLocation="   
  5. http://www./schema/beans http://www./schema/beans/spring-beans-2.0.xsd   
  6. http://cxf./jaxws http://cxf./schema/jaxws.xsd">  
  7.   
  8.        
  9.     <bean id="aegisBean"  
  10.         class="org.apache.cxf.aegis.databinding.AegisDatabinding" />  
  11.            
  12.     <bean id="serviceFactoryBean" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">  
  13.         <property name="dataBinding" ref="aegisBean" />  
  14.     </bean>  
  15.   
  16.     <bean id="client" class="demo.spring.HelloWorld"  
  17.         factory-bean="clientFactory" factory-method="create" />  
  18.   
  19.     <bean id="clientFactory"  
  20.         class="org.apache.cxf.frontend.ClientProxyFactoryBean">  
  21.         <property name="serviceFactory" ref="serviceFactoryBean" />  
  22.         <property name="serviceClass"  
  23.             value="demo.spring.HelloWorld" />  
  24.         <property name="address"  
  25.             value="http://localhost:8080/testCxf/ws/HelloWorld" />  
  26.     </bean>  
  27.   
  28. </beans>  

 

 


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多