欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
在Spring中使用XFire構建Web Service應用

概述

XFire是與Axis 2并列的新一代Web Service框架,通過(guò)提供簡(jiǎn)單的API支持Web Service各項標準協(xié)議,幫助你方便快速地開(kāi)發(fā)Web Service應用。XFixe內建在STAX的基礎上之上,STAX是基于流的XML解析引擎,這使得XFire擁有很高的性能。

相對Axis來(lái)說(shuō),目前它的人氣指數相當高,加上其提供了和String集成的支持,在目前的Web Service開(kāi)源社區擁有眾多的追隨者,XFire被多個(gè)開(kāi)源項目所使用。XFire為Spring提供了支持,這使得我們可以很容易在Spring中使用XFire構建Web Service應用。本文講述了如何使用XFire在Spring中開(kāi)發(fā)Web Service的具體過(guò)程。

XFire特性

XFire是Web Service框架的后起之秀,它從現有的框架中借鑒了許多優(yōu)秀的理念,力爭將Web Service的應用開(kāi)發(fā)難度降到最低。此外,還提供了各種綁定技術(shù)、支持多種傳輸協(xié)議,對Web Service體系中許多新的規范提供了支持。簡(jiǎn)單來(lái)說(shuō),它具有以下一些特性:

  • 支持重要的Web Service規范,如SOAP、WSDL、WS-I Basic Profile,、WS-Addressing、WS-Security等;
  • 高性能的SOAP 棧設計;
  • 可插拔的綁定,支持POJO、XMLBeans、JAXB1.1、JAXB2以及Castor;
  • 支持JSR 181規范,該規范通過(guò)JDK 5.0注解將POJO導出為Web Service;
  • 支持多種傳輸協(xié)議:HTTP、JMS、XMPP、In-JVM等,其中In-JVM允許我們在不啟動(dòng)Web應用器的情況下,象一般的程序一樣測試Web Service應用;
  • 易用的API,XFire API簡(jiǎn)潔明了,便于使用;
  • 支持Spring、Pico、Plexus、Loom等容器;
  • 支持JBI(Java Business Integration:Java 業(yè)務(wù)整合)規范,JBI是JSR 208的實(shí)現;
  • 能夠根據WSDL創(chuàng )建客戶(hù)端和服務(wù)器端的存根代碼;
  • 率先對JAX-WS提供了支持,JAX-WS是JAX-RPC的替代者。

XFire 體系及重要API

ServiceFactory

ServiceFactory是XFire的核心類(lèi),它可以將一個(gè)POJO生成為一個(gè)Web Service。讓我們通過(guò)一個(gè)最簡(jiǎn)單的例子了解ServiceFactory的用途,假設我們在一個(gè)POJO中定義了一個(gè)業(yè)務(wù),現在希望將其導出為Web Service,通過(guò)ServiceFactory可以輕而易舉地達到目的:

XFire xfire = XFireFactory.newInstance().getXFire();

ServiceFactory factory = new ObjectServiceFactory(xfire.getTransportManager(), null);

Service service = factory.create(YourService.class);

這樣我們就為YourService類(lèi)創(chuàng )建基于SOAP 1.1封裝的Web Service。Service的輸入輸出參數如果為簡(jiǎn)單類(lèi)型的對象(由String、int、long等基本類(lèi)型組成),無(wú)須進(jìn)行額外的映射設置,對于復雜類(lèi)型的輸入輸出Service,XFire將會(huì )自動(dòng)嘗試將其序列化(通過(guò)Aegis綁定)。緊接著(zhù),你就可以注冊這個(gè)Service。

xfire.getServiceRegistry().register(service);

XFire推薦通過(guò)一個(gè)接口開(kāi)放服務(wù),此時(shí),你可以指定一個(gè)具體的實(shí)現類(lèi):

service.setProperty(ObjectInvoker.SERVICE_IMPL_CLASS, YourServiceImpl.class);

Handler

一個(gè)Handler可以看成是XFire的一個(gè)加工套件,XFire通過(guò)它們定義SOAP發(fā)送和接收之前的各種加工處理邏輯。如Handler可以對SOAP體的內容進(jìn)行加工處理,或者SOAP頭進(jìn)行處理??梢院?jiǎn)單地通過(guò)擴展AbstractHandler定義一個(gè)自己的Handler類(lèi):

import org.codehaus.xfire.MessageContext;

import org.codehaus.xfire.handler.AbstractHandler;

public class YourHandler extends AbstractHandler

{

public void invoke(MessageContext context)

{

// Do Sth...

}

}

Handler可以注冊到Service或Transport(代表SOAP輸入輸出的的傳輸對象)中,在服務(wù)請求和響應管道里,Service和Transport注冊的Handler將執行額外的處理操作。你可以按如下方式注冊Handler:

Servic s = factory.create(YourService.class);

s.addInHandler(new YourHandler1());①添加一個(gè)Handler,對輸入SOAP進(jìn)行處理

s.addOutHandler(new YourHandler2());②添加一個(gè)Handler,對輸出SOAP進(jìn)行處理

s.addFaultHandler(new YourHandler3());③添加一個(gè)Handler,對錯誤SOAP進(jìn)行處理

下面的Handler對SOAP頭進(jìn)行處理,添加一些特定的信息:

import org.codehaus.xfire.MessageContext;

import org.codehaus.xfire.handler.AbstractHandler;

public class YourHandler extends AbstractHandler

{

public QName[] getUnderstoodHeaders()

{

return new QName[] { new QName("YourHeader", "urn:your:header:ns") };

}

}

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
XFire服務(wù)部署手冊
XFire 截取SOAP
XFire:輕松簡(jiǎn)單地開(kāi)發(fā)Web Services
MyEclipse下XFire開(kāi)發(fā)Webservice實(shí)例 - meteorWJ's Ho...
WebService開(kāi)源框架的比較--版本有點(diǎn)老
使用XFire+Spring構建Web Service(一)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久