代码改变世界

CentOS6 下 JDK7 + jBoss AS 7 环境搭建

2012-12-24 00:52  TONY|小四  阅读(641)  评论(0编辑  收藏  举报

背景

由于工作需要,现有的web应用必须跑在linux+JDK+jBoss的环境下。早在写此文之前,公司已经成功部署JDK+jBoss在CentOS上,应用运行也正常,但唯一的问题是,验证码不能显示。具体报错为X11FontManager类不能初始化,找遍全网未找到相关问题的原因。大多数说不能访问X Server,使用JDK自带的图形处理类。即设置-Djava.awt.headless=true。全网这方面提议最多。虽然不太懂jBoss的机制,但看了standalone.sh脚本,显示已经开启了-Djava.awt.headless=true,因此我不觉得是这个问题。                    
standalone.sh运行时的提示信息,显示已经启用了-Djava.awt.headless=true ,因此可以忽略这个问题。                    
仔细查了一下X11FontManager类,后来得知是Open JDK的一个类。因此,我怀疑是因为安装的SUN JDK与Open JDK引起的混用问题导致的。带着这个疑问,重新安装了一台CentOS,先卸载默认的Open JDK,再安装SUN JDK,最终解决问题。                    
另外一个问题是,之前安装的环境每次都得用终端命令启动(standalone.sh)时需要加参数 ./standalone.sh -Djboss.bind.address=0.0.0.0”,才可以通过IP来访问jBosse服务器,百思不得其解,互联网的解决方案较多,但jBoss AS 7.1.1的解决方案没有。但最终还是找到了设置的配置文件,去掉了每次加参数启动的方式。                   

软件版本                
CentOS 6 + JDK 7u6 + jBoss AS 7.1.1                    
详细的部署过程:

  • 删除默认Open JDK:                   

个人建议使用X11 window窗口删除Open JDK,个人认为terminal终端使用起来较不方便。操作步骤:系统-》管理-》添加/删除软件                        
在查找栏输入“Open”点击查找,出来很多Open选项,找到关于Open JDK 相关的全部打勾,记得好像是3个,点击应用则删除了。                        
安装SUN JDK:

下载后直接双击安装,安装是傻瓜化的结束之后设置环境变量相关的信息,如下步骤:                        
在/etc/profile文件末尾添加内容如下:                           

export JAVA_HOME=/usr/java/jdk1.7.0_06

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin                                       

运行: source /etc/profile

update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_06/bin/java 60

update-alternatives --config java

显示如下信息:

   1           /usr/lib/jvm/jre-1.4.2-gcj/bin/java

   2           /usr/java/jdk1.7.0_03/bin/java

输入2敲回车

java -version

java version "1.7.0_06" Java(TM) SE Runtime Environment (build 1.7.0_03-b04) Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)

OK。JDK安装完毕

解压,将其文件夹放到/usr下面

运行/usr/jboss-as-7.1.1.Final/bin下的standalone.sh

此时在linux火狐浏览器下输入地址:http://127.0.0.1:8080/

可以看到jboss运行的页面

但此时,同一局域网的其它用户却不能访问您的jboss服务器。

 

需要做如下2个设置:

1.系统防火墙的设置 系统-》管理-》防火墙,选择可信接口,选择右边的eth+(网卡)打勾,最后点击应用。

2.jBoss配置文件设置 /usr/jboss-as-7.1.1Final/standalone/configuration 打开standalone.xml文件。

修改此节点address内容

<interfaces>

  <interface name="public">

    <inet-address value="${jboss.bind.address:0.0.0.0}"/>

  </interface>

</interfaces>


OK,重新启一下CentOS,直接运行standalone.sh吧;结束了。。。

作者:小四(tony.wang),转载时请保留出处。