背景 由于工作需要,现有的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”结尾的文件;具体地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1637583.html 下载后直接双击安装,安装是傻瓜化的结束之后设置环境变量相关的信息,如下步骤: 在/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(http://www.jboss.org/jbossas/downloads/) 解压,将其文件夹放到/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吧;结束了。。。 (责任编辑:IT) |