JBoss配置詳解關(guān)鍵字: jboss配置詳解2.0.1 JBOSS 的一點(diǎn)說明 run –c all 表示是啟動(dòng)all配置(將會(huì)加載所有服務(wù));run 表示是以默認(rèn)配置啟動(dòng); run –c mimimal 表示是啟動(dòng)mimimal配置。這三者所加載的服務(wù)數(shù)量不同,具體區(qū)別可查閱JBOSS相關(guān)文檔,你還可以自己定義一個(gè)配置,如test,屬于高手去為了性能上的考慮了,那這份文檔對你的幫助不會(huì)太大了。 如果你確定了JBOSS服務(wù)啟動(dòng)的配置,那么你的應(yīng)用及相關(guān)配置就需要部署在對應(yīng)的目錄下的相關(guān)的路徑下,如all/,default/,minimal/下。 2.0.1 JBOSS常用配置文件的路徑 1、相關(guān)DTD定義文件位于$JBOSS-HOME/docs/dtd,在其下的文件中可以查閱某個(gè)XML配置文件中某個(gè)元素或?qū)傩缘囊饬x。 2、數(shù)據(jù)源配置文件的路徑,$JBOSS-HOME/server/default/deploy,文件格式必須是*-ds.xml的樣式。不同的數(shù)據(jù)庫配置參數(shù)可參考$JBOSS-HOME/docs/examples/jca/下的示例文檔。有關(guān)參數(shù)的細(xì)節(jié)在下面會(huì)有一定的描述。 3、公共的 jar包我們可以放在$JBOSS-HOME/server/default/lib下,如數(shù)據(jù)庫的JDBC jar,log4j.jar等,如果這些JAR已經(jīng)在該lib下放置了,那么我們的應(yīng)用WEB-INF/lib下不應(yīng)該再放置,否則JBOSS也會(huì)將他們再一次加載,白白占用內(nèi)存。 4、配置日志的文件,log4j.xml位于$JBOSS-HOME/server/default/conf下,具體配置下文還會(huì)有一點(diǎn)介紹 5、 $JBOSS-HOME/server/default/work下存放的是JSP編譯后的.java及.class文件,如果調(diào)試JSP時(shí)出錯(cuò)了,可以到該目錄下(一級級去翻吧)去找對應(yīng)的文件,調(diào)試問題。還有個(gè)小TIPS,有時(shí)我們明明把一個(gè)JSP更新到對應(yīng)的目錄里了,可是去刷新頁面時(shí),內(nèi)容還是舊的,為了解決該問題,我們可以到work目錄下,將對應(yīng)的.java及.class文件刪了,再刷新即可,這個(gè)原因不好推測,有時(shí)可以自動(dòng)刷新,有時(shí)不行。單個(gè)的TOMCAT都能自動(dòng)刷新,不知為何集成到JBOSS里卻有時(shí)不行。還需注意的事,你在清除舊的java、class文件時(shí),不能為了省事,而直接刪除目錄,否則刷新時(shí)會(huì)報(bào)錯(cuò)的,等著你的就是要重啟JBOSS服務(wù)了。 6、$JBOSS-HOME/server/default/log下存放的是日志文件,默認(rèn)的log4j.xml配置是將日志輸出到該文件夾下的server.log文件,可以去查看信息進(jìn)行調(diào)試。 7、我們的應(yīng)用一般部署在$JBOSS-HOME/server/default/deploy/jbossweb-tomcat50.sar/ 下,建個(gè) TestCrm.war目錄,把我們的整個(gè)應(yīng)用部署在該.war目錄下,這樣JSP、Servlet將由tomcat引擎來解析處理。 8、配置應(yīng)用的WEB服務(wù)的端口號(hào)及參數(shù)。 JBOSS3.2.6是在…./ deploy/jbossweb-tomcat50.sar/server.xml中,自己找8080,修改為你想設(shè)定的端口即可。 JBOSS3.2.3是在…/default/deploy/jbossweb-tomcat41.sar/META-INF/jboss-service.xml中配置。 2.1 JBOSS 應(yīng)用程序的下載及安裝
Jboss3.2.3修改: %JBOSS_HOME%/server/default/deploy/jbossweb-tomcat41.sar/META-INF/ jboss-service.xml 修改<Engine name="MainEngine" defaultHost="localhost">為 <Engine name="MainEngine" jvmRoute=" server106" defaultHost="localhost"> 與上述workers2.properties定義的內(nèi)容一致。 Jboss3.2.6修改: %JBOSS_HOME%/server/default/deploy/jbossweb-tomcat50.sar/server.xml 修改<Engine name="jboss.web" defaultHost="localhost">為: <Engine name="jboss.web" jvmRoute=" server106" defaultHost="localhost"> 與上述workers2.properties定義的內(nèi)容一致。 Jboss4.0的修改和Jboss3.2.6的一致。 如上配置后,就可以實(shí)現(xiàn)apache+jboss的負(fù)載均衡。 2.2.2配置集群(Clustering),調(diào)整參數(shù) 1)、修改應(yīng)用APP的web.xml: Jboss3.2.6: ../default/deploy/jbossweb-tomcat50.sar/Test.war/WEB-INF/web.xml Jboss3.2.3: ../default/deploy/jbossweb-tomcat41.sar/Test.war/WEB-INF/web.xml 修改內(nèi)容如下: <?xml version="1.0"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java./dtd/web-app_2_3.dtd "> <web-app> ……. ….. …. <distributable/> </web-app> jboss配置入門(2)2007-11-01 10:442)、需要啟動(dòng)一個(gè)服務(wù)cluster-service.xml 如果是以run -c all 來啟動(dòng)jboss服務(wù),則默認(rèn)是將cluster服務(wù)啟動(dòng),無需做什么配置工作,只需確認(rèn)相關(guān)文件是否存在即可。 確認(rèn)…/server/all/deploy/下存在cluster-service.xml文件; 確認(rèn)…/server/all/lib/下存在jgroups.jar文件,如果沒有則重新安裝jboss。 如果應(yīng)用程序部署在default配置下,則需將上述的兩個(gè)文件分別拷入 …/server/default/deploy/、…/server/default/lib/目錄下。 配置完畢,如有異常,請查看日志。更詳細(xì)的信息請參閱JBOSS.com上提供的admin.pdf。 2.2.3配置數(shù)據(jù)源,調(diào)整參數(shù) 下面以oracle為例,提供我們在生產(chǎn)機(jī)環(huán)境的配置。 該xml文件需要被部署在%JBOSS_HOME%/server/all(or default)/deploy/下,對應(yīng)的數(shù)據(jù)庫驅(qū)動(dòng)程序jar需copy至部署的配置的lib下,如…all/lib/或…default/lib/下。 <datasources> <local-tx-datasource> <jndi-name>jdbc/TestDataSource</jndi-name> <connection-url>jdbc:oracle:thin:@192.168.1.2:1521:test</connection-url> <!--<connection-url>jdbc:oracle:oci:@youroracle-tns-name</connection-url>--> <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <user-name>test</user-name> <password>test</password> <!-- Uses the pingDatabase method to check a connection is still valid before handing it out from the pool --> <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name> <!-- Checks the Oracle error codes and messages for fatal errors --> <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name> <!-- sql to call when connection is created <new-connection-sql>some arbitrary sql</new-connection-sql> --> <min-pool-size>5</min-pool-size><!—最小連接池?cái)?shù)目--> <max-pool-size>800</max-pool-size><!—最大連接池?cái)?shù)目--> <idle-timeout-minutes>5</idle-timeout-minutes><!—數(shù)據(jù)庫連接空閑時(shí)間,單位為分鐘,如果負(fù)載較大,可以設(shè)為5,如果一般,可以設(shè)為3--> <!—在從連接池里獲得一個(gè)連接之前先通過執(zhí)行一個(gè)簡單的SQL來校驗(yàn)connection的有效性--> <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql> </local-tx-datasource> </datasources> 如有多個(gè)數(shù)據(jù)源,則根據(jù)數(shù)據(jù)庫的類型,配置完成,部署在上述路徑下即可。 在代碼中可通過JNDI來從連接池中獲取連接。 …… Context ctx = new javax.naming.InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:jdbc/TestDataSource "); Connection con = ds.getConnection(); …… 2.2.4配置jboss Connector參數(shù) 更準(zhǔn)確的有效參數(shù)以及HTTP/1.1 Connector的配置。 請參閱: http://tomcat./tomcat-5.0-doc/config/ajp.html http://tomcat./tomcat-5.0-doc/config/http.html jboss3.2.3配置…/jbossweb-tomcat41.sar/META-INF/jboss-service.xml,jboss3.2.6配置…./jbossweb-tomcat50.sar/server.xml <!-- jboss3.2.3 jboss-service.xml --> <!-- A AJP 1.3 Connector on port 8009 --> <Connector className="org.apache.coyote.tomcat4.CoyoteConnector" address="${jboss.bind.address}" port="8009" minProcessors="5" maxProcessors="1000" enableLookups="true" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" useURIValidationHack="false" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/> <!-- jboss3.2.6 server.xml --> <!-- A AJP 1.3 Connector on port 8009 --> <Connector port="8009" address="${jboss.bind.address}" enableLookups="false" redirectPort="8443" debug="0" maxProcessors ="1000" minProcessors=”5” acceptCount="100" protocol="AJP/1.3"/> 簡單解釋一兩個(gè)參數(shù)(以tomcat5.0為準(zhǔn)): maxProcessors:最大并發(fā)數(shù)(連接數(shù)) minProcessors:初始化時(shí)啟動(dòng)的最小的進(jìn)程數(shù) acceptCount:在當(dāng)前connector的連接數(shù)達(dá)到最大時(shí),允許進(jìn)入等待隊(duì)列的數(shù)目 connectionTimeout:連接超時(shí)時(shí)間,單位為毫秒 enableLookups:是否允許通過DNS lookups,返回遠(yuǎn)程客戶端的機(jī)器名,如果設(shè)為false,則只能返回IP地址。該參數(shù)默認(rèn)為true,如果不需要,可以禁掉,設(shè)為false,可以提高服務(wù)器的性能 maxPostSize:設(shè)定允許透過POST上傳參數(shù)的字節(jié)數(shù),默認(rèn)是2M(2097152),如果想禁掉該限制,則將該值設(shè)為一個(gè)小于或等于0 的值,如0、-1,如果所部署的應(yīng)用中有上傳工作,則需注意該配置 port="8009":這個(gè)值要與上述”1.4.3.workers2.properties”中的port一致 redirectPort="8443":是制定如果用了SSL機(jī)制訪問服務(wù)的話,將會(huì)轉(zhuǎn)向的端口,請參閱SSL相關(guān)的配置文檔。 debug="0":這是配置日志級別的,可以忽略,因?yàn)樵撛O(shè)置依賴于log4j的配置文件的設(shè)置,server/all/conf/log4j.xml jboss配置入門(3)2007-11-01 10:452.2.5訪問URL如果是目錄,不想顯示該目錄下文件 修改…/server/all(or default)/deploy/….sar/web.xml jboss3.2.6/jboss4.0: 修改…/server/all(or default)/deploy/….sar/conf/web.xml 查看紫色斜體字符,設(shè)為false表示不列出目錄。默認(rèn)是設(shè)為true <servlet> <servlet-name>default</servlet-name> <servlet-class> org.apache.catalina.servlets.DefaultServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> 2.2.6設(shè)置某個(gè)應(yīng)用APP為默認(rèn)應(yīng)用 在你需要設(shè)為默認(rèn)應(yīng)用的那個(gè)war目錄,如上述Test.war/WEB-INF/ 下新建一個(gè)文件,文件名為jboss-web.xml,內(nèi)容如下: <jboss-web> <context-root>/</context-root> </jboss-web> 重啟服務(wù)后,以http://…./index.htm即可訪問部署于Test.war/下的應(yīng)用。 2.2.7配置數(shù)據(jù)源在APP應(yīng)用加載前有效(各相關(guān)服務(wù)加載完畢) http://www./index.html?module=bb&op=viewtopic&t=70600 http://www./jute/post/view?bid=9&id=129747&sty=1&tpg=1&age=0(中文) 以下簡略說明一下。 我們部署一個(gè)應(yīng)用(項(xiàng)目),應(yīng)用啟動(dòng)之初一般都進(jìn)行若干初始化吧,可能會(huì)從文件里、數(shù)據(jù)庫里獲取一些基礎(chǔ)數(shù)據(jù)或配置項(xiàng)等等。 如果從數(shù)據(jù)庫里獲取基礎(chǔ)數(shù)據(jù),則我們必須確保配置的那些數(shù)據(jù)源及相關(guān)的服務(wù)在我們應(yīng)用開始加載之前生效(已經(jīng)啟動(dòng)或加載完畢);也就是說,在我們部署應(yīng)用的一些初始化數(shù)據(jù)方法里要能正常獲取數(shù)據(jù)。如果你不做一些設(shè)置,僅僅是將配好的ds_oracle_test.xml扔到…/deploy/下,那么很遺憾的告訴你,你的應(yīng)用在初始化數(shù)據(jù)階段根本不能從連接池中獲取到連接,進(jìn)而獲取數(shù)據(jù)。如要達(dá)到你初始化數(shù)據(jù)的目的,請按照上面我提供的那個(gè)帖子連接去查看詳細(xì)的信息,下面我僅提供解決方法。 1)、配置數(shù)據(jù)源: <!--oracle_ds.xml--> <datasources> <local-tx-datasource> <jndi-name>jdbc/test</jndi-name> 2)確認(rèn)datasource依賴的服務(wù)名 透過http://wiki./wiki/Wiki.jsp?page=DependOnDataSource我們發(fā)現(xiàn): no-tx-datasource 通過上述描述可以知道,數(shù)據(jù)源配置不同,則對應(yīng)的依賴服務(wù)名信息也不同。 "jboss.jca:service=LocalTxCM,name=jdbc/test". 我修改了 ...sar/...war/WEB-INF/jboss-web.xml(如果不存在該文件,就創(chuàng)建它),然后運(yùn)行jboss,就可以在初始化時(shí)找到datasource,并正確獲取數(shù)據(jù)了!!! 配置文件如下: 2.2.8日志配置,配置log4j.xml 以下簡單羅列一下配置文件,具體的LOG4J的使用請參閱LOG4J文檔或JBOSS的文檔。 <appender name="ImportCharge" class="org.jboss.logging.appender.DailyRollingFileAppender"> <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> <param name="File" value="${jboss.server.home.dir}/log/importCharge.log"/> <param name="Append" value="true"/> <!-- Rollover at midnight each day --> <param name="DatePattern" value="'.'yyyy-MM-dd"/> <layout class="org.apache.log4j.PatternLayout"> <!-- The default pattern: Date Priority [Category] Message\n --> <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> </layout> </appender> <logger name="com.tt.bs.action.corp.ImportChargeFileAction"> <level value="DEBUG" /> <appender-ref ref="ImportCharge"/> </logger> <category name=" com.tt.bs.action.corp.UploadChargeFileAction "> <priority value="DEBUG" /> <appender-ref ref=" ImportCharge "/> </category> category或logger的寫法都可以,建議用最下面的寫法,這是文檔中的標(biāo)準(zhǔn)寫法。 上面的最后兩個(gè)代碼塊,表示所列的兩個(gè)ACTION將會(huì)引用“ImportCharge”這個(gè)appender,他們中的log.debug….的日志將會(huì)同時(shí)寫入“importCharge.log”文件。 還可以參考: http://wiki./wiki/Wiki.jsp?page=Logging jboss配置入門(4)2007-11-01 10:462.2.9配置contentType及charset,TOMCAT5.0下JSP統(tǒng)一配置 如:<%@ page contentType="text/html; charset=GBK" %> 或分開寫: – <%@ page contentType="MIME-Type" %> – <%@ page pageEncoding="Character-Set" %> 該語句的作用是“指定由JSP頁面生成的servlet生成的頁面的MIME類型及charset”。默認(rèn)的字符集是“ISO-8859-1”,如果不指定正確的charset,則我們的頁面如有中文,是會(huì)亂碼的。 我主要描述的是后者,charset,字符集。發(fā)生的場景位于一個(gè)頁面包含另一個(gè)頁面的情況下。 在JBOSS3.2.3 下集成的是tomcat4.0*,用的是JSP1.2/Servlet2.3標(biāo)準(zhǔn),要求JSP主頁面和所包含頁面中的“pageEncoding”必須一致,基于這一情況,我們一般做法是包含頁面不指定“pageEncoding”,它的屬性直接繼承父頁面即可。 在JBOSS3.2.6下,集成的是tomcat5.0*,要求每個(gè)JSP中必須有“pageEncoding”,換句話說,父頁面中的指定對子頁面沒有影響。 有兩個(gè)方法可解決該問題: 1、為每個(gè)頁面指定“pageEncoding”,顯然不可取! 2、用JSP2.0/Servlet2.4標(biāo)準(zhǔn),統(tǒng)一配置一下WEB.XML,解析JSP時(shí)統(tǒng)一用一個(gè)“pageEncoding”.這樣我們就不需要為每個(gè)JSP里加個(gè)聲明了。 法2的配置細(xì)節(jié)如下: 配置$JBOSS-HOME/server/default/deploy/jbossweb-tomcat50.sar/TestCrm.war/WEB-INF/web.xml,為下面紫色斜體內(nèi)容。 替換頭部的命名空間聲明: <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java./xml/ns/j2ee" xmlns:xsi="http://www./2001/XMLSchema-instance" xsi:schemaLocation="http://java./xml/ns/j2ee http://java./xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> ……… ……… <jsp-config> <jsp-property-group> <description>jsp encoding example</description> <display-name>JSPConfiguration</display-name> <url-pattern>*.jsp</url-pattern> <el-ignored>true</el-ignored> <page-encoding>GBK</page-encoding> <scripting-invalid>false</scripting-invalid> <include-prelude></include-prelude> <include-coda></include-coda> </jsp-property-group> </jsp-config> </web-app> 說明:<jsp-config>的配置說明 你可以在<jsp-property-group>中使用以下的配置元素: Element <el-ignored> <scripting-invalid> <page-encoding> <include-coda> <include-prelude> <is-xml>
可參見http://www./news/jsppart2.php?c=java jboss配置入門(5)2007-11-01 10:472.3 JVM最小、最大內(nèi)存的設(shè)定 修改$jboss/bin/run.conf文件,找到“#JAVA_OPTS=”,如果沒有該字符串,請?zhí)砑?,并去掉最前面?#8220;#”,修改該字符串(含雙引號(hào))為JAVA_OPTS="-server -Xms512m -Xmx512m”,這是分配JVM的最小和最大內(nèi)存,取決于硬件物理內(nèi)存的大小,建議均設(shè)為物理內(nèi)存的一半。 更詳細(xì)的介紹請參見http://java./docs/hotspot/VMOptions.html 2.4 OS字符集問題 內(nèi)容為: LANG="zh_CN.GB18030" LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN" SUPPORTED="zh_CN.GB18030:zh_CN:zh" SYSFONT="lat0-sun16" SYSFONTACM="8859-15" 2.5 JBOSS服務(wù)的啟動(dòng)、停止 啟動(dòng): 1、for linux: $JBOSS_HOME /bin/run.sh 2、for win :%JBOSS_HOME%/bin/run.bat 關(guān)閉/停止: 1、for linux: $JBOSS_HOME /bin/ shutdown.sh –S 2、for win :%JBOSS_HOME%/bin/ shutdown –S 可以用tail –f $JBOSS_HOME /server/default/log/server.log來查看jboss服務(wù)的啟動(dòng)或停止的信息。
本文來自CSDN博客,轉(zhuǎn)載請標(biāo)明出處:http://blog.csdn.net/icess_ma/archive/2007/12/22/1958341.aspx |
|