精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

J2EE web service開發(四)soap報頭與處理

開發 后端
本文敘述了J2EE web service開發中的soap報頭與處理。SOAPHeaderElement 對象中的屬性決定了接收者怎樣處理消息,可以認為header屬性提供了擴展消息的方法,給出了像身份認證,支付,轉發消息這樣的相關的事情。

SOAPHeaderElement 對象中的屬性決定了接收者怎樣處理消息,可以認為header屬性提供了擴展消息的方法,給出了像身份認證,支付,轉發消息這樣的相關的事情。JAX-RPC客戶API(占位程序,動態代理,DII)均沒有提供對SOAP文件頭的支持,SAAJ API提供了支持。所有消息處理程序都必須實現javax.xml.rpc.handler.Handler接口,該接口有一系列的方法用以處理soap消息。javax.xml.rpc.handler.GenericHandler是一個缺省適配器類,創建我們自己的消息處理程序的時候從該類繼承覆寫我們自己感興趣的方法就可以了。但每一個handler必須實現 getHeader()方法跟 handleRequest()方法.具體實現:

服務類HandlerServic:

  1. package handler;   
  2.  
  3. public class HandlerService implements HandlerServiceInterface1 {   
  4.   public void testInOutHeader(String bodyMsg, String headerMsg)   
  5.    {   
  6.       System.out.print("testInHeader: " + bodyMsg + "," + headerMsg);   
  7.    }   
  8. }   

消息處理類:

  1. package handler;   
  2.  
  3. import javax.xml.rpc.handler.*;   
  4. import javax.xml.soap.*;   
  5. import javax.xml.namespace.QName;   
  6. import javax.xml.rpc.JAXRPCException;   
  7. import javax.xml.rpc.handler.soap.SOAPMessageContext;   
  8. import java.util.Iterator;   
  9.  
  10. public class CutomerHandler extends GenericHandler {   
  11.     protected QName[] headers = new QName[] {   
  12.                                 new QName("http://handler""headerMsg")   
  13.     };   
  14.     public QName[] getHeaders() {   
  15.         return headers;   
  16.     }// 返回handler要處理的文件頭元素名的素組.   
  17.  
  18.     // 處理接收到的soap消息.如果返回值為false時JAX-RPC會立即中斷對SOAP消息處理并將soap消息回傳。關于saaj api使用方法見j2ee web service開發(三)   
  19.     public boolean handleRequest(MessageContext msgContext) {   
  20.  
  21.         try {   
  22.             SOAPMessage soapMessage = ((SOAPMessageContext) msgContext).   
  23.                                       getMessage();   
  24.             SOAPHeader soapHeader = soapMessage.getSOAPHeader();   
  25.             Iterator it = soapHeader.extractAllHeaderElements();   
  26.             while (it.hasNext()) {   
  27.                 SOAPHeaderElement headerElement = (SOAPHeaderElement) it.next();   
  28.                 Name headerName = headerElement.getElementName();   
  29.                 System.out.println(" header name is: " +   
  30.                                    headerName.getQualifiedName());   
  31.                 System.out.println(" header value is: " +   
  32.                                    headerElement.getValue());   
  33.             }   
  34.             SOAPBody soapBody = soapMessage.getSOAPBody();   
  35.             Iterator bodyIterator = soapBody.getChildElements();   
  36.             while (bodyIterator.hasNext()) {   
  37.                 SOAPBodyElement soapBodyElement = (SOAPBodyElement)   
  38.                                                   bodyIterator.next();   
  39.                 System.out.println("soapBodyElement print: " +   
  40.                                    soapBodyElement.getNodeName());   
  41.             }   
  42.             SOAPBodyElement nextSoapBodyElement = (SOAPBodyElement) soapBody.   
  43.                                                   getChildElements().next();   
  44.             SOAPElement soapElement = (SOAPElement) nextSoapBodyElement.   
  45.                                       getChildElements().next();   
  46.             System.out.println("soapElement print: " + soapElement.getLocalName() +   
  47.                                "  " + soapElement.getValue());   
  48.         } catch (SOAPException e) {   
  49.             throw new JAXRPCException(e);   
  50.         }   
  51.         return true;   
  52.     }   
  53. // 返回soap應答消息,本例修改soap文件頭的值再返傳給客戶端.   
  54.     public boolean handleResponse(MessageContext msgContext) {   
  55.  
  56.         try {   
  57.             SOAPMessage soapMessage = ((SOAPMessageContext) msgContext).   
  58.                                       getMessage();   
  59.             SOAPHeader soapHeader = soapMessage.getSOAPHeader();   
  60.  
  61.             SOAPBody soapBody = soapMessage.getSOAPBody();   
  62.             SOAPBodyElement soapBodyElement = (SOAPBodyElement) soapBody.   
  63.                                               getChildElements().next();   
  64.             String rpcName = soapBodyElement.getElementName().getLocalName();   
  65.                 SOAPFactory soapFactory = SOAPFactory.newInstance();   
  66.                 Name headerName = soapFactory.createName("headerMsg""ns","http://handler");   
  67.                 SOAPHeaderElement she = soapHeader.addHeaderElement(headerName);   
  68.                 she.setValue("return header message");   
  69.         } catch (SOAPException e) {   
  70.             throw new JAXRPCException(e);   
  71.         }   
  72.         return true;   
  73.     }   
  74. }   

