欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-26 12:14:59
...

解决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