配色: 字号:
jboss4配置
2015-09-07 | 阅:  转:  |  分享 
  
JBoss4.0.2的配置



一、下载与安装JBoss

系统环境:WindowXp系统

在本文中,我们下载的JBoss版本为:4.0.2.GA。

下载地址:redhat官网

http://www.jboss.org/jbossas/downloads

在如上的下载页中下载JBoss-4.0.2.GA.zip文件。



下载完成后,将其解压缩后即可完成安装,解压缩后将其放置到一个不带空格的目录(若

目录带有空格,例如:D:??ProgramFiles,日后可能会产生一些莫名的错误)例如:

E:"JBoss4.2.1。

同时在“我的电脑->属性->高级->环境变量->系统变量->创建->新建系统变量”中设置

名为JBOSS_HOME的环境变量,值为JBoss的安装路径(不区分大小写),如下图所示:



在此,JBoss的安装工作已经结束,可通过如下方式测试安装是否成功:

运行JBoss安装目录"bin"run.bat,如果窗口中没有出现异常,且出现



截屏中最后一行出现:2012-07-1215:36:34,625INFO[Server]JBoss(MXMicroKernel)

[4.0.2(build:CVSTag=JBoss_4_0_2date=200505022023)]Startedin14s:704ms字样,

则表示安装成功。

我们可以通过访问:http://localhost:8080/进入JBoss的欢迎界面,点击JBoss

Management下的JMXConsole可进入JBoss的控制台。

注:Java(TM)控制面板没安装好的话或其他原因都会导致Jboss的左侧控制台console无法正常显示

【foxfire可以使用】。

若启动失败,可能由以下原因引起:

1)JBoss所用的端口(8080,1099,1098,8083等)被占用。一般情况下为8080端口被占

用(例如,Oracle占用了8080端口),此时需要修改JBoss的端口,方法为进入JBoss安

装目录"server"default"deploy"jboss-web.deployer目录,修改其下的server.xml目录,在此

文件中搜索8080,将其改成你想要的端口即可(例如8088);

2)JDK安装不正确;

3)JBoss下载不完全(官网应该没错)。

二、JBoss的目录结构说明



目录描述

bin启动和关闭JBoss的脚本(run.bat为windows系统下的启动

脚本,shutdown.bat为windows系统下的关闭脚本)。

client客户端与JBoss通信所需的Java库(JARs)。

docs配置的样本文件(数据库配置等)。

docs/dtd在JBoss中使用的各种XML文件的DTD。

lib一些JAR,JBoss启动时加载,且被所有JBoss配置共享。(不

要把你的库放在这里)

server各种JBoss配置。每个配置必须放在不同的子目录。子目录的名字表

示配置的名字。JBoss包含3个默认的配

置:minimial,default和all,在你安装时可以进行选择。

server/allJBoss的完全配置,启动所有服务,包括集群和IIOP。

server/defaultJBoss的默认配置。在没有在JBoss命令行中指定配置名称时使

用。(我们下载的4.2.1版本默认采用此配置)。

server/default/confJBoss的配置文件。

server/default/dataJBoss的数据库文件。比如,嵌入的数据库,或者JBossMQ

server/default

/deploy

JBoss的热部署目录。放到这里的任何文件或目录会被JBoss自动部

署。EJB、WAR、EAR,甚至服务。

server/default/lib一些JAR,JBoss在启动特定配置时加载他

们。(default和minimial配置也包含这个和下面两个目录。)

server/default/logJBoss的日志文件。

server/default/tmpJBoss的临时文件。

server/default/tmpTomcat编译JSP文件时的工作目录

server/minimal仅加载启动JBoss所需的最少服务,如日志服务、JNDI和URL部署扫

描器(发现新的部署),不包含Web容器、EJB和JMS。

注:server/default/下目录data、log、tmp和work在JBoss安装后并不存在,当JBoss运行时

自动建立。

三、JBoss的配置

1.日志文件设置

若需要修改JBoss默认的log4j设置,可修改JBoss安装目录"server"default"conf下的log4j.xml文件,

在该文件中可以看到,log4j的日志输出在JBoss安装目录"server"default"log下的server.log文件中。对

于log4j的设置,读者可以在网上搜索更加详细的信息。



