<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    大夢想家

    5年開發工程師,2年實施經理,X年售前顧問,......
    數據加載中……
    EJB3下無狀態會話Bean發布為WebService

        無狀態會話Bean發布為WebService是非常有意義的,因為如果我們將每一個EJB模塊按照SOA的思想做成一個一個獨立的服務模塊(這里不討論SCA,我認為Apache的SCA框架還不夠強大,文檔還不夠全面),同樣的代碼在JavaEE體系之內的應用程序可以直接使用EJB3直接訪問,JavaEE體系之外的應用程序可以直接使用WebService訪問,這一點是非常有意義的。

        下面要考慮的就是如何只寫一份代碼,讓它能做兩樣事情。

        網上有大量的使用EJB3發布WebService的教程,但是這些教程都是一個人寫的,基本上沒有太大的參考價值。最重要的是,他寫的元注釋都是寫在實現類上的,接口上沒有做任何描述。這種做法有兩個問題,第一如果你的會話Bean使用了EM,那么麻煩了,JAXB在做綁定的時候不認識接口;第二WSDL文件的描述實際上應該是基于接口的描述,應該和實現類沒有太大的關系。

        看看網上流行的代碼:

     

    1@WebService(name = "PurchaseArrival", serviceName = "PurchaseArrivalService"
    2@SOAPBinding(style = SOAPBinding.Style.RPC) 
    3public class PurchaseArrivalImpl implements IPurchaseArrival {

     

    注意,基于RPC綁定模式下List,Set一類的接口都是不可傳輸的,這點會很麻煩,要用必須用實現類。

    看看我的代碼:

    接口:

     

    1@WebService(name = "ILogRemoteService",targetNamespace = "http://www.glnpu.com/dmp/xml"
    2@SOAPBinding(style = SOAPBinding.Style.DOCUMENT) 
    3public interface  ILogRemoteService {

     

    實現類:

     

    1@Stateless 
    2@Remote(ILogRemoteService.class
    3@WebService(endpointInterface = "com.glnpu.dmp.server.service.base.log.ILogRemoteService",serviceName = "LogRemoteService"
    4public class LogRemoteService extends BaseService implements ILogRemoteService {

     

    這個WebService是針對接口發布出去,而且使用的DOCUMENT樣式,可以直接使用List、Set的接口。

    這個WebService生成的WSDL文件很有意思:

     

     1<definitions name="LogRemoteService" targetNamespace="http://impl.log.base.service.server.dmp.glnpu.com/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://www.glnpu.com/dmp/xml" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.log.base.service.server.dmp.glnpu.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
     2
     3<import location="http://127.0.0.1:8080/LogRemoteServiceService/LogRemoteService?wsdl&resource=ILogRemoteService_PortType25057.wsdl" namespace="http://www.glnpu.com/dmp/xml" />
     4
     5<service name="LogRemoteService">
     6
     7<port binding="ns1:ILogRemoteServiceBinding" name="LogRemoteServicePort">
     8
     9<soap:address location="http://127.0.0.1:8080/LogRemoteServiceService/LogRemoteService" />
    10
    11</port>
    12
    13</service>
    14
    15</definitions>
    16
    17

     

    里面有import來指引到真正的WSDL文件。這樣很容易將會話Bean變成WS~一樣的代碼兩樣的功能,超值!



    客戶虐我千百遍,我待客戶如初戀!

    posted on 2009-07-02 13:54 阿南 閱讀(1946) 評論(0)  編輯  收藏 所屬分類: EJB3個人原創

    主站蜘蛛池模板: 亚洲AV日韩AV永久无码色欲| 亚洲三级在线视频| 亚洲jizzjizz在线播放久| 一级人做人爰a全过程免费视频| 久久不见久久见免费影院| 亚洲中文字幕无码亚洲成A人片| 一级毛片aa高清免费观看| 一个人免费观看视频www| 亚洲精品无码久久久久sm| 亚洲国产精品嫩草影院| 国产精品久久永久免费| 婷婷久久久亚洲欧洲日产国码AV| 国产永久免费高清在线| 免费看少妇作爱视频| 亚洲精品tv久久久久久久久| 亚洲AV噜噜一区二区三区| 国产免费AV片在线观看| 一区国严二区亚洲三区| 麻豆亚洲av熟女国产一区二| 国产久爱免费精品视频| www.91亚洲| 国产成人人综合亚洲欧美丁香花| 成年美女黄网站18禁免费| 久久亚洲精品成人| 国产亚洲精品国产福利在线观看| 久久天天躁狠狠躁夜夜免费观看| 国产精品亚洲片在线观看不卡| 好男人资源在线WWW免费| 亚洲精选在线观看| 亚洲免费在线观看视频| 亚洲日韩国产一区二区三区在线| 国产日产成人免费视频在线观看| 人体大胆做受免费视频| 亚洲AV永久精品爱情岛论坛| 国产免费女女脚奴视频网| 亚洲av无码兔费综合| 亚洲熟妇无码八AV在线播放| 91禁漫免费进入| 亚洲男人的天堂网站| 亚洲午夜未满十八勿入网站2| 在线美女免费观看网站h|