用于生成布署描述符的WSTOOLS工具的配置文件:

  1. < configuration xmlns="http://www.jboss.org/jbossws-tools"   
  2.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  3.    xsi:schemaLocation="http://www.jboss.org/jbossws-tools http://www.jboss.org/jbossws-tools/schema/jbossws-tool_1_0.xsd">   
  4.   < java-wsdl>   
  5.     < service name="TestService" style="rpc" endpoint="handler.HandlerServiceInterface1">   
  6.       < operation name="testInOutHeader">   
  7.         < parameter type="java.lang.String"/>   
  8.         < parameter type="java.lang.String"/>   
  9.       < /operation>   
  10.     < /service>   
  11.     < namespaces target-namespace="http://handler" type-namespace="http://handler"/>   
  12.     < mapping file="HandlerServiceInterface1.xml"/>   
  13.     < webservices servlet-link="HandlerServiceInterface1"/>   
  14.   < /java-wsdl>   
  15. < /configuration>   

關于wstools工具的使用見j2ee web service開發(一).

在生成的webservice描述符文件中手工加入以下代碼:

  1. < handler>   
  2.  < handler-name>CutomerHandler< /handler-name>   
  3.  < handler-class>handler.CutomerHandler< /handler-class>   
  4.  /handler>   

用以配置處理soap消息頭的類.

客戶端代碼:利用j2ee web serive開發(三)介紹的api不難寫出saaj客戶端代碼就不再重復勞動了。這里只介紹JBOss ws利用DII實現soap消息頭的處理,它擴展了標準jax-rpc api.

  1. package handler;   
  2. import javax.xml.namespace.QName;   
  3. import javax.xml.rpc.Call;   
  4. import javax.xml.rpc.ParameterMode;   
  5. import javax.xml.rpc.Service;   
  6. import org.jboss.ws.Constants;   
  7. import org.jboss.ws.jaxrpc.CallImpl;   
  8. import javax.xml.rpc.ServiceFactory;   
  9. import java.util.*;   
  10. public class HandlerClient {   
  11.     public HandlerClient() {   
  12.     }   
  13.     public static void main(String[] args) throws Exception{   
  14.         HandlerClient handlerclient = new HandlerClient();   
  15.         handlerclient.testUnboundInOutHeader();   
  16.     }   
  17.     public void testUnboundInOutHeader() throws Exception{   
  18.         Service service = ServiceFactory.newInstance().createService(new QName("TestService"));   
  19.         CallImpl call = (CallImpl)service.createCall();   
  20.         call.setOperationName(new QName("http://handler""testInOutHeader"));   
  21.         call.addParameter("String_1", Constants.TYPE_LITERAL_STRING, ParameterMode.IN);   
  22.         call.addParameter("String_2", Constants.TYPE_LITERAL_STRING, ParameterMode.IN);   
  23.         call.setTargetEndpointAddress("http://hechang:8082/customer-handler/services/HandlerServiceInterface1");   
  24.         QName xmlName = new QName("http://handler""headerMsg");   
  25.         // xmlName = new QName("http://otherns", "HeaderValue");   
  26.  
  27.         call.addUnboundHeader(xmlName, Constants.TYPE_LITERAL_STRING, String.class, ParameterMode.IN);   
  28.         call.setUnboundHeaderValue(xmlName, " IN header message");   
  29. // 設置消息頭 可以設定多組   
  30.         Object retObj = call.invoke(new Object[]{"Hello world!""IN header message"});   
  31.         String unboundRet = (String)call.getUnboundHeaderValue(xmlName);   
  32.        // 處理返回的消息頭的值   
  33.         System.out.println(" unboundReturn: "+unboundRet);   
  34. }   
  35. }  

以上,J2EE Web Service開發中的soap報頭與處理也完成了。

