`

Jboss自启动和优化+解决captcha在linux下不显示

    博客分类:
  • java
阅读更多

解决captchalinux下不显示:

 

提示信息:"Can't connect to X11 window server"这是由于Linux的图形处理需要一个X Server服务器。

 

解决办法:

 

1.如果服务器上安装有图形界面,可以通过设置环境变量:DISPALY=127.0.0.1:0.0解决。

 

2. 如果没有安装图形界面,可以在Java运行时加上参数:-Djava.awt.headless=true

 

3. 使用PJA库来代替本地图形处理库。

因为解决方法13依赖系统环境和第三方类库,所以我们使用第2种方案,使用JDK自带的图形处理服务,具体做法如下:

 

VI编辑Jboss目录bin目录下的run.conf

JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
run.conf最后一行添加就可以了,Tomcat or Weblogic解决方法类似。

 

另外,如果抛出HeadlessException, simple captchabugs里有描述。

其实并不复杂,因为引用了GraphicsEnvironmentGraphicsDevice,找不到linux图形处理环境,而我们前面已经选择使用JDK自带的图形处理服务,所以只要注解就行了:
DefaultWordRenderer.java 里 包路径为
/com/newegg/lab/common/captcha/text注释掉下面3行代码

Java代码

  1. //      GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();   
  2.                
  3. //      GraphicsDevice gd = ge.getDefaultScreenDevice();   
  4. //      GraphicsConfiguration gc = gd.getDefaultConfiguration(); 

重新编译后打包,测试后成功。

或者以后升级到最新版,也许captcha开发者会修正此Bug

 

 

 

 

 

 

Jboss for Linux 开机自启动配置:

例:

1,下载Jboss-4.2.2.GA.zip

2,解压缩unzip Jboss-4.2.2.GA.zip

3,拷贝到指定的目录cp Jboss-4.2.2.GA /usr/java/jboss-4.2.2.GA

4,拷贝jboss启动文件到系统启动目录下

cp /usr/java/jboss-4.2.2.GA/bin/jboss_init_redhat.sh /etc/rc.d/init.d/jboss

备注:jboss_init_redhat.sh 是针对Redhat的脚本,bin目录下还有针对其他OS

5增加jboss用户:(如果下面JBOSS_USER设置为root,即这步可以忽略)
groupadd -g 200 jboss
useradd -u 200 -g jboss jboss

 

6,编辑vi /etc/rc.d/init.d/jboss

为了使jboss适应所有ip,在文件开头加JBOSS_HOST=${JBOSS_HOST:-"0.0.0.0"}

修改对应的java_path,jboss_home,JBOSS_USER

如下:

JBOSS_HOST=${JBOSS_HOST:-"0.0.0.0"}

JBOSS_HOME=${JBOSS_HOME:-"/usr/java/jboss-4.2.2.GA"}

 

#define the user under which jboss will run, or use 'RUNASIS' to run as the current user

JBOSS_USER=${JBOSS_USER:-"root"}

 

#make sure java is in your path

JAVAPTH=${JAVAPTH:-"/usr/java/jdk1.6.0_14/bin"}

 

JBOSS_CONF=${JBOSS_CONF:-"default"}(部署目录的设置,有all,default,minimal三种,如果是jboss集群需设置为all)

7,配置系统自启动文件(两种方法,选一种即可)

1JBoss启动sh文件设定

# ln -s /etc/init.d/jboss /etc/rc0.d/K20jboss

# ln -s /etc/init.d/jboss /etc/rc3.d/S80jboss

# ln -s /etc/init.d/jboss /etc/rc5.d/S80jboss

3.设置运行权限

# chmod -f 755 /etc/init.d/jboss

 

2)修改rc.local 

    编辑vi /etc/rc.d/rc.local 添加下面这一行

    /etc/rc.d/init.d/jboss start

配置完成,重新启动即可。

如果想要把Jboss配置成服务,编辑vi /etc/rc.d/init.d/jboss,修改如下相应的地方

#define the classpath for the shutdown class

JBOSSCP=${JBOSSCP:-"$JBOSS_HOME/bin/shutdown.sh -S"}

 

#define the script to use to start jboss

JBOSSSH=${JBOSSSH:-"$JBOSS_HOME/bin/run.sh -c $JBOSS_CONF -b $JBOSS_HOST"}

 

JBOSS_CMD_START="cd $JBOSS_HOME/bin; $JBOSSSH"

JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"cd $JBOSS_HOME/bin; $JBOSSCP"}

配置完成后即可用serivce jboss start启动,service jboss stop停止。

 

 

Jboss for Linux配置优化:

1优化JBOSS内存配置:(服务器物理内存以2G为例

vi /usr/java/jboss-4.2.2.GA/bin/run.conf

 

if [ "x$JAVA_OPTS" = "x" ]; then

   JAVA_OPTS="-Xms512m Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000"

fi

 

这些是配置JBoss运行的JVM优化参数。
 
-Xms512m 初始的java内存堆大小 512M
-Xmx1024m 最大的java内存堆大小 1024M
-XX:PermSize=256m GC预留的内存,如果你的应用有大量的Class被动态载入或卸载,你应该把这个参数设大些
-XX:MaxPermSize=256m 最大的GC预留内存
-Dsun.rmi.dgc.client.gcInterval=3600000 RMI客户端GC发生周期的设定
-Dsun.rmi.dgc.server.gcInterval=3600000 RMI服务端GC发生周期的设定
 

2,去掉和应用无关的部署,加快jboss运行速度

bsh-deployer.xml

client-deployer-service.xml 

ear-deployer.xml

ejb-deployer.xml

http-invoker.sar

jboss-bean.deployer

jboss-ws4ee.sar

jms

jsr88-service.xml  

schedule-manager-service.xml

scheduler-service.xml

sqlexception-service.xml

uuid-key-generator.sar

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics