<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 閱讀(244) 評論(0)  編輯  收藏 所屬分類: JavaEE5/EJB3

    一、定義服務接口,并用@Producer標注
    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);?
    ?}?


    二、定義服務實現,并用@Consumer標注,同MDB一樣,如果所監聽的消息隊列不存在,JBoss會自動創建一個,不需要任何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接口所對應的stub object,
    這個stub object實現了Producer接口的同時還實現了ProducerObject接口。你需要用ProducerObject.getProducerManager()得到一個ProducerManager然后調用manager.connect().它會創建一個JMS連接。接下來就可以使用@Producer中定義的服務了。
    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电影在线观看| 亚洲AV伊人久久青青草原| 亚洲 欧洲 视频 伦小说| 日韩av无码成人无码免费 | 久久精品国产69国产精品亚洲| 天堂亚洲免费视频| 亚洲国模精品一区| 国产免费伦精品一区二区三区| 丁香五月亚洲综合深深爱| 两个人看的www视频免费完整版| 亚洲一区二区女搞男| 久久大香伊焦在人线免费| 亚洲欧洲在线观看| 曰批视频免费30分钟成人| 亚洲欧洲AV无码专区| 免费人成网站在线播放| 巨胸狂喷奶水视频www网站免费| 亚洲精品无码专区久久久| 一级毛片免费毛片一级毛片免费| 亚洲精品在线网站| 成人性生活免费视频| 男人免费视频一区二区在线观看| 亚洲伊人色欲综合网| 91免费国产精品| 丰满亚洲大尺度无码无码专线| 亚洲不卡AV影片在线播放| 国产又黄又爽又大的免费视频| 亚洲男人天堂av| 成在人线AV无码免费| 国产精品免费一区二区三区| 亚洲AV无码一区东京热久久 | 黄色网址在线免费| 亚洲宅男精品一区在线观看| 四虎影视在线永久免费看黄| a级午夜毛片免费一区二区| 亚洲av无码一区二区三区天堂古代| 国产精品免费看久久久无码| 女同免费毛片在线播放| 国产精品亚洲四区在线观看| 精品国产人成亚洲区|