<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) 評論(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成人网人人网站 | 亚洲专区一路线二| 99re视频精品全部免费| 精品无码一区二区三区亚洲桃色| 免费在线看黄的网站| 久久亚洲美女精品国产精品| 中国人xxxxx69免费视频| 亚洲综合激情六月婷婷在线观看| 又大又硬又爽又粗又快的视频免费| 少妇中文字幕乱码亚洲影视| 国产精品爱啪在线线免费观看| 亚洲精品mv在线观看| 无码高潮少妇毛多水多水免费| 在线观看亚洲AV日韩A∨| 国产无遮挡色视频免费视频| 一级一级一级毛片免费毛片| 国产亚洲一区二区手机在线观看| 日本免费久久久久久久网站| 亚洲日本在线观看网址| 青青草国产免费久久久下载| 免费中文字幕视频| 亚洲AV无码成人网站久久精品大| 在免费jizzjizz在线播| 亚洲hairy多毛pics大全| 国产日产亚洲系列最新| 99ee6热久久免费精品6| 亚洲欧美日韩一区二区三区| 亚洲av无码乱码在线观看野外| 91香蕉成人免费网站| 亚洲精品无码高潮喷水A片软| 亚洲一本大道无码av天堂| 无码av免费网站| 久久亚洲AV成人无码国产最大| 久久亚洲2019中文字幕| 国产黄色免费网站| 国产成人无码免费看片软件| 亚洲日本视频在线观看| 久久亚洲av无码精品浪潮| 国产成人精品久久免费动漫| 黄色免费网址大全|