【編輯推薦】

  1. j2ee web service開發(三)SAAJ帶附件的soap消息
  2. j2ee web service開發(二)動態代理與動態調用
  3. j2ee web service開發(一) 映射數組復雜類型
  4. J2ee學習經驗和流程
  5. 快速開發EJB和J2EE Web Applic
責任編輯:book05 來源: csdn
相關推薦

2009-06-22 10:04:00

J2EE web se

2009-06-22 09:56:00

J2EE web se

2009-06-22 10:59:00

J2EE web se

2009-06-22 10:14:00

J2EE web se

2009-06-22 09:48:00

J2EE web se

2009-06-22 11:50:00

J2EE Web應用快速開發

2009-06-18 16:13:14

J2EE開發

2009-06-10 13:30:32

J2EE四層模型客戶層Web層

2009-06-23 16:48:26

J2EE常見問題J2EE平臺

2009-06-23 08:06:46

J2EE體系架構J2EE模型J2EE設計模式

2009-06-10 14:10:23

J2EE學習J2EE是什么

2009-06-11 17:06:11

J2EE歷史Java EE概述

2009-06-10 13:37:06

J2EE可伸縮性J2EE靈活性J2EE維護

2009-06-22 17:09:00

J2EE項目開發流程

2009-06-10 13:19:21

J2EE核心APIJ2EE核心組件

2009-06-22 17:05:41

Java EEJava企業應用

2009-06-23 08:12:48

J2EE調用存儲過程

2009-06-22 17:34:40

J2EE架構

2009-06-18 15:54:57

J2EE下使用JNDI

2009-06-22 16:21:02

J2EE線程
點贊
收藏

51CTO技術棧公眾號

