JBoss的系列配置

来源:互联网 发布:web餐饮管理系统源码 编辑:程序博客网 时间:2024/05/05 22:49
 

一 配置变量

首先,要安装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文件,内容如下:

  1. < Connector port="8080" address="${jboss.bind.address}" maxThreads="250"   
  2.   maxHttpHeaderSize="8192" emptySessionPath="true" protocol="HTTP/1.1" 
  3.   enableLookups="false" redirectPort="8443" acceptCount="100" 
  4.   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文件中
将注释文档去掉修改为:

  1. < jboss-web> 
  2.   < security-domain>java:/jaas/jmx-console< /security-domain> 
  3.    < /jboss-web> 

在同目录下web.xml,查找< security-constraint/>节点,修改为:

  1.    < security-constraint> 
  2. < web-resource-collection> 
  3.   < web-resource-name>HtmlAdaptor< /web-resource-name> 
  4.   < description>An example security config that only allows user with the role   
  5.  JBossAdmin to access the HTML JMX console web application  
  6.   < /description> 
  7.   < url-pattern>/*< /url-pattern> 
  8.   < http-method>GET< /http-method> 
  9.   < http-method>POST< /http-method> 
  10. < /web-resource-collection> 
  11. < auth-constraint> 
  12.   < role-name>JBossAdmin< /role-name> 
  13. < /auth-constraint> 
  14.    < /security-constraint> 

在jmx-console安全域和运行角色JBossAdmin都是在login-config.xml中配置,在%JBOSS_HOME%/server/default/conf下找到它,查找application-policy name = "jmx-console",修改为

  1. < application-policy name = "jmx-console"> 
  2.  < authentication> 
  3.    < login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" 
  4.  flag = "required"> 
  5.    < module-option name="usersProperties">props/jmx-console-users.properties  
  6.    < /module-option> 
  7.    < module-option name="rolesProperties">props/jmx-console-roles.properties  
  8.    < /module-option> 
  9.  < /login-module> 
  10.     < /authentication> 
  11.   < /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文件需进行少许修改

  1. < module-option name="usersProperties">props/web-console-users.properties  
  2.  < /module-option> 
  3.  < module-option name="rolesProperties">props/web-console-roles.properties  
  4.  < /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"/>

其中文件的最大值和备份的数量可以根据实际情况而改变

 

 

原创粉丝点击