Chinaunix首页 | 论坛 | 博客
  • 博客访问: 392153
  • 博文数量: 80
  • 博客积分: 2682
  • 博客等级: 少校
  • 技术积分: 907
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-16 09:55
文章分类

全部博文(80)

文章存档

2012年(80)

分类: 系统运维

2012-05-10 13:12:02

weblogic 不能显示验证码图片
java.lang.NoClassDefFoundError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:141)
    at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
    at java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1041)



修改文件:startWebLogic.sh ,增加下面红色字体部分:

点击(此处)折叠或打开

  1. # 32 位
  2. JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.awt.headless=true"

  3. # HP-UX 64位 B.11.31 U ia64 (tf)
  4. JAVA_OPTIONS="${JAVA_OPTIONS} -d64 -Djava.awt.headless=true"
第二种书写方式:也可以直接加到文件末尾行

点击(此处)折叠或打开

  1. ${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Djava.awt.headless=true -Dweblogic.webservice.i18n.charset=utf-8 -Dweblogic.Name=${SERVER_NAME} -Dweblogic.ProductionModeEnabled=${PRODUCTION_MODE} -Djava.security.policy="${WL_HOME}/server/lib/weblogic.policy" weblogic.Server
解决WEBLOGIC的中文乱码  -Dweblogic.webservice.i18n.charset=utf-8


  2. 多  MEM_ARGS="-Xms512m -Xmx512m -XX:MaxPermSize=128m"
 
 3. 多  -Dweblogic.webservice.i18n.charset=utf-8    






1. 在产品模式下不用输入用户名密码自动启动

修改文件:startWebLogic.sh,增加下面红色字体部分:



SAVE_CLASSPATH=""



trap 'stopAll' 1 2 3 15



WLS_USER=”weblogic”

WLS_PW=”weblogic123”







if [ "${PRODUCTION_MODE}" = "true" ] ; then

WLS_DISPLAY_MODE="Production"

else

WLS_DISPLAY_MODE="Development"

fi



if [ "${WLS_USER}" != "" ] ; then

JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.management.username=${WLS_USER}"

fi



if [ "${WLS_PW}" != "" ] ; then

JAVA_OPTIONS="${JAVA_OPTIONS} -Dweblogic.management.password=${WLS_PW}"

fi



2. 控制台中文输出乱码问题

修改文件:startWebLogic.sh,增加下面红色字体部分

if [ "${WLS_REDIRECT_LOG}" = "" ] ; then

echo "Starting WLS with line:"

echo "${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Djava.security.policy=${WL_HOME}/server/l

ib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}"

