成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Eclipse+Maven+Spring+CXF 構建webservice 服務

云計算
本文通過實際案例詳細介紹如何通過Eclipse+Maven+Spring+CXF來構建webservice 服務 。

一、 軟件準備

  • Eclipse 4.2.1
  • Maven 2.2.1
  • Spring 3.2.6
  • CXF 3.0.2

二、 步驟

1.        新建web工程,利用maven管理,如下:

  

工程名為test,完成以后,項目結構如下圖:

src/main/java 準備放 java 程序;

src/main/resources準備放各類資源文件。

2.  添加代碼

1)        定義服務接口

  1. ackage com.test;   
  2.     
  3. import javax.jws.WebService;   
  4.     
  5. @WebService   
  6. public interface HelloWorld {   
  7.     public String sayHello();   
  8. }   

因為只是一個webservice的實驗程序,所以非常簡單,只有一個服務方法: sayHello(),利用 @WebService注解來聲明這是一個webservice的接口。

2)        實現服務類

  1. package com.test;   
  2.     
  3. import javax.jws.WebService;   
  4.     
  5. @WebService   
  6. public class HelloWorldImpl implements HelloWorld{   
  7.       
  8.     public String sayHello(){   
  9.         return "Hello world!";   
  10.     }   
  11. }   

完成java代碼添加后的項目結構如下:

3.        添加Spring-CXF 配置

在項目 src/main/webapp/WEB-INF 目錄下新建XML定義:cxf-servlet.xml如下:

  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <!--   
  3.         Licensed to the Apache Software Foundation (ASF) under one   
  4.         or more contributor license agreements. See the NOTICE file   
  5.         distributed with this work for additional information   
  6.         regarding copyright ownership. The ASF licenses this file   
  7.         to you under the Apache License, Version 2.0 (the   
  8.         "License"); you may not use this file except in compliance   
  9.         with the License. You may obtain a copy of the License at   
  10.           
  11.         http://www.apache.org/licenses/LICENSE-2.0   
  12.           
  13.         Unless required by applicable law or agreed to in writing,   
  14.         software distributed under the License is distributed on an   
  15.         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY   
  16.         KIND, either express or implied. See the License for the   
  17.         specific language governing permissions and limitations   
  18.         under the License.   
  19. -->   
  20. <!-- START SNIPPET: beans -->   
  21. <beans xmlns="http://www.springframework.org/schema/beans"   
  22.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  23.     xmlns:jaxws="http://cxf.apache.org/jaxws"   
  24.     xsi:schemaLocation=" http://www.springframework.org/schema/beans   
  25.     http://www.springframework.org/schema/beans/spring-beans.xsd   
  26.     http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">   
  27.     <import resource="classpath:META-INF/cxf/cxf.xml"/>   
  28.     <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>   
  29.     <jaxws:endpoint id="helloWorld" implementor="com.test.HelloWorldImpl" address="/HelloWorld"/>   
  30. </beans>   
  31. <!-- END SNIPPET: beans -->   

