一 配置变量
首先,要安装JDK,配置JAVA_HOME环境变量
其次,将下载的JBoss解压,即完成安装。(解压目录最好不要有空格,否则运行容易出现异常)
然后,配置JBOSS_HOME环境变量,值为JBoss的解压路径
最后,可以运行%JBOSS_HOME%\bin\目录中的run.bat运行JBoss;地址栏输入http://localhost:8080/会进入JBoss的欢迎界面
二 目录结构说明
目录 描述
bin 包含启动和关闭JBoss等脚本文件。
docs 配置的样本文件(包括数据库配置等)。
docs/dtd 在JBoss中使用的各种XML文件的DTD文档。
lib 一些JAR,JBoss启动时加载,且被所有JBoss配置共享。
client客户端与JBoss通信所需的Java库(JARs)。
server各种JBoss配置。每个配置必须放在不同的子目录。子目录名字表示配置名字。JBoss包含3个默认的配置:minimial,default,all。在安装时可以进行选择。
server/default/confJBoss的配置文件。
server/default/dataJBoss的数据库文件。比如,嵌入的数据库或者JBossMQ。
server/default/deploy JBoss的热部署目录。放到这里的任何文件或目录会被JBoss自动部署。包括EJB,WAR,EAR甚至服务。
server/default/lib一些JAR,JBoss在启动特定配置时加载它们。
server/default/logJBoss的日志文件。
server/default/tmpJBoss的临时文件。
三 JBoss的配置
1 web服务端口号的修改
这点在前文中有所提及,即修改JBoss安装目录"server"default"deploy"jboss-web.deployer下的server.xml文件,内容如下:
- < Connector port="8080" address="${jboss.bind.address}" 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的欢迎界面。
2 JBoss的安全设置
(1)jmx-console登陆的用户名和密码设置
在%JBOSS_HOME%/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml文件中
将注释文档去掉修改为:
- < jboss-web>
- < security-domain>java:/jaas/jmx-console< /security-domain>
- < /jboss-web>
在同目录下web.xml,查找< security-constraint/>节点,修改为:
- < security-constraint>
- < web-resource-collection>
- < web-resource-name>HtmlAdaptor< /web-resource-name>
- < description>An example security config that only allows user with the role
- JBossAdmin to access the HTML JMX console web application
- < /description>
- < url-pattern>/*< /url-pattern>
- < http-method>GET< /http-method>
- < http-method>POST< /http-method>
- < /web-resource-collection>
- < auth-constraint>
- < role-name>JBossAdmin< /role-name>
- < /auth-constraint>
- < /security-constraint>
在jmx-console安全域和运行角色JBossAdmin都是在login-config.xml中配置,在%JBOSS_HOME%/server/default/conf下找到它,查找application-policy name = "jmx-console",修改为
- < application-policy name = "jmx-console">
- < authentication>
- < login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
- flag = "required">
- < module-option name="usersProperties">props/jmx-console-users.properties
- < /module-option>
- < module-option name="rolesProperties">props/jmx-console-roles.properties
- < /module-option>
- < /login-module>
- < /authentication>
- < /application-policy>
在此处可以看出,登录的角色、用户等的信息分别在props目录下的jmx-console-roles.properties和jmx-console-users.properties文件中设置,分别打开这两个文件。
其中jmx-console-users.properties文件的内容如下:
# A sample users.properties file for use with the UsersRolesLoginModule
admin=admin
该文件定义的格式为:用户名=密码,在该文件中,默认定义了一个用户名为admin,密码也为admin的用户,读者可将其改成所需的用户名和密码。
jmx-console-roles.properties的内容如下:
# A sample roles.properties file for use with the UsersRolesLoginModule
admin=JBossAdmin, HttpInvoker
该文件定义的格式为:用户名=角色,多个角色以“,”隔开,该文件默认为admin用户定义了JBossAdmin和HttpInvoker这两个角色。
配置完成后读者可以通过访问: http://localhost:8088/jmx-console/ ,输入jmx-console-roles.properties文件中定义的用户名和密码,访问jmx-console的页面。
(2)web-console登陆的用户名和密码设置
找到%JBOSS_HOME%/server/default/deploy/management/console-mgr.sar/web-console.war/WEB-INF下的jboss-web.xml文件,去掉< security-domain>java:/jaas/web-console< /security-domain>的注释。
在同目录下的web.xml文件中去掉< security-constraint>部分的注释。
在%JBOSS_HOME%/server/default/conf下的login-config.xml文件中查找application-policy name = "web-console"
在文件中可以看到,设置登录web-console的用户名和角色等信息分别在login-config.xml文件所在目录下的web-console-users.properties和web-console- roles.properties文件中,但因为该目录下无这两个文件,我们在JBoss安装目录"server"default"conf"props目录下建立这两个文件,文件内容可参考在“jmx-console登录的用户名和密码设置”中的两个相应的配置文件的内容。
web-console-users.properties文件的内容如下:
# A sample users.properties file for use with the UsersRolesLoginModule
admin=admin
web-console-roles.properties文件的内容如下:
admin=JBossAdmin,HttpInvoker
因为此时这两个文件不与login-config.xml同目录,所以login-config.xml文件需进行少许修改
- < module-option name="usersProperties">props/web-console-users.properties
- < /module-option>
- < module-option name="rolesProperties">props/web-console-roles.properties
- < /module-option>
1、访问端口配置
编辑%jboss-4.0.2%\server\default\deploy\jbossweb-tomcat55.sar\server.xml
将8080改为你希望访问的端口(8888)
<!-- A HTTP/1.1 Connector on port 8080 -->
<Connector port="8888" address="${jboss.bind.address}"
maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
emptySessionPath="true"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
2、虚拟目录配置:
编辑%jboss-4.0.2%\server\default\deploy\jbossweb-tomcat55.sar\server.xml
在</Host>之前增加:
<Context path="/test" docBase="F:\\test" debug="1" reloadable="true" override="true" crossContext="true"/>
其中path 为虚拟目录名,docBase为硬盘路径(可为绝对路径)reloadable为类变更时是否重新加载
3、解决附件汉字问题:
a.编辑
%jboss-4.0.2%\server\default\deploy\jbossweb-tomcat55.sar\server.xml
在Connector 属性最后增加:URIEncoding="UTF-8"
<!-- A HTTP/1.1 Connector on port 8080 -->
<Connector port="8888" address="$"
maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
emptySessionPath="true"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
b.页面处理
将生成的附件名称进行编码转换:
<%
String n2="Redhat9中文官方文档.rar";
n2=java.net.URLEncoder.encode(n2,"UTF-8");
%>
<a href="Redhat9">http://192.168.1.112:8080/zlsf/<%=n2%>">Redhat9中文官方文档</a>
4、解决汉字问题。
在:项目/WEB-INFweb.xml中增加:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
其中
<param-value>GBK</param-value> 这里要设置GBK,而不是UTF8。为了解决标单提交后的中文问题。
filters.SetCharacterEncodingFilter 类文件在TOMCAT lib 目录下filters.jar文件中。
你只需要把filters.jar放入你应用目录下的LIB中即可。
5、虚拟主机配置
a.编辑
%jboss-4.0.2%\server\default\deploy\jbossweb-tomcat55.sar\server.xml
在 </Engine>之前添加:
<Host name="www.ytiic.com">
<Alias>www2.ytiic.com</Alias>--〉别名,通过这个名字可以访问www.ytiic.com下的应用。
<Alias>ytiic.com</Alias>--〉同上
<!-- Default context parameters -->
<DefaultContext cookies="true" crossContext="true" override="true"/>
</Host>
b.在这个目录下:%jboss-4.0.2%\server\default\deploy
创建一个目录:test.war(你的虚拟目录加.war)之后在其下创建WEB-INF目录
在WEB-INF下创建:jboss-web.xml 文件,内容如下:
<jboss-web>
<context-root>/</context-root>
<virtual-host>www.ytiic.com</virtual-host>
</jboss-web>
虚拟主机配置完成!
当jboss启动后,会自动对应2个配置文件中的虚拟主机名。
6、数据库配置:
去这个 %jboss-4.0.2%\docs\examples\jca 目录找一个你想用的数据库文件:
拷贝到%jboss-4.0.2%\server\default\deploy 下,打开编辑。
在%jboss-4.0.2%\server\default\deploy目录下自己建了一个文件:
test这个名字自己定义,后面需要保留。
test-ds.xml
内容如下:
< xml version="1.0" encoding="UTF-8" >
<!-- ===================================================================== -->
<!-- -->
<!-- JBoss Server Configuration -->
<!-- -->
<!-- ===================================================================== -->
<!-- $Id: mssql-ds.xml,v 1.3 2004/09/15 14:37:40 loubyansky Exp $ -->
<!-- ======================================================================-->
<!-- New ConnectionManager setup for Microsoft SQL Server 2000 driver -->
<!-- You may download the latest Microsoft JDBC driver from *Microsoft* -->
<!-- http://msdn.microsoft.com/downloads/default.asp url=/downloads/sample.asp url=/MSDN-
FILES/027/001/779/msdncompositedoc.xml&frame=true -->
<!-- ===================================================================== -->
<datasources>
<local-tx-datasource>
<jndi-name>test</jndi-name>
<connection-url>jdbc:mysql://192.168.1.1/test</connection-url>
<driver-class>org.gjt.mm.mysql.Driver</driver-class>
<user-name>root</user-name>
<password>password</password>
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- The minimum connections in a pool/sub-pool. Pools are lazily constructed on first use -->
<min-pool-size>5</min-pool-size>
<!-- The maximum connections in a pool/sub-pool -->
<max-pool-size>20</max-pool-size>
<!-- sql to call on an existing pooled connection when it is obtained from pool
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- The time before an unused connection is destroyed -->
<!-- NOTE: This is the check period. It will be destroyed somewhere between 1x and 2x this timeout after last use-->
<!-- TEMPORARY FIX! - Disable idle connection removal, HSQLDB has a problem with not reaping threads on closed connections -->
<idle-timeout-minutes>1</idle-timeout-minutes>
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>mysql</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
数据库配置完成。
连接数据源名为:java:/test
=================================
所有配置完成!!
注意问题:
(1)、你的应用下的LIB库不要和%jboss-4.0.2%\server\default\lib 下的类库相冲突。
(2)、数据库配置参考:%jboss-4.0.2%\docs\examples\jca 下的文件
7、禁止文件目录列表
编辑%jboss-4.0.2%\server\default\deploy\jbossweb-tomcat55.sar\conf\web.xml
把listing设置为false
<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>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
5、防止LOG文件无限制的扩大
在F:\JBoss\server\default\conf目录下打开jboss-log4j.xml文件,在下语句块下:
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/server.log"/>
<param name="Append" value="false"/>
增加以下语句:
<param name="MaxFileSize" value="10240KB"/>
<param name="MaxBackupIndex" value="1"/>
其中文件的最大值和备份的数量可以根据实际情况而改变