Weblogic 常用問題匯總(1)
部署到weblogic還是比較費勁的 ,不過基本上問題全是由于classloader順序的問題引起的。
主要是確保先加載項目中的jar包,防止項目jar包和weblogic中jar包沖突,絕對路徑加載,在spring配置文件中確保classpath執(zhí)行。
首先在web-inf底下添加weblogic.xml文件如下
三、兼容注解問題:Manifest文件夾及其下文件的重要性(文件test.txt無所謂)
這兩天部署了一個使用了convention約定插件的SSH項目到WebLogic10,打開后第一個登陸頁面,控制臺報錯
NullPointerException at org.apache.struts2.convention.ConventionUnknownHandler.handleUnknownActionMethod
問題的原因:weblogic10以后在加載項目時會把WEB-INF下的classes目錄打成jar包。并刪除classes目錄下的內(nèi)容。
struts2.18的Action注解要找jar包,需要jar包內(nèi)有META-INF/Manifest文件,內(nèi)容無所謂但要有,因此會造成一般的 struts項目放到Webligic上后注解不生效,報錯提示There is no Action mapped for namespace / and action name XXX。
解決辦法:
改動在src目錄下添加META-INF/Manifest文件,我是直接用解壓軟件打開項目的WAR包,拖入目錄META-INF,然后保存
在struts.xml添加如下設(shè)置:
<constant name="struts.convention.action.includeJars" value=".*_wl_cls_gen.*"/>
< constant name="struts.convention.action.fileProtocols" value="jar,zip" />
四、weblogic常用介紹(項目部署路徑及默認(rèn)端口修改)
這時會在E:\bea\user_projects\domains\mydomain\config下面的config.xml中生成我們剛剛部署的項目描述:
<app-deployment>
<name>WeblogicDemo</name>
<target>AdminServer</target>
<module-type>war</module-type>
<source-path>E:\WeblogicDemo</source-path>
<security-dd-model>DDOnly</security-dd-model>
</app-deployment>
表明配置成功。
weblogic的默認(rèn)端口是7001,如果想改端口的話在config.xml文件中的添加<listen-port>80</listen-port>。位置如下:
<server>
<name>AdminServer</name>
<listen-port>80</listen-port>
<listen-address></listen-address>
</server>
五、web.xml文檔版本太高配置出錯,解決辦法
Expected elements 'servlet-class@[url]http://java.sun.com/xml/ns/j2ee[/url] jsp-file@[url]http://java.sun.com/xml/ns/j2ee[/url] '
就是web.xml中的javaee版本原因,現(xiàn)在9.x的版本支持到j(luò)avaee2.4的版本,最簡單的解決方法就是把這些文件類型定義,命名空間,版本信息都刪除,只剩下如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。