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

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

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

    Let's go inside

    this blog is deprecated as a result of laziness.
    posts - 59, comments - 2, trackbacks - 0, articles - 0

    TrailBlazer第8天--Message Driven POJOs

    Posted on 2006-07-27 15:17 Earth 閱讀(251) 評(píng)論(0)  編輯  收藏 所屬分類: JavaEE5/EJB3

    一、定義服務(wù)接口,并用@Producer標(biāo)注
    Calculator.java?

    package ?trail.mdpojo;
    ?
    import ?org.jboss.annotation.ejb.Producer;
    ?@Producer
    ?
    public ? interface ?Calculator?{
    ?
    ???
    public ? void ?doCalculation?( long ?sent,? int ?start,? int ?end,
    ??????????????????????????????
    double ?growthrate,
    ??????????????????????????????
    double ?saving);?
    ?}?


    二、定義服務(wù)實(shí)現(xiàn),并用@Consumer標(biāo)注,同MDB一樣,如果所監(jiān)聽(tīng)的消息隊(duì)列不存在,JBoss會(huì)自動(dòng)創(chuàng)建一個(gè),不需要任何XML配置文件
    MdpojoCalculator.java?

    ? package ?trail.mdpojo;
    ?
    import ?org.jboss.annotation.ejb.Consumer;
    ?
    import ?javax.ejb. * ;
    ?
    import ?java.sql.Timestamp;
    ?
    ?@Consumer(activationConfig?
    =
    ?{
    ???@ActivationConfigProperty(propertyName
    = " destinationType " ,
    ?????propertyValue
    = " javax.jms.Queue " ),
    ???@ActivationConfigProperty(propertyName
    = " destination " ,
    ?????propertyValue
    = " queue/mdpojo " )
    ?})
    ?
    public ? class ?MdpojoCalculator? implements ?Calculator?{
    ?
    ???
    public ? void ?doCalculation?( long ?sent,? int ?start,? int ?end,? double ?growthrate,?

    double ?saving)?{
    ?
    ?????
    double ?result? = ?calculate?(start,?end,?growthrate,?saving);
    ?????RecordManager.addRecord?(
    new ?Timestamp(sent),?result);
    ?
    ?????System.out.println?(
    " The?MD?POJO?is?invoked " );
    ???}
    ???
    //
    ?}??

    三、Message Driven POJOs的使用
    ???????如果要使用MDPOJO,你首先需要從JNDI中查找@Producer接口所對(duì)應(yīng)的stub object,
    這個(gè)stub object實(shí)現(xiàn)了Producer接口的同時(shí)還實(shí)現(xiàn)了ProducerObject接口。你需要用ProducerObject.getProducerManager()得到一個(gè)ProducerManager然后調(diào)用manager.connect().它會(huì)創(chuàng)建一個(gè)JMS連接。接下來(lái)就可以使用@Producer中定義的服務(wù)了。
    calculator.jsp?

    ? <% @?page? import = " trail.mdpojo.*,?javax.naming.*,?java.text.*,
    ??????????????????org.jboss.ejb3.mdb. * " %>
    ?
    ?
    <%
    ???
    if ?( " send " .equals(request.getParameter?( " action " )))?{
    ?
    ?????
    int ?start? = ?Integer.parseInt(request.getParameter?( " start " ));
    ?????
    int ?end? = ?Integer.parseInt(request.getParameter?( " end " ));
    ?????
    double ?growthrate? = ?Double.parseDouble(request.getParameter?( " growthrate " ));
    ?????
    double ?saving? = ?Double.parseDouble(request.getParameter?( " saving " ));
    ?
    ?????
    // ?The?sent?timestamp?acts?as?the?message's?ID
    ????? long ?sent? = ?System.currentTimeMillis();
    ?
    ?????Calculator?cal?
    = ? null ;
    ?????ProducerManager?manager?
    = ? null ;
    ?????
    try ?{
    ?
    ???????InitialContext?ctx?
    = ? new ?InitialContext();
    ???????cal?
    = ?(Calculator)?ctx.lookup(
    ???????????????????Calculator.
    class .getName());
    ???????
    // ?cal?=?(Calculator)?ctx.lookup(
    ???????
    // ?????????????"EJB3Trail/MdpojoCalculator/remote");
    ??????ProducerObject?po? = ?(ProducerObject)?cal;
    ???????manager?
    = ?po.getProducerManager();
    ?
    ?????}?
    catch ?(Exception?e)?{
    ???????e.printStackTrace?();
    ?????}
    ?
    ?????manager.connect();?
    // ?internally?create?a?JMS?connection
    ????? try ?{
    ???????cal.doCalculation(sent,?start,?end,
    ?????????????????????????growthrate,?saving);
    ?????}?
    finally ?{
    ???????manager.close();?
    // ?clean?up?the?JMS?connection
    ?????}
    ?
    %> ?


    ?

    主站蜘蛛池模板: 亚洲色自偷自拍另类小说| 亚洲精品自在在线观看| 亚洲精品**中文毛片| 在线视频网址免费播放| 成人免费夜片在线观看| 亚洲电影免费在线观看| 中文字幕人成人乱码亚洲电影| 亚洲av无码国产精品色午夜字幕 | 在线免费观看韩国a视频| 亚洲免费在线观看| 免费大片黄在线观看| 亚洲高清无码专区视频| 老牛精品亚洲成av人片| 国产一级一片免费播放i| 亚洲av成人无码网站…| 免费少妇a级毛片人成网| 免费看黄网站在线看| 久久久久亚洲AV综合波多野结衣| 成人嫩草影院免费观看| 亚洲精品乱码久久久久久自慰 | 中国国产高清免费av片| 日韩免费高清一级毛片在线| 亚洲日韩在线中文字幕综合| 亚洲国产午夜福利在线播放| 久久一区二区免费播放| 亚洲AV成人精品网站在线播放| 19禁啪啪无遮挡免费网站| 在线观看日本亚洲一区| 亚洲?v女人的天堂在线观看| 精品亚洲成a人片在线观看| 五级黄18以上免费看| 亚洲国产无套无码av电影| 亚欧色视频在线观看免费| 亚洲精品第一国产综合亚AV| 182tv免费视视频线路一二三| avtt天堂网手机版亚洲| 国产精品成人69XXX免费视频| 亚洲va无码va在线va天堂| 皇色在线视频免费网站| 日本精品久久久久久久久免费 | 永久黄网站色视频免费直播 |