日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

带有Spring和Maven教程的JAX–WS

發(fā)布時間:2023/12/3 javascript 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 带有Spring和Maven教程的JAX–WS 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Spring框架通過JAX-WS提供對Web服務(wù)的遠(yuǎn)程支持,實際上,如Spring 參考文檔中所述 ,有三種將Spring POJO服務(wù)公開為JAX-WS Web服務(wù)的方式:

  • 公開基于Servlet的Web服務(wù)(適用于Java EE 5環(huán)境)
  • 導(dǎo)出獨立的Web服務(wù)(適用于使用Sun的JDK 1.6內(nèi)置JAX–WS提供程序的情況)
  • 使用JAX-WS RI的Spring支持導(dǎo)出Web服務(wù)(類似于獨立方法,但是這次是在Servlet環(huán)境中。適用于非Java EE環(huán)境,例如Tomcat ,將JAX-WS RI嵌入為Web應(yīng)用程序的一部分)
  • 選擇上述三種方法之一主要取決于您的執(zhí)行環(huán)境。 話雖如此,我們將向您展示如何使用上述所有方法來設(shè)置和公開一個簡單的Spring服務(wù)。

    我們首選的開發(fā)環(huán)境是Eclipse ,因此,必須先安裝具有Maven支持的Eclipse 。 用于Eclipse的Maven插件的安裝不在本教程的討論范圍內(nèi),因此將不予討論。 但是,您將需要以下組件:

  • 從這里 蝕
  • 從這里開始 , Eclipse的 Maven插件
  • 在本教程中,我們將使用Eclipse Galileo,“ m2eclipse” Maven Integration for Eclipse插件版本0.10.0和Spring版本3.0.1。

    讓我們開始,

  • 創(chuàng)建一個新的Maven項目,轉(zhuǎn)到File? 項目? Maven? Maven項目
  • 在向?qū)У摹斑x擇項目名稱和位置”頁面中,確保未選中 “創(chuàng)建簡單項目(跳過原型選擇)”選項,單擊“下一步”以繼續(xù)使用默認(rèn)值
  • 在向?qū)У摹斑x擇原型”頁面中,在“目錄”下拉列表中選擇“ Nexus Indexer”,并在刷新原型選擇區(qū)域后,從“ org.codehaus.mojo”中選擇“ webapp-javaee6”原型。原型”。 您可以使用“過濾器”文本框來縮小搜索結(jié)果范圍。 點擊“下一步”繼續(xù)
  • 在向?qū)У摹拜斎牍ぜ蘒D”頁面中,您可以定義項目的名稱和主程序包。 我們將“ Group Id”變量設(shè)置為“ com.javacodegeeks”,并將“ Artifact Id”變量設(shè)置為“ jaxwsspring”。 前面提到的選擇組成了主項目包“ com.javacodegeeks.jaxwsspring”和項目名“ jaxwsspring”。 點擊“完成”退出向?qū)Р?chuàng)建您的項目
  • 讓我們回顧一下有關(guān)Maven Web項目結(jié)構(gòu)的一些事情

  • / src / main / java文件夾包含應(yīng)用程序動態(tài)內(nèi)容的源文件
  • / src / test / java文件夾包含用于單元測試的所有源文件
  • / src / main / webapp文件夾包含用于創(chuàng)建有效的Web應(yīng)用程序的基本文件,例如“ web.xml”
  • / target文件夾包含已編譯和打包的可交付成果
  • “ pom.xml”是項目對象模型(POM)文件。 包含所有項目相關(guān)配置的單個文件。
  • 這里要注意的一件事是,我們選擇使用兼容Java EE6的 Maven項目原型。 我們的選擇是有目的的,以便易于演示上述所有可用方法。 不過,即使您使用其他環(huán)境(例如獨立的Servlet環(huán)境(例如Apache Tomcat)或Java EE 5兼容的應(yīng)用程序服務(wù)器(例如JBoss Application Server)),也可以按照本教程將Spring服務(wù)作為JAX-WS服務(wù)公開。

    為了在運行時正確使用Spring ,我們必須向Web應(yīng)用程序提供所有必需的庫。 打開“ pom.xml”的圖形編輯器并執(zhí)行以下更改:

  • 在POM編輯器的“概述”頁面上的“屬性”部分中找到并執(zhí)行以下更改:
    • 創(chuàng)建一個名稱為org.springframework.version且值為3.0.1.RELEASE的新屬性
    • 導(dǎo)航到POM編輯器的“ Dependencies”頁面,并創(chuàng)建以下依賴關(guān)系(您應(yīng)在該頁面的“ Dependency Details”部分的“ GroupId”,“ Artifact Id”和“ Version”字段中進行填充):
      • 組ID: org.springframework工件ID: spring-web版本: $ {org.springframework.version}

      如您所見, Maven以聲明方式管理庫依賴關(guān)系。 創(chuàng)建本地存儲庫(默認(rèn)情況下,位于{user_home} /。m2文件夾下),所有必需的庫都從公共存儲庫下載并放置在該庫中。 此外,庫內(nèi)的依賴關(guān)系會自動解決和處理。

      下一步是為Web應(yīng)用程序提供掛鉤,以便在啟動時加載Spring上下文。

      在/ src / main / webapp文件夾下創(chuàng)建一個“ WEB-INF /web.xml”文件,并添加以下內(nèi)容:

      <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><display-name>jaxwsspring</display-name><session-config><session-timeout>30</session-timeout></session-config><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list> </web-app>

      現(xiàn)在讓我們創(chuàng)建將驅(qū)動Spring容器的applicationContext.xml文件。 在/ src / main / webapp / WEB-INF目錄下創(chuàng)建文件。 下面是一個示例“ applicationContext.xml”:

      <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"><context:component-scan base-package="com.javacodegeeks.jaxwsspring" /></beans>

      這里要注意的事情:

    • 將context:component-scan元素的base-package屬性更改為項目的基本包,以便掃描Spring組件
    • 現(xiàn)在讓我們創(chuàng)建一個“問候” Spring服務(wù)。 在主程序包下創(chuàng)建一個名為“服務(wù)”的子程序包,并將“ GreetingService”類放在此處。 下面是一個示例“問候”服務(wù):

      package com.javacodegeeks.jaxwsspring.services;import org.springframework.stereotype.Service;@Service("greetingService") public class GreetingService {public String sayHello() {return "Hello from Greeting Service";}}

      JAX–WS需要使用專用的端點類。 如果需要導(dǎo)出現(xiàn)有服務(wù),則包裝器類是最簡單的JAX–WS兼容方法。 現(xiàn)在創(chuàng)建一個“問候”端點類。 在主程序包下創(chuàng)建一個名為“ endpoints”的子程序包,并將“ GreetingServiceEndpoint”類放在此處。 下面是一個示例“問候”端點類:

      package com.javacodegeeks.jaxwsspring.endpoints;import javax.jws.WebMethod; import javax.jws.WebService;import org.springframework.beans.factory.annotation.Autowired;import com.javacodegeeks.jaxwsspring.services.GreetingService;@WebService(serviceName="GreetingService") public class GreetingServiceEndpoint {@Autowiredprivate GreetingService greetingService;@WebMethodpublic String sayHello() {return greetingService.sayHello();}}

      如您所見,這是一個與JAX–WS兼容的“ greeting”服務(wù)實現(xiàn),僅委托給“ GreetingService”實現(xiàn)。 這是將在JAX-WS引擎中注冊的類。 對于Java EE 5服務(wù)器(基于Servlet的Web服務(wù)方法),Web服務(wù)引擎管理端點類實例的生命周期。 在其他兩種情況下,端點實例是作為Spring Bean本身定義和管理的,因此它們的生命周期將取決于Spring應(yīng)用程序上下文。

      Spring為JAX-WS Servlet端點實現(xiàn)提供了一個方便的基類-“ SpringBeanAutowiringSupport”。 要將我們的“ GreetingService”公開為基于Servlet的Web服務(wù),我們必須執(zhí)行以下操作:

    • 修改我們的“ GreetingServiceEndpoint”類以擴展Spring的“ SpringBeanAutowiringSupport”類。 這樣,將兌現(xiàn)@Autowired批注,Spring的IoC容器將能夠?qū)嶋H的“ greeting”服務(wù)實例注入到我們的終結(jié)點類中,以正確地委派調(diào)用。
    • 我們的“ GreetingServiceEndpoint”需要在與Spring上下文相同的Web應(yīng)用程序中運行,以允許訪問Spring的設(shè)施。 在Java EE 5環(huán)境中,默認(rèn)情況下就是這種情況,它使用JAX-WS Servlet端點部署的標(biāo)準(zhǔn)協(xié)定。
    • 端點是在服務(wù)器端JAX-WS實現(xiàn)中注冊的類。 對于Java EE 5服務(wù)器,可以簡單地將其定義為“ web.xml”中的Servlet ,服務(wù)器檢測到這是一個JAX–WS端點,并做出相應(yīng)的反應(yīng)。 Servlet名稱通常需要與指定的Web服務(wù)服務(wù)名稱匹配。
    • 請牢記以上幾點,如下所示更改端點類:

      package com.javacodegeeks.jaxwsspring.endpoints;import javax.jws.WebMethod; import javax.jws.WebService;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.context.support.SpringBeanAutowiringSupport;import com.javacodegeeks.jaxwsspring.services.GreetingService;@WebService(serviceName="GreetingService") public class GreetingServiceEndpoint extends SpringBeanAutowiringSupport {@Autowiredprivate GreetingService greetingService;@WebMethodpublic String sayHello() {return greetingService.sayHello();}}

      最后,將以下Servlet聲明添加到“ web.xml”中:

      <servlet> <servlet-name>GreetingService</servlet-name> <servlet-class> com.javacodegeeks.jaxwsspring.endpoints.GreetingServiceEndpoint</servlet-class> </servlet> <servlet-mapping> <servlet-name>GreetingService</servlet-name> <url-pattern>/GreetingService</url-pattern> </servlet-mapping>

      要構(gòu)建應(yīng)用程序,請右鍵單擊您的項目? 運行為? Maven包

      要部署Web應(yīng)用程序,只需將“ .war”文件從“ target”目錄復(fù)制到Java EE 5服務(wù)器Web應(yīng)用程序部署文件夾。 在本教程中,我們將Web應(yīng)用程序部署到JBoss 5.1.0 Application Server。

      要啟動該應(yīng)用程序,請將瀏覽器指向以下地址

      http:// localhost:8080 / jaxwsspring /

      如果一切順利,您應(yīng)該會看到顯示以下內(nèi)容的主網(wǎng)頁:

      “你好,世界!”

      我們的網(wǎng)絡(luò)服務(wù)地址應(yīng)位于:

      http:// localhost:8080 / jaxwsspring / GreetingService

      如果將瀏覽器指向以下位置,則可以查看我們的Web服務(wù)WSDL:

      http:// localhost:8080 / jaxwsspring / GreetingService?wsdl

      結(jié)果應(yīng)如下所示:

      <definitions name="GreetingService" targetNamespace="http://endpoints.jaxwsspring.javacodegeeks.com/"><types><xs:schema targetNamespace="http://endpoints.jaxwsspring.javacodegeeks.com/" version="1.0"><xs:element name="sayHello" type="tns:sayHello"/><xs:element name="sayHelloResponse" type="tns:sayHelloResponse"/><xs:complexType name="sayHello"><xs:sequence/></xs:complexType><xs:complexType name="sayHelloResponse"><xs:sequence><xs:element minOccurs="0" name="return" type="xs:string"/></xs:sequence></xs:complexType></xs:schema></types><message name="GreetingServiceEndpoint_sayHello"><part element="tns:sayHello" name="sayHello"/></message><message name="GreetingServiceEndpoint_sayHelloResponse"><part element="tns:sayHelloResponse" name="sayHelloResponse"/></message><portType name="GreetingServiceEndpoint"><operation name="sayHello" parameterOrder="sayHello"><input message="tns:GreetingServiceEndpoint_sayHello"/><output message="tns:GreetingServiceEndpoint_sayHelloResponse"/></operation></portType><binding name="GreetingServiceEndpointBinding" type="tns:GreetingServiceEndpoint"><soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/><operation name="sayHello"><soap:operation soapAction=""/><input><soap:body use="literal"/></input><output><soap:body use="literal"/></output></operation></binding><service name="GreetingService"><port binding="tns:GreetingServiceEndpointBinding" name="GreetingServiceEndpointPort"><soap:address location="http://127.0.0.1:8080/jaxwsspring/GreetingService"/></port></service> </definitions>

      現(xiàn)在我們有了Web服務(wù)定義,我們可以使用我們最喜歡的SOAP客戶端(生成或?qū)崿F(xiàn)一個)來調(diào)用“問候” Web服務(wù)的操作。 訪問Web服務(wù)不在本教程的討論范圍內(nèi),因此我們將不再對其進行討論。 不過,我們將提供一個示例請求–使用我們首選的Web服務(wù)測試工具soapUI調(diào)用“ GreetingService”的“ sayHello”操作時的響應(yīng)對話框

      soapUI工具發(fā)布的SOAP請求:

      <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:end="http://endpoints.jaxwsspring.javacodegeeks.com/"><soapenv:Header/><soapenv:Body><end:sayHello/></soapenv:Body> </soapenv:Envelope>

      從“ greeting” Web服務(wù)接收到的相關(guān)SOAP響應(yīng):

      <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><ns2:sayHelloResponse xmlns:ns2="http://endpoints.jaxwsspring.javacodegeeks.com/"><return>Hello from Greeting Service</return></ns2:sayHelloResponse></env:Body> </env:Envelope>

      如上所述,Sun的JDK 1.6附帶的內(nèi)置JAX-WS提供程序也支持使用JDK 1.6附帶的內(nèi)置HTTP服務(wù)器公開Web服務(wù)。 Spring的“ SimpleJaxWsServiceExporter”在Spring應(yīng)用程序上下文中檢測所有帶@WebService注釋的bean,并通過默認(rèn)的JAX–WS服務(wù)器(JDK 1.6 HTTP服務(wù)器)將其導(dǎo)出。

      在這種情況下,終結(jié)點實例被定義和管理為Spring bean本身。 它們將在JAX-WS引擎中注冊,但是它們的生命周期將取決于Spring應(yīng)用程序上下文。 這意味著可以將Spring功能(例如顯式依賴項注入)應(yīng)用于終結(jié)點實例。 當(dāng)然,通過@Autowired注解驅(qū)動的注入也將起作用。

      要利用這種方法,我們要做的就是通過使用@Service注釋對端點類聲明為Spring bean。 另外,我們必須在應(yīng)用程序上下文文件中添加“ SimpleJaxWsServiceExporter” bean聲明,如下所示:

      package com.javacodegeeks.jaxwsspring.endpoints;import javax.jws.WebMethod; import javax.jws.WebService;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import com.javacodegeeks.jaxwsspring.services.GreetingService;@Service("greetingServiceEndpoint") @WebService(serviceName="GreetingService") public class GreetingServiceEndpoint {@Autowiredprivate GreetingService greetingService;@WebMethodpublic String sayHello() {return greetingService.sayHello();}}

      這里要注意的事情:

    • GreetingServiceEndpoint可以從Spring的“ SpringBeanAutowiringSupport”派生而來,但不必這樣做,因為該端點是完全由Spring管理的bean
    • <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd"><context:component-scan base-package="com.javacodegeeks.jaxwsspring" /><bean class="org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter"><property name="baseAddress" value="http://localhost:9999/" /></bean></beans>

      這里要注意的事情:

    • 將context:component-scan元素的base-package屬性更改為項目的基本包,以便掃描Spring組件
    • 您可以更改“ SimpleJaxWsServiceExporter”的“ baseAddress”屬性以適合您的需求。 “ baseAddress”是將導(dǎo)出所有檢測到的Web服務(wù)的地址。 默認(rèn)的“ baseAddress”是“ http:// localhost:8080 /”
    • 要構(gòu)建應(yīng)用程序,請右鍵單擊您的項目? 運行為? Maven包

      為了測試特定的方法,我們將將Web應(yīng)用程序部署到Apache Tomcat 6服務(wù)器。 不要忘記,我們將利用Sun的JDK 1.6構(gòu)建于JAX-WS的提供程序中。 即使我們在Servlet容器中進行操作。 在這種特定情況下,我們僅將Servlet容器用于啟動Spring應(yīng)用程序。 另外,您可以實現(xiàn)Main類并以編程方式啟動Spring應(yīng)用程序。

      要啟動該應(yīng)用程序,請將瀏覽器指向以下地址

      http:// localhost:8080 / jaxwsspring /

      如果一切順利,您應(yīng)該會看到顯示以下內(nèi)容的主網(wǎng)頁:

      “你好,世界!”

      我們的網(wǎng)絡(luò)服務(wù)地址應(yīng)位于:

      http:// localhost:9999 / GreetingService

      如果將瀏覽器指向以下位置,則可以查看我們的Web服務(wù)WSDL:

      http:// localhost:9999 / GreetingService?wsdl

      我們可以再次使用Web服務(wù)定義來生成和/或?qū)崿F(xiàn)SOAP客戶端,以調(diào)用“問候” Web服務(wù)的操作。

      作為GlassFish項目的一部分開發(fā)的Sun的JAX–WS RI,將Spring支持作為其JAX–WS Commons項目的一部分。 這允許將JAX-WS端點定義為Spring管理的Bean,類似于上一節(jié)中討論的獨立模式-但這次是在Servlet環(huán)境中。 請注意,這在Java EE 5環(huán)境中不可移植。 它主要用于Tomcat等非EE環(huán)境,并將JAX–WS RI嵌入為Web應(yīng)用程序的一部分。

      與導(dǎo)出基于Servlet的端點的標(biāo)準(zhǔn)樣式的不同之處在于,這里將由Spring管理端點實例本身的生命周期,并且在“ web.xml”中僅定義一個JAX-WS Servlet 。 使用標(biāo)準(zhǔn)的Java EE 5樣式(如上所示),每個服務(wù)端點都有一個Servlet定義,每個端點通常都委派給Spring Bean。

      最后一種方法是特定于Spring 2.0的 ,因此在更改任何代碼之前,我們應(yīng)該稍微更改項目配置。 特別是,我們必須刪除Spring 3庫的依賴關(guān)系,并向jaxws-spring庫添加一個新的依賴項。 打開“ pom.xml”的圖形編輯器并執(zhí)行以下更改:

    • 在POM編輯器的“概述”頁面上的“屬性”部分中找到,并刪除名稱為org.springframework.version的屬性(如果存在的話)–如果您從一開始就遵循此教程
    • 導(dǎo)航到POM編輯器的“ Dependencies”頁面,并創(chuàng)建以下依賴關(guān)系(您應(yīng)在該頁面的“ Dependency Details”部分的“ GroupId”,“ Artifact Id”和“ Version”字段中進行填充):
      • 組ID: org.jvnet.jax-ws-commons.spring工件ID: jaxws-spring版本: 1.8
    • 自撰寫本文以來, jaxws-spring庫的最新版本( 1.8 )的“ pom”文件中存在依賴項聲明缺陷。 特別是對于jaxb-impl2.1.2版本,不必要的依賴聲明會導(dǎo)致代碼中斷。 要解決此問題,必須為jaxb-impl庫的特定版本配置排除項。 為此,選擇新創(chuàng)建的依賴項,找到編輯器頁面的“排除項”部分,然后如下所示創(chuàng)建排除項:
      • 組ID: com.sun.xml.bind工件ID: jaxb-impl
    • 另外,為jaxb-impl庫的2.1.6版本創(chuàng)建另一個顯式依賴項,如下所示:
      • 組ID: com.sun.xml.bind工件ID: jaxb-impl版本: 2.1.6
    • 最后但并非最不重要的一點是,我們必須配置兩個新的存儲庫,以便Maven能夠下載項目依賴項。 導(dǎo)航到POM編輯器的“存儲庫”頁面,并創(chuàng)建以下存儲庫:
      • ID: download.java.net存儲庫1 URL: http//download.java.net/maven/1/布局: 舊版
      • ID: download.java.net存儲庫2 URL: http//download.java.net/maven/2/

      要使用這種方法,我們必須遵循以下步驟:

      找到“ web.xml”文件,并通過定義主要的JAX-WS Servlet以及我們要作為Web服務(wù)公開的服務(wù)所需的Servlet映射,來對其進行更改; 每個服務(wù)一個Servlet映射。 因此,對于我們的特定測試用例,我們應(yīng)該添加以下聲明:

      <servlet><servlet-name>jaxws-servlet</servlet-name><servlet-class>com.sun.xml.ws.transport.http.servlet.WSSpringServlet</servlet-class></servlet><servlet-mapping><servlet-name>jaxws-servlet</servlet-name><url-pattern>/GreetingService</url-pattern></servlet-mapping>

      更改“ applicationContext.xml”文件,如下所示:

      <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:ws="http://jax-ws.dev.java.net/spring/core"xmlns:wss="http://jax-ws.dev.java.net/spring/servlet"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsdhttp://jax-ws.dev.java.net/spring/corehttp://jax-ws.dev.java.net/spring/core.xsdhttp://jax-ws.dev.java.net/spring/servlethttp://jax-ws.dev.java.net/spring/servlet.xsd"><wss:binding url="/GreetingService"><wss:service><ws:service bean="#greetingService" /></wss:service></wss:binding><bean id="greetingService" class="com.javacodegeeks.jaxwsspring.services.GreetingService" /></beans>

      這里要注意的事情:

    • 這種方法是特定于Spring 2.0的 ,因此已創(chuàng)建了與Spring 2.0兼容的“ applicationContext.xml”文件。 請注意,由于@Service注釋在Spring 2.0中不可用,因此我們直接在“ applicationContext.xml”文件中聲明了“問候” Spring服務(wù)bean。
    • wss:binding定義定義將哪些服務(wù)公開到URL空間的哪一部分。 在上面的代碼中,它在/ GreetingService URL上部署了“ GreetingService”
    • ws:service定義實現(xiàn)一個Web服務(wù)實例。 最簡單的形式應(yīng)該配置bean屬性,以便將所有調(diào)用委托給指定的Spring bean。 如您所見,使用這種方法我們可以省略創(chuàng)建“端點”類來代理我們的Spring服務(wù)。
    • 最后,我們實現(xiàn)“ GreetingService”,如下所示:

      package com.javacodegeeks.jaxwsspring.services;import javax.jws.WebMethod; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import javax.jws.soap.SOAPBinding.Style; import javax.jws.soap.SOAPBinding.Use;@WebService(serviceName="GreetingService") @SOAPBinding(style = Style.RPC, use = Use.LITERAL) public class GreetingService {@WebMethodpublic String sayHello() {return "Hello from Greeting Service";}}

      這里要注意的事情:

    • 如果使用的是“ Style.DOCUMENT ”,則應(yīng)運行“ wsgen ”工具。 “ Style.RPC ”僅用于演示目的。
    • @Service批注在Spring 2.0中不可用,因此我們直接在“ applicationContext.xml”文件中聲明
    • 要構(gòu)建應(yīng)用程序,請右鍵單擊您的項目? 運行為? Maven包

      為了測試特定的方法,我們將將Web應(yīng)用程序部署到Apache Tomcat 6服務(wù)器。

      要啟動該應(yīng)用程序,請將瀏覽器指向以下地址

      http:// localhost:8080 / jaxwsspring /

      如果一切順利,您應(yīng)該會看到顯示以下內(nèi)容的主網(wǎng)頁:

      “你好,世界!”

      我們的網(wǎng)絡(luò)服務(wù)地址應(yīng)位于:

      http:// localhost:8080 / jaxwsspring / GreetingService

      如果將瀏覽器指向以下位置,則可以查看我們的Web服務(wù)WSDL:

      http:// localhost:8080 / jaxwsspring / GreetingService?wsdl

      我們可以再次使用Web服務(wù)定義來生成和/或?qū)崿F(xiàn)SOAP客戶端,以調(diào)用“問候” Web服務(wù)的操作。

      快樂編碼

      賈斯汀

      相關(guān)文章 :
      • GWT 2 Spring 3 JPA 2 Hibernate 3.5教程
      • GWT Spring和Hibernate進入數(shù)據(jù)網(wǎng)格世界
      • Spring 3 HornetQ 2.1集成教程
      • Spring3 RESTful Web服務(wù)
      • GWT 2 Spring 3 JPA 2 Hibernate 3.5教程– Eclipse和Maven 2展示

      翻譯自: https://www.javacodegeeks.com/2010/11/jaxws-with-spring-and-maven-tutorial.html

    總結(jié)

    以上是生活随笔為你收集整理的带有Spring和Maven教程的JAX–WS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。