我的JBoss使用笔记



一、JBOSS安装

1)
直接解压到无空格的目录路径下即可。
例如:
D:\C\Java\jboss-5.0.1.GA\

JBOSS的文件夹说明:
\bin 不解释
\server 主目录,下面分成default、all、minimal等几个“用户”

常用的是: \server\default\
该目录下,发布项目的目录是: \server\default\deploy\

2)
配置WINDOWS环境变量:
新建JBOSS_HOME,内容为jboss的安装路径,例如D:\C\Java\jboss-5.0.1.GA
然后将:%JBOSS_HOME%/bin 添加到Path变量中。

3)
验证安装是否成功:

运行\bin\run.bat即可启动。默认是8080端口,输入http://localhost:8080即可出现JBOSS的页面

关闭时,不要直接点击shutdown.bat,应该在cmd窗口运行如下指令:
    进入\bin目录,输入shutdown -S


4)安装Eclipse的JBOSS插件
用JBoss Tools,地址如下:
和其他Eclipse插件的安装方法一样,有安装说明。

5)在Eclipsenew一个JBOSS Application Server,然后在Server名称上双击,打开设置。 


二、JBOSS配置

1)修改HTTP端口号
例如要修改default用户的端口号:
找到\server\default\ deploy\jbossweb.sar\server.xml修改即可。

2)修改JVM参数
找到\bin\run.bat
从末尾开始找,找到如下:
set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx1024m -XX:MaxPermSize=256m


三、问题解决

1)启动后报错: invalid console appender config detected,Spring Bean无法初始化。
log4j问题,
在\server\default\conf\jboss-service.xml找到Log4jService,并增加 <attribute name="CatchSystemOut">false</attribute>,如下:
1
2
3
4
5
< mbean  code = "org.jboss.logging.Log4jService"  name = "jboss.system:type=Log4jService,service=Logging" >
   < attribute  name = "ConfigurationURL" >resource:log4j.xml</ attribute >
   < attribute  name = "CatchSystemOut" >false</ attribute >
   < attribute  name = "Log4jQuietMode" >true</ attribute >
</ mbean >
注意,该设置并不会关闭日志的打印。

2)java.lang.RuntimeException: mapped-name is required for MethodCacheAfterAdvi
我项目的web.xml里面有如下一段:

<context-param>

      <param-name>webAppRootKey</param-name>

      <param-value>zollty</param-value>

  </context-param>

删了貌似就行了。不过未测试,不知是不要这个原因,仅是猜测。

3)Linux命令行启动后,关闭窗口不停止服务器的方法
执行: nohup ./run.sh

Linux下JBOSS的配置与启动  


1、安装JDK
(略),可以不设置环境变量,直接解压出目录即可。

2、给JBOSS指定JDK_HOME
在run.conf中修改:

#

# Specify the location of the Java home directory. If set then $JAVA will

# be defined to $JAVA_HOME/bin/java, else $JAVA will be "java".

#

JAVA_HOME="/opt/java/jdk1.6.0_45"


#

# Specify the exact Java VM executable to use.

#

#JAVA=""


3、给JBOSS指定 JBOSS_HOME
修改/bin/run.sh文件,在前面加上如下两行
export JBOSS_HOME=/opt/app/jboss-5.1.0.GA
export PATH=$PATH:$JBOSS_HOME/bin
### $Id: run.sh 88978 2009-05-16 18:18:45Z alex.loubyansky@jboss.com $ ###

export JBOSS_HOME=/opt/app/jboss-5.1.0.GA
export PATH=$PATH:$JBOSS_HOME/bin

DIRNAME=`dirname $0`
PROGNAME=`basename $0`
GREP="grep"


JBOSS技术原理和常见问题解决方案


1、classLoader 类的加载问题

JBOSS的类加载策略 和 Tomcat是不一样的,所以可能导致 Tomcat下可以运行的程序,到JBOSS下面运行报错。

以Servlet init方法为例:

