CentOS6 下 JDK7 + jBoss AS 7 环境搭建

由于工作需要,现有的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:

下载CentOS可用的JDK版本,由于CentOS的安装程序以“*.rpm”结尾,因此在“Oracle”公司下载linux x86(x64)视系统版本,选择下载64位或32位,并且以“*.rpm”结尾的文件;具体地址:

下载后直接双击安装,安装是傻瓜化的结束之后设置环境变量相关的信息,如下步骤:

在/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安装完毕

至jBoss下载jBoss AS 7.1.1 final()

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

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


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

可以看到jboss运行的页面

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

需要做如下2个设置:

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

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

修改此节点address内容
<interfaces>
<interface>
<inet-address value="${jboss.bind.address:0.0.0.0}"/>
</interface>
</interfaces>

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/c073dfea87ed80ab4829a0ff8a2df5e5.html