少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

          CXFspring集成

          1 新建web project ,并加入apache-cxf-2.0.7/lib所有包,編寫要發布的web service 接口和實現.這一步,與前面一樣。

          import javax.jws.WebService;

          @WebService 

          public interface HelloWorld {  

               public String sayHello(String text);  

          }

          import javax.jws.WebService;  

          @WebService(endpointInterface="test.HelloWorld")  

          public class HelloWorldImpl implements HelloWorld {  

                public String sayHello(String text) {  

                            return "Hello" + text ;  

              }  

            } 

          @WebService 注解表示是要發布的web 服務

          2. spring-cxf.xml配置發布的web service 

          <?xml version="1.0" encoding="UTF-8"?>

          <beans xmlns="http://www.springframework.org/schema/beans"

              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

              xmlns:jaxws="http://cxf.apache.org/jaxws"

              xsi:schemaLocation="

          http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

          http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

              <import resource="classpath:META-INF/cxf/cxf.xml" /> 

              <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> 

              <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> 

           

              <bean id="hello" class="test.HelloWorldImpl" /> 

              <jaxws:endpoint id="helloWorld" implementor="#hello" 

                  address="/HelloWorld" /> 

            </beans>

          注意:<jaxws:endpoint id="helloWorld" implementor="#hello" 

                  address="/HelloWorld" /> 

          id:指在spring配置的beanID.

          Implementor:指明具體的實現類.

          Address:指明這個web service的相對地址,

          3.  配置web.xml文件:

          <?xml version="1.0" encoding="UTF-8"?> 

          <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 

              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

              xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   

              http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

              <context-param> 

                  <param-name>contextConfigLocation</param-name>  

                  <param-value>classpath:spring-cxf.xml</param-value> 

              </context-param> 

           

              <listener> 

                  <listener-class> 

                   org.springframework.web.context.ContextLoaderListener 

                  </listener-class> 

              </listener> 

                 

              <servlet> 

                  <servlet-name>CXFServlet</servlet-name> 

                  <servlet-class> 

                      org.apache.cxf.transport.servlet.CXFServlet  

                  </servlet-class> 

                  <load-on-startup>1</load-on-startup> 

              </servlet> 

           

              <servlet-mapping> 

                  <servlet-name>CXFServlet</servlet-name> 

                  <url-pattern>/*</url-pattern> 

              </servlet-mapping> 

          </web-app> 

          4部署到tomcat服務器,輸入:http://localhost:8080/<web-app-name>/ HelloWorld?wsdl,將顯示這個web servicewsdl.

          注意:如果web.xml配置<servlet-name>CXFServlet</servlet-name> 

                  <url-pattern>/ws/*</url-pattern> 

          則訪問地址為:http://localhost:8080/<web-app-name>/ws/ HelloWorld?wsdl

          5. 下面就開始創建一個客戶端程序,訪問這個web service, 同樣新建java project ,并加入apache-cxf-2.0.7/lib所有包. 創建與具體webservice技術無關的業務接口HelloWorld.java

          public interface HelloWorld {  

               public String sayHello(String text);  

          }

          6.配置spring-client.xml

          <beans xmlns="http://www.springframework.org/schema/beans"

              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

              xmlns:jaxws="http://cxf.apache.org/jaxws"

              xsi:schemaLocation="

          http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

          http://cxf.apache.org/jaxws http://cxf.apache.org/schema/jaxws.xsd">

           

              <bean id="client" class="test.HelloWorld"

                factory-bean="clientFactory" factory-method="create"/>

             

              <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">

                <property name="serviceClass" value="test.HelloWorld"/>

                <property name="address" value="http://localhost:9000/helloWorld"/>

          <!-- 這個地方的地址一定要注意,正確的-->

              </bean>

               

          </beans>

          7.測試:

          import org.springframework.context.ApplicationContext;

          import org.springframework.context.support.ClassPathXmlApplicationContext;

           

          import test.HelloWorld;

           

          public class Test {  

               

              public static void main(String[] args) {  

           

                  ApplicationContext ctx = new ClassPathXmlApplicationContext(  

                          "spring-client.xml");  

                  HelloWorld client = (HelloWorld) ctx.getBean("client");  

                  String result = client.sayHello("你好!");  

                  System.out.println(result);  

              }  

          } 

          8.參考資料

          http://java.dzone.com/articles/web-services-with-mule-cxf-and

          http://www.ibm.com/developerworks/webservices/library/ws-pojo-springcxf/index.html?ca=drs-http://wheelersoftware.com/articles/spring-cxf-web-services-4.html

           



          http://blog.csdn.net/pengchua/article/details/2740572
          posted on 2012-08-21 14:20 abin 閱讀(1003) 評論(0)  編輯  收藏 所屬分類: cxf

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 吉安县| 徐水县| 体育| 汨罗市| 绥棱县| 棋牌| 楚雄市| 东兰县| 叶城县| 壶关县| 荣成市| 天柱县| 丹凤县| 历史| 抚宁县| 荃湾区| 麻栗坡县| 西乌珠穆沁旗| 措勤县| 桃江县| 惠安县| 嘉善县| 东乌珠穆沁旗| 梨树县| 博乐市| 卫辉市| 逊克县| 龙里县| 龙游县| 惠水县| 蓝山县| 陇西县| 新安县| 潞西市| 兰西县| 南乐县| 渝北区| 青海省| 家居| 盱眙县| 洪泽县|