${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Dfile.encoding=GBK -Djava.security.policy=${WL_

HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS}

else

echo "Redirecting output from WLS window to ${WLS_REDIRECT_LOG}"

${JAVA_HOME}/bin/java ${JAVA_VM} ${MEM_ARGS} -Dweblogic.Name=${SERVER_NAME} -Dfile.encoding=GBK -Djava.security.policy=${WL_

HOME}/server/lib/weblogic.policy ${JAVA_OPTIONS} ${PROXY_SETTINGS} ${SERVER_CLASS} >"${WLS_REDIRECT_LOG}" 2>&1

fi

3. 修改启动时内存大小

修改文件:setDomainEnv.sh

修改前:

if [ "${JAVA_VENDOR}" = "Sun" ] ; then

WLS_MEM_ARGS_64BIT="-Xms256m -Xmx512m"

export WLS_MEM_ARGS_64BIT

WLS_MEM_ARGS_32BIT="-Xms256m –Xmx512m"

export WLS_MEM_ARGS_32BIT

else

WLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m"

export WLS_MEM_ARGS_64BIT

WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m"

export WLS_MEM_ARGS_32BIT

fi

修改后:

if [ "${JAVA_VENDOR}" = "Sun" ] ; then

WLS_MEM_ARGS_64BIT="-Xms256m -Xmx512m"

export WLS_MEM_ARGS_64BIT

WLS_MEM_ARGS_32BIT="-Xms512m –Xmx512m"

export WLS_MEM_ARGS_32BIT

else

WLS_MEM_ARGS_64BIT="-Xms512m -Xmx512m"

export WLS_MEM_ARGS_64BIT

WLS_MEM_ARGS_32BIT="-Xms512m -Xmx512m"

export WLS_MEM_ARGS_32BIT

fi

4. 编写重启weblogic的脚本()

功能说明:重启时停止服务,自动备份输出日志到logs目录下,启动服务

新建文件: restart.sh

内容:

sh ./bin/stopWebLogic.sh

mv systemLog.log ./logs/ systemLog.log.`date '+%Y%m%d%H%M'`

nohup ./startWebLogic.sh > systemLog.log &

tail -f systemLog.log

修改文件的执行权限:chmod +x restart.sh



5. Weblogic报出java.lang.OutOfMemoryError: PermGen space异常。



问题原因:Because the Classloader (and the Class objects it loaded) cannot be recycled. They are stored in the permanent heap generation by the JVM, and when you redepoy a new class loader is created, which loads another copy of all these classes. This can cause OufOfMemoryErrors eventually. 由于SUN JVM对permanent heap generation 区域的内容不做垃圾回收造成应用动态Load class文件过多引起的OutOfMemory错误。频繁deploy会导致weblogic报permGen 错误。

修改文件:setDomainEnv.sh

解决方案:(修改-XX:MaxPermSize由原来的128M调整为256M或512M)

MEM_PERM_SIZE="-XX:PermSize=48m"

export MEM_PERM_SIZE



MEM_MAX_PERM_SIZE="-XX:MaxPermSize=512m"

export MEM_MAX_PERM_SIZE

6. weblogic 部署出现too many file opens

问题原因: linux系统对用户打开太多文件的数量有限制,可以通过ulimit –a 查看到open files (-n) 1024。

修改文件:/etc/security/limits.conf,commEnv.sh(weblogic的公用环境设置文件)

修改内容:将文件中打开文件数限制从原来的1024调整为更大。

文件中增加下面内容:(user1 为对应的系统用户名)

#

#



#* soft core 0

#* hard rss 10000

#@student hard nproc 20

#@faculty soft nproc 20

#@faculty hard nproc 50

#ftp hard nproc 0

#@student - maxlogins 4

User1 hard nofile 65535

User1 soft nofile 65535





commEnv.sh文件的修改:(下面这段脚本没太看懂,在上面的方案还不好使得情况下使用下面的修改)

# limit the number of open file descriptors

resetFd() {

if [ ! -n "`uname -s |grep -i cygwin || uname -s |grep -i windows_nt || /

uname -s |grep -i HP-UX`" ]

then

maxfiles=`ulimit -H -n`

if [ "$?" = "0" -a `expr ${maxfiles} : '[0-9][0-9]*$'` -eq 0 ]; then

ulimit -n 65535

fi

fi

}

7.Weblogic部署Hibernate3出现ClassNotFoundException: org.hibernate.hql.ast.HqlToken的问题。

问题原因:WebLogic已经集成了antlr包 ,在使用Hibernate时,会先加载其本身所带的antlr包, 所以会和Hibernate 捆绑的antlr包冲突。可以通过修改hibernate的hibernate.query.factory_class参数为org.hibernate.hql.classic.ClassicQueryTranslatorFactory,但是这样会导致部分复杂的sql服务在hibernate下使用。下面介绍不调整这个参数的两种解决方案。

解决方案:(下面的解决方案不一定起作用,具体问题具体分析)

①:修改应用的weblogic.xml文件:增加下面问容,让系统启动优先加载应用中使用的lib包。



-1

true

true



②:上传antlr-2.7.6.jar到${DOMAIN_HOME}/lib/,修改domain的setDomainEnv.sh文件

JAVA_PROPERTIES="${JAVA_PROPERTIES} ${CLUSTER_PROPERTIES}"

export JAVA_PROPERTIES



# Clear the pre_classpath here in case an application template wants to set it before the larger pre_classpath is invoked below



PRE_CLASSPATH="${DOMAIN_HOME}/lib/antlr-2.7.6.jar:"

export PRE_CLASSPATH
阅读(12200) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~