亚洲一区二区三区777| 久久亚洲捆绑美女| 久久久91精品| 日本少妇一区二区三区| wwww亚洲| 久久视频一区二区| 成人美女av在线直播| 久久久精品视频在线| 亚州精品视频| 欧美美女一区二区三区| 国产av人人夜夜澡人人爽麻豆| 欧美少妇另类| 国产在线一区二区| 91精品国产乱码久久久久久蜜臀| 超碰97av在线| 九色丨蝌蚪丨成人| 欧美日韩激情一区二区三区| 日本中文字幕在线视频观看| 中文字幕日本在线| 99久久精品久久久久久清纯| 国产日韩精品在线播放| 国产九色在线播放九色| 国产精品日本一区二区三区在线 | 97se视频在线观看| 成人毛片18女人毛片| 99成人在线视频| 亚洲精品日韩在线| 美女日批在线观看| 免费视频成人| 欧美色videos| 黄色片免费在线观看视频| 你懂的视频在线| 福利电影一区二区三区| 国产日韩欧美中文| 一级一片免费看| 99热精品在线| 欧美丰满少妇xxxxx| 老司机深夜福利网站| 午夜精品成人av| 久久免费午夜影院| 成人做爰66片免费看网站| 一级片aaaa| 国产精品毛片久久| 亚洲人成网7777777国产| 无码人妻一区二区三区在线| 95精品视频| 欧美色图12p| 日韩一级免费在线观看| 精精国产xxx在线视频app| 一个色妞综合视频在线观看| 热这里只有精品| 免费在线看a| 国产精品欧美一区二区三区| 国产欧美在线播放| 免费无码国产精品| 欧美综合国产| 日产精品久久久一区二区福利| 国产网址在线观看| 亚洲国产激情| 97婷婷涩涩精品一区| 这里只有精品在线观看视频 | 欧美精品久久一区| 一本岛在线视频| jizz欧美| 欧美日韩午夜在线视频| 久热精品在线观看视频| 高清亚洲高清| 欧美一区二区三区四区高清| 下面一进一出好爽视频| 91蝌蚪精品视频| 欧美精品一区二区三区很污很色的| 国产一级二级av| 超碰cao国产精品一区二区| 欧美mv和日韩mv的网站| 毛茸茸free性熟hd| 日韩在线你懂的| 国产一区二区三区视频免费| 久久午夜精品视频| 99国产精品一区二区| 超薄丝袜一区二区| 久草视频手机在线观看| 亚洲黄网站黄| 国产精品电影观看| 一级黄色片免费看| 国产福利91精品| 好吊色欧美一区二区三区四区 | 欧美影院视频| 亚洲黄色有码视频| 男女爽爽爽视频| 91成人在线| 91精品一区二区三区在线观看| 国模大尺度视频| 久久久久观看| 在线日韩日本国产亚洲| 日韩a级片在线观看 | 欧美人与物videos| 久久久久久久伊人| 日韩国产精品久久| 99视频在线免费观看| 日韩资源在线| 亚洲视频一区二区在线| 成人一对一视频| 粉嫩av一区二区三区四区五区 | 天天操天天干天天综合网| 日韩中文字幕组| 亚洲精品一区在线| 亚洲丝袜av一区| 精品无码黑人又粗又大又长| 日韩在线观看一区二区| 高清av免费一区中文字幕| 裸体xxxx视频在线| 一区二区三区久久| 日日摸天天爽天天爽视频| 日本综合精品一区| 国产一区二区三区18| 久久久久无码精品国产| 免费高清在线一区| 麻豆蜜桃91| 日本美女一级片| 亚洲国产精品成人综合| 无码中文字幕色专区| 青青青国产精品| 亚洲老头老太hd| 国产一级aa大片毛片| 美女网站色91| 欧美一级二级三级九九九| 国产偷倩在线播放| 6080日韩午夜伦伦午夜伦| 国产精品扒开腿做爽爽| 亚洲人成久久| 成人av中文| v片在线观看| 精品污污网站免费看| 久久国产精品影院| 午夜久久美女| 亚洲精品免费网站| 在线免费看a| 欧美制服丝袜第一页| 强迫凌虐淫辱の牝奴在线观看| 欧美日本精品| 亚洲自拍偷拍区| 黄av在线播放| 欧美精品免费视频| 国产在线免费看| 中文字幕av亚洲精品一部二部| 国产精品都在这里| 欧美日本网站| 色婷婷精品久久二区二区蜜臂av| 国产xxxxxxxxx| 亚洲精品乱码| 国产原创精品| 欧美巨大丰满猛性社交| 亚洲国产精品网站| 日产精品久久久| 97久久精品人人爽人人爽蜜臀| 精品人妻人人做人人爽| 国产精品qvod| 亚洲一区二区黄| 欧美一区二区三区久久久| 91网站在线播放| 人妻精品无码一区二区三区| 色狼人综合干| 日本高清视频一区| 精品久久av| 在线观看视频欧美| 中文字幕黄色网址| 久久成人综合网| 福利网在线观看| 欧美视频二区欧美影视| 国产视频精品免费播放| 日韩一区二区视频在线| 国产亚洲欧美一区在线观看| 中文字幕欧美人妻精品一区| 日韩成人精品一区二区| 成人黄色免费在线观看| 日本欧美电影在线观看| 亚洲黄色在线看| 日本视频网站在线观看| 国产精品免费aⅴ片在线观看| 97超碰人人爽| 狠色狠色综合久久| 久久免费视频1| jizzyou欧美16| 欧美高清在线观看| 亚洲aaaaaaa| 欧美日韩国产综合一区二区| 国产精品三区在线观看| 99久久久国产精品免费蜜臀| aaaaaa亚洲| 久久精品影视| 精品不卡在线| 免费日韩成人| 午夜免费久久久久| 福利片在线观看| 日韩网站在线看片你懂的| 青青国产在线观看| 国产精品久久777777| 尤物av无码色av无码| 欧美日韩大片| 久久亚洲春色中文字幕| 天堂网在线资源| 精品视频一区三区九区| 久青草免费视频| 国产日韩精品一区二区浪潮av| 精品国产午夜福利在线观看| 久久久久中文| 亚洲中文字幕无码一区二区三区| 免费成人高清在线视频theav| 成人网欧美在线视频| 成人免费网站视频| 久久电影一区二区| 爱爱爱免费视频在线观看| 精品国产免费人成在线观看| 亚洲字幕av一区二区三区四区| 亚洲国产一区二区视频| 在线观看视频你懂得| 免费亚洲一区| 人妻互换免费中文字幕| 第一sis亚洲原创| 快播亚洲色图| 91在线一区| 成人h猎奇视频网站| 香蕉视频亚洲一级| 97国产精品免费视频| 成人福利在线观看视频| 中日韩美女免费视频网站在线观看| 成年人av网站| 亚洲午夜在线观看视频在线| 亚洲综合图片一区| 国产片一区二区| 亚州精品一二三区| 亚洲美女一区| 青青青在线观看视频| 天天综合一区| 亚洲欧美电影在线观看| 黄色不卡一区| 欧美激情第六页| 高潮一区二区| 性色av一区二区三区红粉影视| 26uuu亚洲电影在线观看| 日韩在线免费视频| 成人在线观看免费| 国产小视频国产精品| 日本一卡二卡四卡精品 | 中文字幕无人区二| 欧美日一区二区在线观看| 亚洲精品不卡| 成人综合久久| 一区二区精品在线| 成人春色在线观看免费网站| 92看片淫黄大片欧美看国产片| 色综合视频一区二区三区日韩| 国产精品久久久久免费a∨| 日韩大片欧美大片| 日韩av毛片网| 欧美日韩精品免费观看视欧美高清免费大片| 91国语精品自产拍在线观看性色 | 欧美亚洲一级| 免费观看精品视频| 日韩精品一二三四| 最近免费中文字幕中文高清百度| 日韩精品成人一区二区在线| 色哟哟精品视频| 麻豆精品视频在线观看免费| 在线观看岛国av| 国产精品中文字幕欧美| 性一交一黄一片| av在线免费不卡| 亚洲一级中文字幕| 国产女人aaa级久久久级| 69xxx免费| 亚洲人精品午夜| 日本三级网站在线观看| 欧美色另类天堂2015| 国产乱码77777777| 欧美一区二区三区四区在线观看| 亚洲AV无码国产精品午夜字幕| 亚洲白拍色综合图区| 欧美女优在线观看| 自拍偷拍亚洲在线| 在线观看操人| 青青草99啪国产免费| 欧美91在线|欧美| 99在线看视频| 台湾色综合娱乐中文网| 亚洲国产欧美一区二区三区不卡| 久久中文亚洲字幕| 97超碰国产精品| 日韩av中文字幕一区二区| 夜夜爽久久精品91| 91在线小视频| 一区二区三区影视| 精品久久中文字幕久久av| 在线视频你懂得| 精品福利在线导航| 91社区在线| 国内精品视频在线| 国产二区三区在线| 国产69久久精品成人| 日日夜夜亚洲| 久久青青草原一区二区| 国产精品久久观看| 动漫av网站免费观看| 激情欧美一区二区| 野外性满足hd| 亚洲线精品一区二区三区| 中文字幕你懂的| 亚洲国产日韩欧美综合久久| 午夜免费视频在线国产| 一区二区三区四区在线观看视频| 97超碰资源站在线观看| 国产精品狠色婷| 狼人精品一区二区三区在线| 亚洲资源在线网| 久久国产精品99国产| 一区二区三区人妻| 国产精品美女久久久久aⅴ| 国产成人精品片| 午夜久久福利影院| 亚洲无码精品在线观看| 日韩精品在线影院| 欧美韩日亚洲| 国模私拍视频一区| 9999精品视频| 婷婷四月色综合| 久久国产日本精品| 日本一区二区在线免费观看| 一区二区在线看| 国产原创中文av| 最近2019中文字幕mv免费看| 一区二区三区短视频| 好吊色欧美一区二区三区视频 | 国产精品久久一卡二卡| 日本特级黄色片| 亚洲精品91美女久久久久久久| 99热国产在线| 亚洲综合社区网| 午夜精品久久久久久久四虎美女版| 午夜免费一区二区| 91浏览器在线视频| 偷偷操不一样的久久| 精品粉嫩超白一线天av| 日本一本在线免费福利| av日韩中文字幕| 国产精品jizz在线观看美国| 亚洲一区二区三区观看| 中文子幕无线码一区tr| 中文人妻熟女乱又乱精品| 亚洲无亚洲人成网站77777| 伊人久久视频| 日韩高清三级| 日韩极品在线观看| 91资源在线播放| 欧美视频日韩视频在线观看| 国产乱理伦片a级在线观看| 国产精品视频男人的天堂| 日本欧美肥老太交大片| 狠狠干狠狠操视频| 亚洲欧美电影一区二区| 草逼视频免费看| 久久久免费观看视频| 久草精品视频| 18禁男女爽爽爽午夜网站免费| 久久久久久久国产精品影院| 国产欧美小视频| 欧美理论片在线| 性xxxxfjsxxxxx欧美| 国产精品国产三级国产专区53| 国产在视频线精品视频www666| 四虎永久在线精品无码视频| 国产蜜臀97一区二区三区| 亚洲天天综合网| 欧美高清性猛交| 伊人成综合网yiren22| 亚洲激情在线观看视频| 亚洲色图视频网站| 国产91绿帽单男绿奴| 欧美亚洲成人xxx| 色乱码一区二区三区网站| 人妻巨大乳一二三区| 午夜av一区二区三区| 高清在线观看av| 亚洲综合最新在线| 国产精品婷婷| 刘亦菲国产毛片bd| 精品日韩成人av| 欧美黑人疯狂性受xxxxx野外| 亚洲一区精品视频| 成人污污视频在线观看| 99久久精品久久亚洲精品| 欧美不卡一区二区| 亚洲播播91| 国产资源第一页| 久久蜜桃香蕉精品一区二区三区| 国产又粗又猛又爽又黄91| 羞羞色国产精品| 亚洲91久久| xxxx日本免费| 欧美r级在线观看| 日韩av懂色|