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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

转 ofbiz的webservice接口提供(1)-WSDL的生成

發布時間:2025/7/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转 ofbiz的webservice接口提供(1)-WSDL的生成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ofbiz的service:這個是ofbiz賴以驕傲的設計方式。她可以將所有內部實體對象的CRUD都使用service的方式提供,不同系統之間可以通過互相調用service來完成業務操作。這種松耦合的方式是很多框架夢寐以求的效果。?

?在ofbiz4的文檔中提到,如果想將ofbiz的某個服務開放成webservice只是需要輕輕的將我們定義service文件中的service屬性中的export設定為true。

?例如:我的一個ofbiz項目的servicedef目錄下的services.xml文件中定義了一個服務

?

[xhtml]?view plaincopy
  • <service???
  • ????name="findSeniorService"????
  • ????engine="java"???
  • ????location="com.hc360.cem.ws.CEMSeniorMemberService"???
  • ????invoke="findSeniorService"???
  • ????export="true"???
  • ????validate="false"???
  • ????auth="false">??
  • ????<description>CRM?call?CEM?findSeniorService?soap</description>??
  • ????<attribute?name="userid"?type="String"?mode="INOUT"?optional="true"/>??
  • ????<attribute?name="salt"?type="String"?mode="IN"?optional="true"/>??
  • ????<attribute?name="aaa"?type="String"?mode="OUT"?optional="true"/>????????
  • ????<attribute?name="bbb"?type="String"?mode="OUT"?optional="true"/>????????
  • ????<attribute?name="ccc"?type="String"?mode="OUT"?optional="true"/>????????
  • </service>??
  • 上邊圖片的意思就是將:com.hc360.cem.ws.CEMSeniorMemberService類中的findSeniorService作為soap接口提供出去。輸入參數有userid、salt,輸出參數有userid、aaa、bbb、ccc。

    而我實際類如下:

    ?

    [c-sharp]?view plaincopy
  • import?java.util.Map;??
  • import?javolution.util.FastMap;??
  • import?org.ofbiz.base.util.Debug;??
  • import?org.ofbiz.service.DispatchContext;??
  • ??
  • public?class?CEMSeniorMemberService?{??
  • ???/**?
  • ????*?開放一個service供測試使用?
  • ????*?wsdl的訪問方式:http://yourip:port/project/control/SOAPService/findSeniorService?wsdl?
  • ????*?但是ofbiz給我們生成的wsdl使用任何的客戶端生成工具都無法正確生成,但是這個webservice接口是可以使用的?
  • ????*?@author?kongqz?
  • ????*?@date?2009-03-11?
  • ????*??
  • ????*?*/??
  • ????public?static?Map<String,?Object>?findSeniorService(DispatchContext?ctx,?Map<String,???extends?Object>?context)?{??
  • ????????//存放結果的map??
  • ????????Map<String,?Object>?result?=?FastMap.newInstance();??
  • //????????GenericDelegator?delegator?=?ctx.getDelegator();??
  • ??
  • ????????String?userid?=?(String)?context.get("userid");??
  • ????????String?salt?=?(String)?context.get("salt");??
  • ????????Debug.logInfo("salt?is?["+salt+"],userid?is?["+userid+"]?",?"findSeniorService");??
  • ??
  • ????????result.put("aaa",?"test_aaaaa");??
  • ????????result.put("bbb",?"test_bbbbb");??
  • ????????result.put("ccc",?"test_ccccc");??
  • ????????result.put("userid",?userid);??
  • ????????return?result;??
  • ????}??
  • }??
  • ?

    ?

    我傳入的參數將從ofbiz的這個context中獲取,而我返回的參數將通過result這個map來put出去。

    這里我想說明的是:這個時候如果我調用如下鏈接:

    http://yourip:port/projectname/control/SOAPService/findSeniorService?wsdl

    就可以看到我這個服務的wsdl文件。

    ?

    如果想看整個項目所有暴露給外部訪問的webservice有哪些,我可以使用

    http://yourip:port/projectname/control/SOAPService?wsdl

    來進行查看。

    通過上邊wsdl鏈接我們需要知道一點,我們的SOAPService哪里來的?

    這里就需要指出,如果想將你的SOAPService暴露給外部,需要ofbiz的controller來做點貢獻。因為ofbiz的外部請求都是通過 ofbiz的servlet來處理的,入口點是項目的controller文件,我們需要給controller文件增加支持。

    controller文件:ofbiz當前項目的所有請求的入口,通過對應request-map:將所有的請求uri對應到指定的處理函數上。

    增加如下:

    ?

    [xhtml]?view plaincopy
  • <!--?引擎接口?-->??
  • <request-map?uri="httpService">??
  • ????<event?type="java"?path="org.ofbiz.service.engine.HttpEngine"?invoke="httpEngine"/>??
  • ????<response?name="success"?type="none"/>??
  • ????<response?name="error"?type="none"/>??
  • </request-map>??
  • <request-map?uri="SOAPService">??
  • ????<event?type="soap"/>??
  • ????<response?name="error"?type="none"/>??
  • ????<response?name="success"?type="none"/>??
  • </request-map>??
  • <request-map?uri="xmlrpc"?track-serverhit="false"?track-visit="false">??
  • ????<event?type="xmlrpc"/>??
  • ????<response?name="error"?type="none"/>??
  • ????<response?name="success"?type="none"/>??
  • </request-map>??
  • ?通過在controller.xml文件上的支持,你才能將httpService,SOAPService,xmlrpc這些服務對外提供,你的鏈接才能寫成上邊的方式。

    ? 總結下ofbiz的webservice提供前提:

    ? 1、controller的支持,SOAPService的接口暴露】

    ? 2、service類的提供,這個類是static方式的,數據的傳入傳出使用map方式(注意那個context)

    ? 3、services.xml文件的定義,將你的webservice定義在這里,并設定export=true,否則只能是一個內部的service了。

    ? 4、訪問我們項目提供的所有webservice,看wsdl文件是否可用

    轉載于:https://www.cnblogs.com/Ivan-j2ee/archive/2012/08/16/2642451.html

    總結

    以上是生活随笔為你收集整理的转 ofbiz的webservice接口提供(1)-WSDL的生成的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧洲成人免费视频 | av日韩一区| 成人无码一区二区三区 | 精品视频在线播放 | 精品人妻无码一区 | 国产真实生活伦对白 | 九九热综合 | 天天操欧美| 欧美日韩六区 | 精产国品一二三产品蜜桃 | 青青草国产成人99久久 | 可以在线观看的黄色 | 狠狠做| 亚洲第一天堂久久 | 国产一区二区精华 | 成人av动漫在线 | 国产91免费观看 | 日韩中文字幕在线观看 | 久久久久亚洲色欲AV无码网站 | 国产 一二三四五六 | 国产欧美日韩二区 | 欧美激情免费在线 | 自拍偷拍国产精品 | 欧美理论视频 | 激情视频网址 | 粉嫩av蜜桃av蜜臀av | 黄色三级国产 | 久久另类ts人妖一区二区 | 免费观看日本 | 日韩无遮挡| 大地资源在线观看免费高清版粤语 | 黄页在线观看 | 国产伦视频 | 日韩精品久 | 长河落日电视连续剧免费观看 | 国产妇女视频 | 亚洲三级影院 | 麻豆视频国产精品 | 国产精品100| 亚洲国产免费 | 伊人最新网址 | 三级视频小说 | 久久新网址 | av手机免费看 | 波多野结衣中文字幕在线播放 | 色婷婷综合久久 | 里番acg★同人里番本子大全 | 亚洲国产高清视频 | 亚洲+小说+欧美+激情+另类 | 国产精品对白 | 免费看美女被靠到爽的视频 | 日本大奶子视频 | 在线亚洲精品 | 中文字幕亚洲精品在线观看 | 久久女同互慰一区二区三区 | 日韩最新在线 | 扒丝袜| 青青草社区视频 | 玉蒲团在线 | 久久久国产成人 | 国产剧情av在线播放 | 亚洲欧美日韩一区在线观看 | 成人精品在线观看视频 | 懂色av中文字幕 | 亚州| 国产黄| 91蝌蚪少妇 | 中文字幕三级 | 人妻少妇精品一区二区 | 久久久久青草 | 超碰婷婷 | 亚洲中文字幕一区在线 | wwwxxxx在线观看 | 中文日韩av| 天堂av网址 | 在线精品视频免费观看 | 人妻体内射精一区二区 | 国产理论影院 | 中文在线中文资源 | 日韩一区二区三 | 在线不卡一区二区 | 久久久.com | 牛夜精品久久久久久久99黑人 | 国产精品1 | 91成人小视频 | 日本黄色美女网站 | 久久精品—区二区三区舞蹈 | 国产精品理论片在线观看 | 天码人妻一区二区三区在线看 | 强伦人妻一区二区三区 | 99热这里只有精品18 | 加勒比成人av | 爱情岛论坛亚洲自拍 | 欧美一级特黄视频 | 精品美女 | 中国zzji女人高潮免费 | 天天噜 | 久久午夜国产 | 香蕉午夜视频 |