Linux環境下Weblogic部署應用的一些問題
最近在Linux下Weblogic中部署應用,碰到一些問題,糾結了好久,也查了好多資料,最後總算是成功解決了碰到的各種問題。
這裡記錄下遇到的一些問題和解決方法,整體做個總結。
問題一:org.hibernate.HibernateException: Errors innamed queries:
findTasks,findMessages,findTimers,findGroupsByUserAndGroupType, findProcessInstanceIds...
問題出現的原因是antlr-2.7.6.jar。解決方法:
新增antlr-2.7.6.jar到bea\wlserver_10.3\server\lib目錄下
修改startWeblogic.sh,在CLASSPATH前後新增為:
set PRE_CLASSPATH=%WL_HOME%\server\lib\antlr-2.7.6.jar; set CLASSPATH=%SAVE_CLASSPATH% set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%
如果是Linux環境,則修改startWeblogic.,在CLASSPATH前後新增為:
PRE_CLASSPATH="${WL_HOME}/server/lib/antlr-2.7.6.jar" CLASSPATH="${SAVE_CLASSPATH}" CLASSPATH="${PRE_CLASSPATH}:${CLASSPATH}"
問題二:<Unable to set the activation state to true for theapplication "tpfsr".
weblogic.application.ModuleException:java.lang.NoSuchMethodError:org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.<init>(Lorg/hibernate/validator/resourceloading/ResourceBundleLocator;)V
出現類似問題的原因,是沒有設定優先載入web應用內的jar包。解決方法:
在Weblogic.xml中新增配置
<container-descriptor> <prefer-web-inf-classes>true</prefer-web-inf-classes> </container-descriptor>
問題三:weblogic在不解壓war的情況下不能獲取應用路徑
因為Weblogic不對war包自動解壓。解決方法:
在Weblogic.xml中新增配置
<container-descriptor> <show-archived-real-path-enabled>true</show-archived-real-path-enabled> </container-descriptor>
看來對Weblogic的部署描述符不是很清楚,附個連結,多看多學習吧。