亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

部署基于JBoss的J2EE應用程序

2019-11-18 11:36:08
字體:
來源:轉載
供稿:網友

  JBoss,作為J2EE應用服務器,以其EJB容器卓越的性能、技術的潮流性、開發部署J2EE應用的方便性贏得了很多J2EE開發者的信賴。其中,免安裝、基于JMX構架、熱部署(Hot Deploy)、快速開發EJB應用等幾項特征與其他商用服務器相比,顯得有些自得忘形的樣子。盡管其本身沒有重大的缺陷,但究竟是Open Source的開發模式,文檔很少,因此要很好的把握、精通開發基于JBoss的應用還是顯得有些力不從心。
  
  本文結合作者的開發經驗,給出在JBoss 3.2.1下開發J2EE的一些很實用的相關的注重事項和規則。其中,讀者一定要知道JBoss 3.2.1作為JBoss的過渡產品(與JBoss 3.0.x、JBoss 4.x相比),自然有些東西和JBoss 3.0.x、JBoss 4.x有很大差別。但是,一般情況下,本文介紹的內容,大體上都適合JBoss各個版本。
  
  下載完JBoss 3.2.1后,解壓到一個沒有空格的目錄路徑下面就可以運行JBoss,所以很方便,但前提是目標機器安裝了java 2 Standard Edition。一切就緒后,我們就開始吧。(假設JBoss 3.2.1安裝在:C:/jboss-3.2.1_tomcat-4.1.24,本使用default配置)
  
  一、相關配置文件的設置
  
  為開發J2EE應用,操作數據庫成了必不可少的內容;調節日志輸出的具體程度成了調試J2EE應用的要害;EJB應用的調優過程是J2EE應用的核心。
  
  1. 數據源的配置:
  
  在JBoss 3.2.1中,配置數據源的步驟很簡單,JBoss 3.2.1本身帶了主流數據庫的配置實例,于目錄下:C:/jboss-3.2.1_tomcat-4.1.24/docs/examples/jca。具體使用哪個配置文件取決于目標用戶的數據庫。假如是SQL Server 2000,則需要使用MSSQL-ds.xml文件(支持本地事務)或者mssql-xa-ds.xml文件(支持全局事務);假如是Oracle 9i數據庫,則需要使用oracle-ds.xml文件或者oracle-xa-ds.xml文件等。這里以SQL Server 2000為例。
  
  首先將mssql-ds.xml文件拷貝到目錄:C:/jboss-3.2.1_tomcat-4.1.24/server/default/deploy下。然后打開文件,并作如下修改:
  
  <datasources>
  <local-tx-datasource>
  <jndi-name>VSSDB</jndi-name>
  <connection-url>jdbc:microsoft:sqlserver://125.16.45.158:1433;DatabaseName=DDD
  </connection-url>
  <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
  <user-name>sa</user-name>
  <passWord>sa</password>
  <min-pool-size>50</min-pool-size>
  <max-pool-size>200</max-pool-size>
  </local-tx-datasource>
  </datasources>
  
  假如目標J2EE應用只需要本地事務,則上述過程已經完成了Datasource的配置,同時這個配置將用于JDBC以及EJB通過JNDI使用。假如要實現EJB使用Datasource,則還需要修改位于目錄:C:/jboss-3.2.1_tomcat-4.1.24/server/default/conf下的standardjbosscmp-jdbc.xml文件。比如:
  
  <jbosscmp-jdbc>
  
  <defaults>
  <datasource>java:/VSSDB1</datasource>
  <datasource-mapping>MS SQLSERVER2000</datasource-mapping>
  
  <create-table>true</create-table>
  <remove-table>false</remove-table>
  <read-only>false</read-only>
  <time-out>300</time-out>
  <pk-constraint>true</pk-constraint>
  <fk-constraint>false</fk-constraint>
  
  其中,java:/VSSDB中的VSSDB就是mssql-ds.xml配置的數據源;而“java:/”前綴表明該命名空間只是對JBoss本身可見,即運行于JBoss外的應用是不能夠使用這里定義的數據源,這一點希望注重。
  
  其次,MS SQLSERVER2000中的MS SQLSERVER2000可以在該文件的其他地方找到。(假如是其他數據庫,情況都是類似的)
  
  2. 日志的輸出具體程度配置:
  
  由于JBoss 3.2.1開發采用了Log4j治理其日志信息(嚴格地講,它擴展了Log4j),因此了解Log4j的機理,有助于理解JBoss 3.2.1治理日志的方式。JBoss 3.2.1采用JMX架構的同時,且以.xml文件類型為配置文件,因此可以找到位于目錄:C:/jboss-3.2.1_tomcat-4.1.24/server/default/conf下的log4j.xml文件。比如,其中一段配置示例如下:
  
  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
  <param name="Target" value="System.out"/>
  <param name="Threshold" value="INFO"/>
  
  <layout class="org.apache.log4j.PatternLayout">
  <!-- The default pattern: Date Priority [Category] Message/n -->
  <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
  </layout>
  </appender>
  
  比如,為了調節JBoss 3.2.1控制臺日志輸出的具體程度(調整為DEBUG級別),我們需要修改value=”INFO”,將INFO改為DEBUG。 假如開發Entity Beans,可以調節位于與log4j.xml文件同一目錄下的standardjboss.xml文件(該文件主要是提供修改EJB相關的調試、運行、調優、部署參數)。假如Entity Beans采用的為Standard CMP 2.x EntityBean,則將其中的屬性的取值改為true。
  
  <container-configuration>
  <container-name>Standard CMP 2.x EntityBean</container-name>
  <call-logging>false</call-logging>
  <invoker-proxy-binding-name>entity-rmi-invoker</invoker-proxy-binding-name>
  <sync-on-commit-only>false</sync-on-commit-only>
  
  完成上述兩步后,在調試Entity Beans時通過控制臺,可以看到Entity Beans發出的JDBC調用細節。
  
  3. Tomcat容器相關參數的配置:
  
  假如使用JBoss 3.2.1與Tomcat 4.1.24的集成版本,則可以通過調節分別位于目錄:C:/jboss-3.2.1_tomcat-4.1.24/server/default/deploy/jbossweb-tomcat.sar下的web.xml和目錄:C:/jboss-3.2.1_tomcat-4.1.24/server/default/deploy/jbossweb-tomcat.sar/META-INF下的jboss-service.xml文件來達到目標讀者特定需求。比如,假如想將HTTP服務端口改為80,則可以修改jboss-service.xml文件;假如想使目標J2EE應用處理更多的文件類型,可以修改web.xml文件。
  
  4. 相關類庫的放置:
  
  假如應用涉及到第三方類庫,比如JDBC Driver,則可以將這些JDBC Driver存放到目錄下:C:/jboss-3.2.1_tomcat-4.1.24/server/default/lib。注重,不是目錄:C:/jboss-3.2.1_tomcat-4.1.24/lib下。
  
  假如是與目標J2EE應用相關,則可以存放到目標.war(或者.ear)里面,或者xxx.war目錄中的WEB-INFO/lib下。無論那種情形,都需要遵循J2EE規范。當然,JBoss 3.2.1的配置文件有很多,比如還有提供郵件服務的mail-service.xml文件等。
  
  二、開發EJB應用
  
  假如開發EJB應用,建議采用JBoss作為開發服務器,因為開發、調試、部署速度快。假如采用其他商用服務器,由于實現機理的不同,其編譯的速度很慢。假如采用Entity Beans技術,則您需要知道這幾點。第一,您目標系統的數據源有多少個操作入口,即是否存在Entity Beans之外的方式來操作數據庫。假如有,則需要調節相應的提交策略以及策略。
  
  比如,JBoss 3.2.1采用的方式有4種:A、B、C、D。當然,假如除了Entity Beans訪問數據庫外,別無它出,采用A是很理智的。假如有,則需要取決于具體的情況使用方式。同時,方式的選擇與策略有關系。能夠采用的Entity Beans或Entity Beans Methods,則盡量采用,這樣會減少或消除死鎖發生的可能性。盡量采用1:n的關系來操作n方的數據表結構,這樣能夠提高EJB Container的效率。
  
  一般情況下,J2EE應用服務器支持JDBC事務、JTA事務、容器治理事務。同時,最好不要在程序中同時使用上述三種事務類型,比如在JTA事務中嵌套JDBC事務;第二方面,事務要在盡可能短的時間內完成,不要在不同方法中實現事務的使用。比如,下面給出了回滾JDBC事務的代碼示例:
  
  public void PRocessT(String orders) {
  Context initCtx = new InitialContext();
  javax.sql.DataSource ds = javax.sql.DataSource)initCtx.lookup
  (“java:comp/env/jdbc/OrdersDB”);
  java.sql.Connection conn = ds.getConnection();
  try{
  conn.setAutoCommit( false ); //更改JDBC事務的默認提交方式
  orderNo = createOrder( orders );
  updateOrderStatus(orderNo, “orders created”);
  conn.commit();//提交JDBC事務
  }catch( Exception e ){
  try{
  conn.rollback();//回滾sJDBC事務
  throw new EJBException(“事務回滾: “ + e.getMessage());
  }catch( SQLException sqle ){
  throw new EJBException(“出現SQL操作錯誤: “ + sqle.getMessage());
  }
  }
  }
  
  下面給出了JTA事務代碼示例:
  
  public void processOrder(String orderMessage) {
  UserTransaction transaction = mysessionContext.getUserTransaction();//獲得JTA事務
  try{
  transaction.begin();//開始JTA事務
  orderNo = sendOrder(orderMessage);
  updateOrderStatus(orderNo, “order sent”);
  transaction.commit();//提交JTA事務
  }catch(Exception e){
  try{
  transactio

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久亚洲国产精品成人av秋霞| 亚洲男人第一网站| 成人在线视频福利| 日韩成人xxxx| 亚洲成人精品久久久| 77777亚洲午夜久久多人| 国产精品a久久久久久| 中文字幕视频在线免费欧美日韩综合在线看| 午夜精品免费视频| 96sao精品视频在线观看| 日韩精品在线影院| 国产精品视频大全| 日韩av三级在线观看| 亚洲精品美女在线| 精品久久香蕉国产线看观看gif| 欧美与黑人午夜性猛交久久久| 日产日韩在线亚洲欧美| 欧美三级xxx| 亚洲精品av在线播放| 亚洲男人天堂九九视频| 欧美日韩一区二区在线| 韩曰欧美视频免费观看| 日韩综合视频在线观看| 91av在线播放| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲精品第一页| 色777狠狠综合秋免鲁丝| 精品国产电影一区| 久久久av亚洲男天堂| 国产999在线观看| 91精品视频观看| 欧美一区二区三区精品电影| 国产欧美日韩精品丝袜高跟鞋| 久久久97精品| 韩国日本不卡在线| 国产精品成人一区二区| 欧美视频在线视频| 日本欧美爱爱爱| 动漫精品一区二区| 亚洲free性xxxx护士白浆| 九九热这里只有精品免费看| 欧美www视频在线观看| 亚洲精品一区二区久| 亚洲人成77777在线观看网| 久久精品视频播放| 欧美丝袜一区二区| 日韩亚洲综合在线| 日韩成人性视频| 欧美黑人极品猛少妇色xxxxx| 成人久久18免费网站图片| 久久精品99国产精品酒店日本| 中文字幕精品—区二区| 国产剧情日韩欧美| 伊是香蕉大人久久| 欧美色视频日本高清在线观看| 国产精品日韩av| 国产精品老女人精品视频| 国产伊人精品在线| 韩国国内大量揄拍精品视频| 成人h视频在线| 亚洲精品国产综合久久| 国产丝袜高跟一区| 国产精品美女无圣光视频| 欧美性jizz18性欧美| 久久久久久免费精品| 不卡毛片在线看| 成人精品aaaa网站| 亚洲精品国产欧美| 久久精品视频网站| 中文字幕日韩有码| 亚洲美女中文字幕| 欧美最猛性xxxxx免费| 福利精品视频在线| 亚洲欧美日韩区| 国产极品精品在线观看| 久久久在线免费观看| 亚洲天堂男人的天堂| 欧美一区二区色| 欧美激情在线观看视频| 91久久精品美女| 国产日本欧美在线观看| 久久久久亚洲精品| 国产精品免费在线免费| 亚洲精品国偷自产在线99热| 亚洲欧洲一区二区三区久久| 亚洲视频欧美视频| 亚洲国产精品网站| 久久精品2019中文字幕| 欧美视频中文字幕在线| 最新日韩中文字幕| 不卡毛片在线看| 国产精品三级网站| 日产精品久久久一区二区福利| 欧美激情一区二区三区在线视频观看| 97在线视频观看| 自拍偷拍亚洲精品| 美女视频久久黄| 欧美视频免费在线观看| 九九热视频这里只有精品| 91九色国产视频| 欧美激情图片区| 色噜噜狠狠色综合网图区| 亚洲精品av在线播放| 国内成人精品视频| 国产精品成人久久久久| 北条麻妃一区二区在线观看| 久久精品国产99国产精品澳门| 久久久久久久一| 欧美激情一区二区三区久久久| 在线观看日韩www视频免费| 日韩在线视频一区| 国产精品露脸自拍| 久久久中精品2020中文| 欧美中文在线观看| 91精品国产91久久久久久| 亚洲欧美日本精品| 国产一区二区免费| 日韩精品中文字幕在线播放| 在线观看精品国产视频| 久久国产一区二区三区| 欧美国产亚洲视频| 亚洲人成人99网站| 日本精品一区二区三区在线播放视频| 久久久久一本一区二区青青蜜月| 国产欧美精品一区二区| 欧美激情精品久久久久| 亚洲第一区第一页| 国产精品日日做人人爱| 国产成人精品一区| 久久国内精品一国内精品| 国产乱人伦真实精品视频| 亚洲国产精品电影在线观看| 亚洲午夜精品久久久久久性色| 美乳少妇欧美精品| 欧美色视频日本版| 国产一区二区久久精品| 超薄丝袜一区二区| 欧美激情视频网站| 亚洲福利视频在线| 精品中文视频在线| 91中文精品字幕在线视频| 国产精品久久久久国产a级| 91性高湖久久久久久久久_久久99| 成人久久一区二区三区| 国产小视频国产精品| 亚洲xxxx在线| 欧美激情在线观看| 成人乱人伦精品视频在线观看| 国产精品偷伦一区二区| 这里只有精品在线播放| 国产精品人成电影在线观看| 亚洲精品二三区| 97高清免费视频| 国产日韩欧美电影在线观看| 九九九久久国产免费| 国产成人精品999| 国产亚洲精品综合一区91| 欧美精品videossex性护士| 激情成人中文字幕| 日韩av在线导航| 欧美肥老太性生活视频| 91高潮精品免费porn| 久久久久久有精品国产| 欧美乱大交做爰xxxⅹ性3|