該定義文件利用spring和CXF的功能,發布一個ID為helloWorld,實現類為com.test.HelloWorldImpl,發布 相對路徑為 /HelloWorld(對應絕對目錄為: http://host:port/{WebAPPName}/HelloWorld)的 webservice。 因為我們需要用到CXF來做webservice,右鍵點擊項目中的POM.XML,添加apache-cxf依賴。

4.  Web應用配置

修改 src/main/webapp/WEB-INF 目錄下的web.xml文件

  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <!--   
  3.   Licensed to the Apache Software Foundation (ASF) under one   
  4.   or more contributor license agreements. See the NOTICE file   
  5.   distributed with this work for additional information   
  6.   regarding copyright ownership. The ASF licenses this file   
  7.   to you under the Apache License, Version 2.0 (the   
  8.   "License"); you may not use this file except in compliance   
  9.   with the License. You may obtain a copy of the License at   
  10.     
  11.   http://www.apache.org/licenses/LICENSE-2.0   
  12.     
  13.   Unless required by applicable law or agreed to in writing,   
  14.   software distributed under the License is distributed on an   
  15.   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY   
  16.   KIND, either express or implied. See the License for the   
  17.   specific language governing permissions and limitations   
  18.   under the License.   
  19. -->   
  20. <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee           http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">   
  21.     <display-name>cxf</display-name>   
  22.     <servlet>   
  23.         <description>Apache CXF Endpoint</description>   
  24.         <display-name>cxf</display-name>   
  25.         <servlet-name>cxf</servlet-name>   
  26.         <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>   
  27.         <load-on-startup>1</load-on-startup>   
  28.     </servlet>   
  29.     <servlet-mapping>   
  30.         <servlet-name>cxf</servlet-name>   
  31.         <url-pattern>/*</url-pattern>   
  32.     </servlet-mapping>   
  33.     <session-config>   
  34.         <session-timeout>60</session-timeout>   
  35.     </session-config>   
  36. </web-app>   

該文件實際上是定義了處理webservice的CXF Servlet的映射關系。

 完成步驟3和4以后的工程目錄如下:

5.  編譯打包

利用maven(package -X)編譯打包成test.war

(在Eclipse上右擊工程名 Run as -> Maven build)

6.  將步驟5生成的test.war部署到tomcat服務器上

7.  訪問測試:

在瀏覽器上輸入:http://localhost:8080/test/,出現如下畫面就成功了:

點擊WSDL鏈接:

 

8.        編寫webservice client端代碼

1)        首先通過 Spring 與 CXF 的配置來定義 Web Service 的客戶端 Bean,在 src\main\resources 目錄下創建client-beans.xml 配置文件:

  1. <?xml version="1.0" encoding="UTF-8"?>   
  2. <!--   
  3.         Licensed to the Apache Software Foundation (ASF) under one   
  4.         or more contributor license agreements. See the NOTICE file   
  5.         distributed with this work for additional information   
  6.         regarding copyright ownership. The ASF licenses this file   
  7.         to you under the Apache License, Version 2.0 (the   
  8.         "License"); you may not use this file except in compliance   
  9.         with the License. You may obtain a copy of the License at   
  10.           
  11.         http://www.apache.org/licenses/LICENSE-2.0   
  12.           
  13.         Unless required by applicable law or agreed to in writing,   
  14.         software distributed under the License is distributed on an   
  15.         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY   
  16.         KIND, either express or implied. See the License for the   
  17.         specific language governing permissions and limitations   
  18.         under the License.   
  19. -->   
  20. <!-- START SNIPPET: beans -->   
  21. <beans xmlns="http://www.springframework.org/schema/beans"   
  22.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  23.     xmlns:jaxws="http://cxf.apache.org/jaxws"   
  24.     xsi:schemaLocation="   
  25.     http://www.springframework.org/schema/beans   
  26.     http://www.springframework.org/schema/beans/spring-beans.xsd   
  27.     http://cxf.apache.org/jaxws   
  28.      http://cxf.apache.org/schema/jaxws.xsd">   
  29.     <bean id="client" class="com.test.HelloWorld"   
  30.         factory-bean="clientFactory" factory-method="create"/>   
  31.     <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">   
  32.         <property name="serviceClass" value="com.test.HelloWorld"/>   
  33.         <property name="address" value="http://localhost:8080/test/HelloWorld"/>   
  34.     </bean>   
  35. </beans>   
  36. <!-- END SNIPPET: beans -->   

需要注意的是,該配置文件中的 address需要寫成發布服務的絕對路徑。

2) 編寫客戶端java代碼: HelloWorldClient.java

  1. package com.test;   
  2.     
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;   
  4.     
  5. public final class HelloWorldClient {   
  6.     
  7.     private HelloWorldClient() {   
  8.     }   
  9.     
  10.     public static void main(String args[]) throws Exception {   
  11.         // START SNIPPET: client   
  12.         ClassPathXmlApplicationContext context   
  13.             = new ClassPathXmlApplicationContext(new String[] {"client-beans.xml"});   
  14.     
  15.         HelloWorld client = (HelloWorld)context.getBean("client");   
  16.     
  17.         String response = client.sayHello();   
  18.         System.out.println("Response: " + response);   
  19.         System.exit(0);   
  20.         // END SNIPPET: client   
  21.     }   
  22. }   

注意,代碼中HelloWorldclient = (HelloWorld)context.getBean("client"); 的client需要與"client-beans.xml"中的 bean id一致才能找到這個服務。 

現在的項目結構如下:

3)連接測試

在eclipse中直接按HelloWorldClient運行 Run as -> Java Application: 

 輸出的Hello world! 即是我們發布的HelloWorld的方法 sayHello()的輸出!這說明從服務發布到客戶端連接都成功了。

原文出自:http://blog.csdn.net/hbsong75/article/details/41207585

責任編輯:Ophira 來源: hbsong75的專欄
相關推薦

2009-08-13 15:16:00

Eclipse建立We

2012-05-03 11:43:32

ApacheCXFRESTful

2009-06-18 10:19:00

Spring集成XFiWebService

2017-06-26 09:06:10

Spring Clou微服務架構

2012-05-03 11:30:04

ApacheCXFJava

2012-05-03 11:21:58

ApacheCXFJava

2017-09-04 16:15:44

服務網關架構

2022-10-10 08:00:00

微服務Spring Boo容器

2017-07-03 09:50:07

Spring Clou微服務架構

2012-05-15 13:40:44

JavaCXF.NET

2017-08-10 11:15:05

Spring Clou微服務架構

2017-08-09 15:50:47

Spring Clou微服務架構

2024-09-11 09:15:06

2009-07-14 13:14:13

2009-06-15 16:35:44

Spring IDEEclipse插件

2017-06-25 13:33:25

Spring Clou微服務架構

2017-07-04 17:35:46

微服務架構Spring Clou

2018-03-02 16:11:29

Spring Clou分布式服務跟蹤

2012-05-03 11:35:56

ApacheCXFJava

2022-03-18 09:00:00

開發Web服務應用程序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品麻豆 | 精品国产乱码久久久久久图片 | 天天干狠狠干 | 午夜一级黄色片 | 天天操狠狠操 | 精品无码三级在线观看视频 | 成人三级影院 | 三级黄色片在线播放 | 日韩高清不卡 | 91免费在线 | 成人h动漫精品一区二区器材 | 中文字幕在线第一页 | www.亚洲一区 | av一二三区 | 国产欧美日韩综合精品一 | 欧美日韩在线观看视频 | 二区三区视频 | 成人午夜视频在线观看 | 欧美日韩中文在线 | 国产不卡一区在线观看 | 韩日精品在线观看 | 欧美日韩高清 | 蜜桃视频在线观看免费视频网站www | 亚洲欧美日韩一区二区 | 国产精品久久久久久久三级 | 性一区 | 久久精品国产99国产精品 | 亚洲经典一区 | 国产成人99久久亚洲综合精品 | 日本一区二区三区免费观看 | 中文在线一区 | 天天躁日日躁狠狠的躁天龙影院 | 亚洲精品电影 | www.youjizz.com日韩 | 一区二区三区电影网 | 久在线观看| 亚洲成在线观看 | av一区二区三区四区 | av在线亚洲天堂 | 美美女高清毛片视频免费观看 | 在线欧美视频 |