Java通過Jolt調用Tuxedo服務-補充說明

來源:互聯網
上載者:User

Java通過Jolt訪問Tuxedo服務-補充說明

草木瓜

2006-6-2

一、頁面參數檔案說明以及通過WebLogic調用Tuxedo服務

《Java通過Jolt訪問Tuxedo服務》一文是在Eclipse環境下開發調用Tuxedo服務。

其中在index.asp和liwei.java中有這麼幾句語句:

index.asp

<form id=form1 name="form1" action=liwei method=post>
<input type="text" name="STRING" value="1">
<input type=submit value=submit>

liwei.java

//跟據傳遞的變數STRING值,擷取傳回值
out.println("傳回值:"+result.getValue("STRING", ""));

這兩段的STRING是不可以隨便替換的,這必須與E:/bea/tuxedo9.0/udataobj/jolt/repository
下jrepository檔案描述的服務參數相一致!且必須為大寫!即:

add SVC/DBREAD:vs=1:ex=1:bt=STRING:/
 bp:pn=STRING:pt=string:pf=167772161:pa=rw:ep:       //這裡面定義的參數就是STRING
add PKG/SIMPSERV:DBREAD:
     
下面用WebLogic對Tuxedo服務調用再詳細的舉例說明。

WebLogic通過jolt調用Tuxedo服務,有了上文的前提就顯得很容易,說白了只是Servlet與Jsp的一點
小轉換。除了最後一步在Eclipse3.1編寫Servlet代碼,其他的前提步驟是必須的。WebLogic要使用
Jolt介面,同樣需要jolt,joltjse,joltwls三個jar包,將它們Copy到WEB-INF下的lib檔案夾即可。

以下是完整的樣本,參數名用大寫的TEST。

index.jsp
---------------------------------

<form action="_test/testTuxedo.jsp" method="post">
<p>
<input type="text" value="1" name="TEST" id="text1"><input type="submit" value="tuxedo">
</p>
</form>

testTuxedo.jsp
---------------------------------

<body>
<p>
   
    <%
      bea.jolt.pool.servlet.ServletSessionPoolManager bool_mgr = (bea.jolt.pool.servlet.ServletSessionPoolManager) bea.jolt.pool.SessionPoolManager.poolmgr;
      bea.jolt.pool.servlet.ServletResult result;
     //擷取在WebLogic服務定義好的串連池
     bea.jolt.pool.servlet.ServletSessionPool pool_session = (bea.jolt.pool.servlet.ServletSessionPool)
       bool_mgr.getSessionPool("JoltPool");
     if (pool_session == null) {
       out.println("擷取Tuxedo服務失敗。"+
                   "<br>"+
                   "確認Tuxedo服務已啟動且配置正確。");
       out.close();
       return;
     }
     // 調用服務
     try
     {
       result = pool_session.call("DBREAD", request);
       System.out.println("OK!");
       out.println("傳遞的參數 = " + sendvalue);
       out.println("Tuxedo服務成功調用。 ");
       out.println("傳回值:"+result.getValue("TEST", ""));
     }
     catch (bea.jolt.pool.SessionPoolException e)
     {
       // 串連池繁忙
       out.println("此時請求不能被處理。/n"+
                   "錯誤資訊: "+e.getMessage()+"/n"+
                   "可能的原因:1.無效的串連池 2.串連池已關閉");
     }
     catch (bea.jolt.pool.ServiceException e)
     {
       // 服務出錯
     e.printStackTrace();
       out.println("Error:"+
                   "Error message:"+e.getMessage()+
                   "Error number:"+e.getErrno());
     }
     catch (bea.jolt.pool.ApplicationException e)
     {
       // 應用程式出錯
       result = (bea.jolt.pool.servlet.ServletResult) e.getResult();
       out.println("錯誤碼:"+result.getApplicationCode());
     }
     catch (Exception e)
     {
       out.println("意外錯誤:"+e);
     }
    
  %>
</p>
</body>

二、典型的服務應用

Oracle伺服器   192.168.0.111
Tuxedo伺服器   192.168.0.66
Web伺服器     

通過Web用戶端訪問Web伺服器,調用Tuxedo服務訪問資料庫

1.配置Tuxedo伺服器的Oracle連接字串(TNSNAME)。注意Oracle伺服器的防火牆

WINDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.111)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = wincn)
    )
  )
 
2.配置Tuxedo的jrepository檔案
3.配置Tuxedo的Config檔案,JSR服務的IP與連接埠要與本地IP一致。

JSL SRVGRP=JSLGRP SRVID=301
CLOPT="-A -- -n //192.168.0.66:9988 -M 10 -x 10 -m 2"

4.配置Web伺服器的WebServer,config.xml中ip與連接埠即為Tuxedo伺服器的JSR服務IP與連接埠
注意Tuxedo伺服器的防火牆。

<JoltConnectionPool FailoverAddresses="//192.168.0.66:9988"
    MaximumPoolSize="2" MinimumPoolSize="1" Name="JoltPool"
    PrimaryAddresses="//192.168.0.66:9988"
    SecurityContextEnabled="false" Targets="webServer"/>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.