`

Jboss的log4j是用于记录Jboss系统服务日志的,如果你想把你的web工程日志和Jboss系统服务

日志分开或者是直接使用你web工程的log4j.properties配置文件,方法如下(主要是使用自己的web工

程的log4j.properties配置文件)

1.1把D:\jboss-4.0.2\server\default\conf里面的log4j.xml改名为jboss-log4j.xml

1.2编辑D:\jboss-4.0.5.GA\server\default\conf里面的jboss-service.xml找到








name="jboss.system:type=Log4jService,service=Logging"

xmbean-dd="resource:xmdesc/Log4jService-xmbean.xml">

resource:log4j.xml



true



60



把resource:log4j.xml改为resource:jboss-log4j.xml

1.3在自己的应用程序的WEB-INF目录中添加一个jboss-web.xml内容如下









ConfigTest:loader=ConfigTest.war

java2ParentDelegation=false









1.4把log4j.jar加到build-path(WEB-INFO/lib)下

1.5在自己的应用程序的WEB-INF目录中添加一个log4j.properties

#SetrootcategoryprioritytoINFOanditsonlyappendertoCONSOLE.

log4j.rootCategory=INFO,CONSOLE,LOGFILE



#SettheenterpriseloggercategorytoFATALanditsonlyappender

toCONSOLE.

log4j.logger.org.apache.axis.enterprise=FATAL,CONSOLE



#CONSOLEissettobeaConsoleAppenderusingaPatternLayout.

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

log4j.appender.CONSOLE.Threshold=DEBUG

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout

log4j.appender.CONSOLE.layout.ConversionPattern=%d[%l]%n[%p]

-%m%n



#LOGFILEissettobeaFileappenderusingaPatternLayout.

log4j.appender.LOGFILE=org.apache.log4j.DailyRollingFileAppender

log4j.appender.LOGFILE.File=D\:\\zxtwskp\\logs\\ahwskp.log

log4j.appender.LOGFILE.Append=true

log4j.appender.LOGFILE.Threshold=INFO

log4j.appender.LOGFILE.DatePattern=yyyyMMdd

log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout

log4j.appender.LOGFILE.layout.ConversionPattern=%-d{yyyy-MM-dd

HH:mm:ss}%p%t%c-%m%n

1.6使D:\JBoss-4.0.2\server\default\deploy\ahwskp.war下的程序使用自己配置的log4j.properties

配置文件


name="jboss.system:type=Log4jService,service=Logging"

xmbean-dd="resource:xmdesc/Log4jService-xmbean.xml">

resource:jboss-log4j.xml



true



60

false(Jboss中的log4j不记录工程中的

system.out日志)



这样配置后,工程中的systemout日志会通过web工程中的log4j打印出来(file,console)中显示出

来。

但是大部分内容还是通过Jboss中的log4j来记录的,web工程中的日志并没有全部使用了自己的log4j

需要再次研究

2.web服务的端口号的修改

这点在前文中有所提及,即修改JBoss安装目录"server"default"deploy"jboss-web.deployer下的

server.xml文件,内容如下:


maxThreads="250"maxHttpHeaderSize="8192"

emptySessionPath="true"protocol="HTTP/1.1"

enableLookups="false"redirectPort="8443"acceptCount="100"

connectionTimeout="20000"disableUploadTimeout="true"/>

将上面的8080端口修改为你想要的端口即可。重新启动JBoss后访问:http://localhost/:新设置的端

口,可看到JBoss的欢迎界面。

3.JBoss的安全设置

1)jmx-console登录的用户名和密码设置

默认情况访问http://localhost:8080/jmx-console就可以浏览jboss的部署管理的一些信息,不需要

输入用户名和密码,使用起来有点安全隐患。下面我们针对此问题对jboss进行配置,使得访问jmx-console

也必须要知道用户名和密码才可进去访问。步骤如下:

i)找到JBoss安装目录/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml文件,去掉

java:/jaas/jmx-console的注释。修改后的该文件内容为:





java:/jaas/jmx-console



ii)修改与i)中的jboss-web.xml同级目录下的web.xml文件,查找到节点,

去掉它的注释,修改后该部分内容为:







HtmlAdaptor

Anexamplesecurityconfigthatonlyallowsuserswiththe

roleJBossAdmintoaccesstheHTMLJMXconsolewebapplication



/

GET

POST





JBossAdmin





在此处可以看出,为登录配置了角色JBossAdmin。

iii)在第一步中的jmx-console安全域和第二步中的运行角色JBossAdmin都是在

login-config.xml中配置,我们在JBoss安装目录/server/default/config下找到它。查找名字为:

jmx-console的application-policy:






flag="required">


name="usersProperties">props/jmx-console-users.properties

props/jmx-console-roles.properties







在此处可以看出,登录的角色、用户等的信息分别在props目录下的jmx-console-roles.properties和

jmx-console-users.properties文件中设置,分别打开这两个文件。

其中jmx-console-users.properties文件的内容如下:

#Asampleusers.propertiesfileforusewiththeUsersRolesLoginModule

admin=admin

该文件定义的格式为:用户名=密码,在该文件中,默认定义了一个用户名为admin,密码也为admin

的用户,读者可将其改成所需的用户名和密码。

jmx-console-roles.properties的内容如下:

#Asampleroles.propertiesfileforusewiththeUsersRolesLoginModule

admin=JBossAdmin,HttpInvoker

该文件定义的格式为:用户名=角色,多个角色以“,”隔开,该文件默认为admin用户定义了JBossAdmin

和HttpInvoker这两个角色。

配置完成后读者可以通过访问:http://localhost:8088/jmx-console/,输入

jmx-console-roles.properties文件中定义的用户名和密码,访问jmx-console的页面。

2)web-console登录的用户名和密码设置

默认情况下,用户访问JBoss的web-console时,不需要输入用户名和密码,为了安全起见,我们通

过修改配置来为其加上用户名和密码。步骤如下:

i)找到JBoss安装目录

"server"default"deploy"management"console-mgr.sar"web-console.war"WEB-INF"jboss-web.xml文件,

去掉java:/jaas/web-console的注释,修改后的文件内容为:




PUBLIC"-//JBoss//DTDWebApplication2.3V2//EN"

"http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">





java:/jaas/web-console



jboss.admin:service=PluginManager



ii)打开i)中jboss-web.xml同目录下的web.xml文件,去掉部分的注释,修

改后的该部分内容为:







HtmlAdaptor

Anexamplesecurityconfigthatonlyallowsuserswiththe

roleJBossAdmintoaccesstheHTMLJMXconsolewebapplication



/

GET

POST





JBossAdmin





iii)打开JBoss安装目录"server"default"conf下的login-config.xml文件,搜索web-console,可找到

如下内容:






flag="required">


name="usersProperties">web-console-users.properties

web-console-roles.properties







在文件中可以看到,设置登录web-console的用户名和角色等信息分别在login-config.xml文件所在

目录下的web-console-users.properties和web-console-roles.properties文件中,但因为该目录下无这两个

文件,我们在JBoss安装目录"server"default"conf"props目录下建立这两个文件,文件内容可参考在

“jmx-console登录的用户名和密码设置”中的两个相应的配置文件的内容,web-console-users.properties

文件的内容如下:

#Asampleusers.propertiesfileforusewiththeUsersRolesLoginModule

admin=admin

web-console-roles.properties文件的内容如下:

#Asampleroles.propertiesfileforusewiththeUsersRolesLoginModule

admin=JBossAdmin,HttpInvoker

因为此时这两个文件不与login-config.xml同目录,所以login-config.xml文件需进行少许修改,修改

后的元素的内容为:






flag="required">


name="usersProperties">props/web-console-users.properties


name="rolesProperties">props/web-console-roles.properties







四、在MyEclipse中配置JBoss

1.本人使用的MyEclipse版本:8.5GA

2.JBoss版本:4.0.2GA

3.JDK版本:1.4

4.进入Window->Preferences->MyEclipse->ApplicationServers->JBoss4,进行如下设置:



5.选择JBoss4下的JDK设置所用的JDK.



6.选择服务开启模式



7.设置完成后,部署程序时,会发现多出JBoss4部署的选择,如下图所示:











同时在中展开,可看到JBoss4的启动图标。

五、配置数据源

1.先配置login-config.xml

D:\JBoss-4.0.2\server\default\conf\login-config.xml

在最后之前加上下面语句






code="org.jboss.resource.security.ConfiguredIdentityLoginModule"

flag="required">


name="principal">TaxSoftPool

zxt_wp

zxt_wp


name="managedConnectionFactoryName">jboss.jca:service=Loca

lTxCM,name=TaxSoftPool







2.以下三步及三步之后发生异常解决的方法

2.1配置数据源

jboss下配置JNDI数据源

1、${jboss_home}\server\default\deploy下面建立oracle-ds.xml:





TaxSoftPool

jdbc:oracle:thin:@192.168.13.24:1521:t

estdb


oracle.jdbc.driver.OracleDriver
class>

zxt_wp

zxt_wp

5

20

org.jboss.resource.adapter.jdbc.

vendor.OracleExceptionSorter




Oracle9i









2、应用程序的WEB-INF下面建立jboss-web.xml:




PUBLIC"-//JBoss//DTDWebApplication2.3V2//EN"

"http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">





TaxSoftPool

javax.sql.DataSource



java:/TaxSoftPool





3、修改应用程序的web.xml:



TaxSoftPool

javax.sql.DataSource

Container



三步搞定。

2.2以上默认绑定本地数据源

就是JBoss默认将数据源绑定在本地JNDI命名空间下,所以不能从JBoss

运行的JVM之外查找到该数据源,要解决这个问题就是配置JBoss将数据源

绑定在全局命名空间下;

这个在dataSource的配置文件中指定,以Oracle9i(hnwskp/bjwskp)为例,

就是在修改${JBOSS_HOME}/server/default/deploy/oracle-ds.xml

TaxSoftPool下面一行添加
xt>false

2.3异常处理

异常一

这个基础之上又报这个错误:

3.13:31:01,734INFO[STDOUT]javax.naming.NamingException:Couldn

otdereferenceobject[Rootexceptionisjavax.naming.NameNotFoundExc

eption:TaxSoftPoolnotbound]

解决方法是

注释掉:/D:/JBoss-4.0.2/server/default/deploy/oracle-ds.xml中的
-false-->

false

异常二

在hnwskp又发现一个问题,如果false
va-context>的字体不设颜色的话,还是得不到TaxSoftPool

太奇怪了!

false
-context>

异常三

在bjwskp却不需要(我来的是本地,可能整个为远程连接数据源的

设置没有起作用),想不通了!

待以后再研究

六、解决jar冲突问题

如果您部署的web工程war部署包中存在log4j.jar,common-logging.jar或更高版

本的jar,那样会和Jboss4.0.2中自带的log4j.jar,common-logging.jar会冲突,你需要删

除掉你工程中的这几个jar包,(为啥不删除jboss4.0.2中的log4j.jar,common-logging.jar

因为log4j.jar,common-logging他们要为Jboss4.0.2中的系统log4j.xml而服务,需要记录

Jboss4.0.2运行期间的系统日志)

异常现象展现:



七、解决jboss集成web工程异常问题

异常一

java.sql.SQLException:Tablealreadyexists:JMS_TRANSACTIONSin

statement[CREATECACHEDTABLEJMS_TRANSACTIONS]

原因:

CREATE_MESSAGE_TABLE=CREATECACHEDTABLEJMS_MESSAGES(MESSAGE

IDINTEGERNOTNULL,\

DESTINATIONVARCHAR(255)NOTNULL,TXIDINTEGER,TXOPCHAR(1),

\

MESSAGEBLOBOBJECT,PRIMARYKEY(MESSAGEID,DESTINATION))

CREATE_IDX_MESSAGE_TXOP_TXID=CREATEINDEXJMS_MESSAGES_TXOP_

TXIDONJMS_MESSAGES(TXOP,TXID)

CREATE_IDX_MESSAGE_DESTINATION=CREATEINDEXJMS_MESSAGES_DES

TINATIONONJMS_MESSAGES(DESTINATION)

CREATE_TX_TABLE=CREATECACHEDTABLEJMS_TRANSACTIONS(TXID

INTEGER,PRIMARYKEY(TXID))

CREATE_TABLES_ON_STARTUP=TRUE

在jboss启动的时候会加载D:\jboss-4.0.2-ehr\server\default\deploy\

jms\hsqldb-jdbc2-service.xml这个下面的语句,最后面的一句从字面就可

以看出其实就是在启动的时候是否创建表,如果设为FALSE,后台的log日

志就不会报出这样的异常来了

异常二

java.io.FileNotFoundException:D:\JBoss-4.0.2\server\default\depl

oy\jbossweb-tomcat55.sar\jsf-libs\myfaces-impl.jar

解决方法:http://moon-cake.iteye.com/blog/298035



献花(0)
+1
(本文系文梅文档首藏)