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

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

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

開(kāi)通VIP
SCA中Web Service的發(fā)布及調用分析

SCA中Web Service的發(fā)布及調用分析

SCA規范中提供了Web Service Binding,可以把服務(wù)對外暴露為Web Service,同時(shí)也可以消費外部提供的Web Service服務(wù),這一功能在EOS中是如何實(shí)現的呢,下面分兩部分進(jìn)行詳細的說(shuō)明(在EOS當中,Web Service容器采用axis2來(lái)完成)。

 

一、對外暴露為Web Service

 把服務(wù)對外暴露為Web Service,通過(guò)在Service上添加binding.ws節點(diǎn)來(lái)實(shí)現。在服務(wù)端解析構件的服務(wù)時(shí),解析器發(fā)現有Web Service Binding,則其處理過(guò)程如下:

1、根據服務(wù)的接口類(lèi)型生成axis2對象AxisService,在其中分為兩種情況

      (a)    接口類(lèi)型為WSDL定義的接口,則會(huì )利用其對應的WSDL文件對應的Definition對象生成,在此主要用到了axis2提供的WSDLToAxisServiceBuilder.populateService()方法來(lái)完成。

      (b)    接口類(lèi)型采用Java接口進(jìn)行描述,則會(huì )利用接口提供的Java類(lèi)生成,在此主要通過(guò)增加Parameter參數來(lái)完成,代碼樣例如下:

          AxisService axisService = new AxisService();

          Parameter classParam = new Parameter(Constants.SERVICE_CLASS, "interfaceName");

          axisService.addParameter(classParam);

2、接管Web Service允許調用的操作

      (a)    針對AxisService中定義的所有操作AxisOperation,定義其接管的業(yè)務(wù)方法處理,這通過(guò)設置AxisOperation的MessageReceiver來(lái)完成。

      (b)    擴展axis2中的抽象類(lèi)AbstractInMessageReceiver,實(shí)現抽象方法invokeBusinessLogic來(lái)完成業(yè)務(wù)操作的調用。

3、把生成的AxisService對象加入到axis2的配置上下文中

      (a)    根據配置文件axis2.xml生成AxisConfiguration對象

      (b)    利用生成的AxisConfiguration對象,建立配置上下文ConfigurationContext

      (c)    AxisConfiguration對象中添加生成的AxisService

4、建立Axis2ServiceServlet,監聽(tīng)請求

      (a) 新建對象Axis2ServiceServlet servlet = new Axis2ServiceServlet();

      (b) 利用上下文對Servlet初始化servlet.init(configContext);

      (c) 設置上下文的URL,也就是要監聽(tīng)的URL。configContext.setContextRoot(servletURI);

    經(jīng)過(guò)以上步驟,服務(wù)端針對每個(gè)URL都生成了一個(gè)AxisServlet監聽(tīng)客戶(hù)的請求,每個(gè)請求的參數都以OMelement類(lèi)型進(jìn)行了封裝。

服務(wù)調用的序列圖如下:

二、引用外部的Web Service

在構件中可以通過(guò)引用調用外部的服務(wù),如要引用外部的Web Service,在引用(reference)節點(diǎn)上添加binding.ws來(lái)實(shí)現,通過(guò)屬性wsdlElement指定引用外部Web Service的address。其處理過(guò)程如下:

1、 針對每個(gè)reference調用,生成一個(gè)axisClient,

      (a)    根據wsdlElement屬性值,找到對應的WSDL,生成AxisService(步驟同上1(a))。

      (b)    生成axis的配置上下文(步驟同上(3))。

      (c)    生成Axis調用客戶(hù)端ServiceClient client = ServiceClient(configContext, axisService);

2、 調用時(shí),解析傳入的Message,發(fā)送請求

      (a)  根據要調用的操作,生成OperationClient,方式為ServiceClient.createClient(wsdlOperationName)

      (b) 解析傳入的OMelement Message,生成SOAPEnvelope。把Message中的值添加到SOAPEnvelope的Body當中,進(jìn)行數據傳遞。

      (c)生成傳遞信息上下文MessageContext

             (i)  生成MessageContext,并設置其信封,MessageContext.setEnvelope(SOAPEnvelope);。

            (ii)  設置調用服務(wù)器的Endpoint

                  MessageContext. .setTo(new EndpointReference("address"));

            (iii)  把生成的信息上下文MessageContext添加到OperationClient當中

                  operationClient.addMessageContext(MessageContext);

      (d)發(fā)起請求

            operationClient.execute(true);

3、 返回調用結果,從返回的SOAP信息中取得結果值

            MessageContext responseMC = operationClient.getMessageContext("In");

            OMElement response = responseMC.getEnvelope().getBody().getFirstElement();

經(jīng)過(guò)上述步驟,就完成了一個(gè)完整的Web Service客戶(hù)端的調用,其序列圖如下: 

4月28日 9:54:39
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Axis2 WebService(配置、發(fā)布、調用) | Java |Life吧
用eclipse開(kāi)發(fā)WebService(webservice應用之二)- 大眼睛老虎 - 新浪BLOG
J2EE Web服務(wù)開(kāi)發(fā)系列之六: 使用Handler來(lái)增強Web服務(wù)的功能
利用AXIS開(kāi)發(fā)Webservice(二) —— WSDD的一些高級特性
WebService大講堂之Axis2(6):跨服務(wù)會(huì )話(huà)(Session)管理
Java SE 6 Web Service 之旅 - [Matrix - 與 Java 共...
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

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