有以下代码:
        ClassLoader cl0 = ClassLoader.getSystemClassLoader();   // 为 sun.misc.Launcher$AppClassLoader
        System.out.println("00"+cl0);
        System.out.println("=====================================");
       
        ClassLoader cl1 = this.getClass().getClassLoader();   // 为Web Server 定义的 ClassLoader,用于加载 class 等资源
        System.out.println("11"+cl1);
        System.out.println("=====================================");
       
        ClassLoader cl2 = Thread.currentThread().getContextClassLoader();     // 为Web Server 定义的 ClassLoader,用于启动Servlet服务
        System.out.println("22"+cl2);
        System.out.println("=====================================");
       
       
        ClassLoader cl3 =  Thread.currentThread().getClass().getClassLoader();   // 为 null
        System.out.println("33"+cl3);
        System.out.println("=====================================");

得到的classLoader,在JBOSS下面为
00sun.misc.Launcher$ AppClassLoader@182f0db 
===================================== 
11BaseClassLoader@1a7b1af{vfszip:/D:/C/Java/jboss-5.0.1.GA/server/default/deploy/servlet-01EAR.ear/servlet-01.war/}    // 全称为 org.jboss.classloader.spi.base.BaseClassLoader
===================================== 
22org.jboss.web.tomcat.service.WebCtxLoader$ ENCLoader@1ed7aba   // 经测试,WebCtxLoader 为 BaseClassLoader 的子类

===================================== 
33null 
=====================================

在Tomcat下面为:
00sun.misc.Launcher$ AppClassLoader@ad3ba4 
===================================== 
11WebappClassLoader 
context: /servlet-01 
delegate: false 
repositories: 
/WEB-INF/classes/ 
----------> Parent Classloader: 
org.apache.catalina.loader.StandardClassLoader@182bcde 

===================================== 
22WebappClassLoader 
context: /servlet-01 
delegate: false 
repositories: 
/WEB-INF/classes/ 
----------> Parent Classloader: 
org.apache.catalina.loader.StandardClassLoader@182bcde 

===================================== 
33null 
=====================================

一、JBOSS安装

1)
直接解压到无空格的目录路径下即可。
例如:
D:\C\Java\jboss-5.0.1.GA\

JBOSS的文件夹说明:
\bin 不解释
\server 主目录,下面分成default、all、minimal等几个“用户”

常用的是: \server\default\
该目录下,发布项目的目录是: \server\default\deploy\

2)
配置WINDOWS环境变量:
新建JBOSS_HOME,内容为jboss的安装路径,例如D:\C\Java\jboss-5.0.1.GA
然后将:%JBOSS_HOME%/bin 添加到Path变量中。

3)
验证安装是否成功:

运行\bin\run.bat即可启动。默认是8080端口,输入http://localhost:8080即可出现JBOSS的页面

关闭时,不要直接点击shutdown.bat,应该在cmd窗口运行如下指令:
    进入\bin目录,输入shutdown -S


4)安装Eclipse的JBOSS插件
用JBoss Tools,地址如下:
和其他Eclipse插件的安装方法一样,有安装说明。

5)在Eclipsenew一个JBOSS Application Server,然后在Server名称上双击,打开设置。 


二、JBOSS配置

1)修改HTTP端口号
例如要修改default用户的端口号:
找到\server\default\ deploy\jbossweb.sar\server.xml修改即可。

2)修改JVM参数
找到\bin\run.bat
从末尾开始找,找到如下:
set JAVA_OPTS=%JAVA_OPTS% -Xms256m -Xmx1024m -XX:MaxPermSize=256m


三、问题解决

1)启动后报错: invalid console appender config detected,Spring Bean无法初始化。
log4j问题,
在\server\default\conf\jboss-service.xml找到Log4jService,并增加 <attribute name="CatchSystemOut">false</attribute>,如下:
1
2
3
4
5
< mbean  code = "org.jboss.logging.Log4jService"  name = "jboss.system:type=Log4jService,service=Logging" >
   < attribute  name = "ConfigurationURL" >resource:log4j.xml</ attribute >
   < attribute  name = "CatchSystemOut" >false</ attribute >
   < attribute  name = "Log4jQuietMode" >true</ attribute >
</ mbean >
注意,该设置并不会关闭日志的打印。

2)java.lang.RuntimeException: mapped-name is required for MethodCacheAfterAdvi
我项目的web.xml里面有如下一段:

<context-param>

      <param-name>webAppRootKey</param-name>

      <param-value>zollty</param-value>

  </context-param>

删了貌似就行了。不过未测试,不知是不要这个原因,仅是猜测。

3)Linux命令行启动后,关闭窗口不停止服务器的方法
执行: nohup ./run.sh

Linux下JBOSS的配置与启动  


1、安装JDK
(略),可以不设置环境变量,直接解压出目录即可。

2、给JBOSS指定JDK_HOME
在run.conf中修改:

#

# Specify the location of the Java home directory. If set then $JAVA will

# be defined to $JAVA_HOME/bin/java, else $JAVA will be "java".

#

JAVA_HOME="/opt/java/jdk1.6.0_45"


#

# Specify the exact Java VM executable to use.

#

#JAVA=""


3、给JBOSS指定 JBOSS_HOME
修改/bin/run.sh文件,在前面加上如下两行
export JBOSS_HOME=/opt/app/jboss-5.1.0.GA
export PATH=$PATH:$JBOSS_HOME/bin
### $Id: run.sh 88978 2009-05-16 18:18:45Z alex.loubyansky@jboss.com $ ###

export JBOSS_HOME=/opt/app/jboss-5.1.0.GA
export PATH=$PATH:$JBOSS_HOME/bin

DIRNAME=`dirname $0`
PROGNAME=`basename $0`
GREP="grep"


JBOSS技术原理和常见问题解决方案


1、classLoader 类的加载问题

JBOSS的类加载策略 和 Tomcat是不一样的,所以可能导致 Tomcat下可以运行的程序,到JBOSS下面运行报错。

以Servlet init方法为例:

有以下代码:
        ClassLoader cl0 = ClassLoader.getSystemClassLoader();   // 为 sun.misc.Launcher$AppClassLoader
        System.out.println("00"+cl0);
        System.out.println("=====================================");
       
        ClassLoader cl1 = this.getClass().getClassLoader();   // 为Web Server 定义的 ClassLoader,用于加载 class 等资源
        System.out.println("11"+cl1);
        System.out.println("=====================================");
       
        ClassLoader cl2 = Thread.currentThread().getContextClassLoader();     // 为Web Server 定义的 ClassLoader,用于启动Servlet服务
        System.out.println("22"+cl2);
        System.out.println("=====================================");
       
       
        ClassLoader cl3 =  Thread.currentThread().getClass().getClassLoader();   // 为 null
        System.out.println("33"+cl3);
        System.out.println("=====================================");

得到的classLoader,在JBOSS下面为
00sun.misc.Launcher$ AppClassLoader@182f0db 
===================================== 
11BaseClassLoader@1a7b1af{vfszip:/D:/C/Java/jboss-5.0.1.GA/server/default/deploy/servlet-01EAR.ear/servlet-01.war/}    // 全称为 org.jboss.classloader.spi.base.BaseClassLoader
===================================== 
22org.jboss.web.tomcat.service.WebCtxLoader$ ENCLoader@1ed7aba   // 经测试,WebCtxLoader 为 BaseClassLoader 的子类

===================================== 
33null 
=====================================

在Tomcat下面为:
00sun.misc.Launcher$ AppClassLoader@ad3ba4 
===================================== 
11WebappClassLoader 
context: /servlet-01 
delegate: false 
repositories: 
/WEB-INF/classes/ 
----------> Parent Classloader: 
org.apache.catalina.loader.StandardClassLoader@182bcde 

===================================== 
22WebappClassLoader 
context: /servlet-01 
delegate: false 
repositories: 
/WEB-INF/classes/ 
----------> Parent Classloader: 
org.apache.catalina.loader.StandardClassLoader@182bcde 

===================================== 
33null 
=====================================

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值