myeclipse+weblogic10的配置,配置成功?


運行中可能失敗,由于weblogic10不穩定,重啟機器后可以使用了?


web工程使用到hibernate3時可能出現問題?

ClassNotFoundException: org.hibernate.hql.ast.HqlToken?

參考http://blog.chinajavaworld.com/entry.jspa?id=829?

把本地的antlr.jar包考到weblogic.jar所在目錄,在myeclipse配置服務器的path選項中添加這個antlr.jar包后運行OK?


下面轉載了可能出現的其他問題和解決方法:?

1.其中發現jmesa處理時找不到配置文件,對應下面的問題6,我是改用archive方式發布后就OK了?


2.CXF在WebLogic10.3上的部署出現問題:org.apache.cxf.js.rhino.DOMPayloadProvider" failed to preload?

解決方法是web.xml文件的頭改為<web-app xmlns="http://java.sun.com/xml/ns/j2ee">?


3.有<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>無法處理,該工程中用到的jstl.jar包來自MyEclipse,找一個放到本工程的lib庫下,可解決?


4.避免在lib庫中出現重復包?


5.Hibernate-Validate-4.0.jar的不支持,用到該包,要用以前的Hibernate-Validate.jar包?


OS:Windows XP?

WebApp Server:Tomat5.5 WebLogic ?server 10 (中文版)?

IDE:Bea workshop for weblogic platform。?

一.IDE注意事項?

創建動態web項目,選擇是否共享j2ee庫,如果共享,則需要域的共享庫里面包含項目所需的庫,比如beeHive netUi;?

不共享,則將所需的庫拷貝到WEB-INF/lib目錄,并自動創建相關配置文件于WEB-INF下?

如果訪問頁面時出現如下錯誤:?

index.jsp:2:4: 使用該 URI 無法找到標記庫。可能是因為 URI 不正確或解析 .tld 文件時出錯。?

<%@taglib uri="http://beehive.apache.org/netui/tags-html-1.0" prefix="netui"%>?

請刪除多余的配置文件,或者重新建立一個工程,在向導第二頁選擇好正確的配置。?


二.WebLogic基礎知識?

一個域可以包括多個服務器,應用程序依賴于某個服務器,通過部署-〉某應用程序-〉目標 來配置?

wl_server是weblogic默認域,通過開始菜單-〉Bea products->tools->Weblogic Server來啟動?

要創建自己的域,則可以通過開始菜單-〉Bea products->tools->Configuration wizard來創建?

登錄地址:http://localhost:7001/console/login/LoginForm.jsp?

登錄用戶密碼:weblogic/weblogic?


1.部署war之后,測試時發生錯誤:?

Error ? 503--Service ? Unavailable ??

From ? RFC ? 2068 ? Hypertext ? Transfer ? Protocol ? -- ? HTTP/1.1:?

.....?

解決辦法:一般是在剛剛激活更改后,就進行測試,還需要將該應用程序啟動,狀態為“活動”之后再測試就可以了。?


2.連接池測試時出錯:?

Warning! Connectivity to backend database not verified. This is either because required connection pool attribute "TestConnectionsOnReserve" has not been enabled, or an invalid value has been specified for attribute "TestTableName". Please check the server log for more details..?

配置連接緩沖池,在“高級”中選中“保留時測試連接”即可。此時需要先激活更改再進行測試。否則還會報錯。?


3.jdbc jndi錯誤:?

javax.naming.NameNotFoundException: Unable to resolve 'jdbc_fbysss. Resolved ''; remaining name 'jdbc_fbysss'?

首先要在控制臺中點擊左邊的控制欄中的服務->JDBC新建一個數據源,數據源名稱無所謂,jndi name一定要注意,比如取名叫jdbc_fbysss,而且,jdbc源必須依賴于一個server。否則無法啟動。?

對于Spring項目,修改applicationContext.xml的dataSource,(Tomcat的連接池在這里就不需要了)。?

? <!-- 數據源緩沖池 --> ?<bean id="dataSource" ? class="org.springframework.jndi.JndiObjectFactoryBean"> ? ?

? ? ? ? <property name="jndiName" value="jdbc_fbysss"/><!--兩者要一樣-->?

? ? ? ? <property name="resourceRef">?

? ? ? ? ? <value>false</value>?

? ? ? ? </property> ??

? ? ? ? </bean>?


4.xml校驗錯誤?

(1)hbm.xml?

org.dom4j.DocumentException: unknown protocol: platform. Nested exception: unknown protocol: platform?

這個經檢查是workshop導出時 ,hbm.xml文件生成錯誤。修改過來就好了?

(2)struts-config.xml?

正式部署時出現異常:?

ERROR Digester ? ? ? ?[]: Parse Error at line 2 column?

15: Document root element "struts-config", must match DOCTYPE root "null".?

org.xml.sax.SAXParseException: Document root element "struts-config", must match?

DOCTYPE root "null".?

需要在struts-config.xml中第二行加入<!DOCTYPE ? struts-config ? PUBLIC ? "-//Apache ? Software ? Foundation//DTD ? Struts ? Configuration ? 1.2//EN" ? "http://struts.apache.org/dtds/struts-config_1_2.dtd">?


5.ServletApi實現不一致情況?

發現一個奇怪的現象,tomcat中,一個servlet的子類,如果沒有聲明init方法,會自動執行父類的init方法,而weblogic不會。?

解決辦法是顯式聲明init,super.init();?


6.莫名其妙空指針錯誤?

完整錯誤信息:?

java.io.FileNotFoundException: F:\bea\wlserver_10.0\samples\domains\workshop\servers\cgServer\tmp\_WL_user\prj_fbysss\mlh5uz\war (拒絕訪問。)?

? ? ? ? at java.io.FileInputStream.open(Ljava.lang.String;)V(Native Method)?

? ? ? ? at java.io.FileInputStream.<init>(FileInputStream.java:106)?

? ? ? ? at workshop.util.filesystem.file.WlFileSystem.getInputStream(WlFileSyste?

m.java:148)?

? ? ? ? at workshop.util.filesystem.FS.getInputStream(FS.java:262)?

? ? ? ? at javelin.jsp.JspParser.readStaticInclude(JspParser.java:3261)?

? ? ? ? at javelin.jsp.JspParser.parseStaticInclude(JspParser.java:3198)?

? ? ? ? at javelin.jsp.JspParser.processImplicitIncludes(JspParser.java:3289)?

? ? ? ? at javelin.jsp.JspParser.jspParse(JspParser.java:703)?

? ? ? ? at javelin.jsp.JspParser._parse(JspParser.java:504)?

? ? ? ? at javelin.jsp.JspParser.parse(JspParser.java:497)?

? ? ? ? at javelin.jsp.JspAnalyzer.parseFile(JspAnalyzer.java:113)?

? ? ? ? at javelin.jsp.JspAnalyzer.parse(JspAnalyzer.java:101)?

? ? ? ? at javelin.ProxySourceFile.parse(ProxySourceFile.java:117)?

? ? ? ? at javelin.SourceFile.getAst(SourceFile.java:542)?

? ? ? ? at javelin.SourceFile.getAst(SourceFile.java:516)?

? ? ? ? at javelin.ProxySourceFile.codeGen(ProxySourceFile.java:215)?

? ? ? ? at javelin.SourceFile.codeGen(SourceFile.java:310)?

? ? ? ? at javelin.client.ClientUtilsImpl$CodeGenJob.run(ClientUtilsImpl.java:11?

05)?

? ? ? ? at javelin.client.Job.performJob(Job.java:81)?

? ? ? ? at javelin.client.ThreadPool$WorkerThread.run(ThreadPool.java:215)?

<2008-8-23 下午07時15分11秒 CST> <Error> <HTTP> <BEA-101017> <[weblogic.servlet.?

internal.WebAppServletContext@36b25e - appName: prj_fbysss, name: 'prj_fbysss', context-path: '/prj_fbysss] Root cause of ServletException.?

java.lang.NullPointerException?

? ? ? ? at javelin.jsp.JspAnalyzer.parse(JspAnalyzer.java:104)?

? ? ? ? at javelin.ProxySourceFile.parse(ProxySourceFile.java:117)?

? ? ? ? at javelin.SourceFile.getAst(SourceFile.java:542)?

? ? ? ? at javelin.SourceFile.getAst(SourceFile.java:516)?

? ? ? ? at javelin.ProxySourceFile.codeGen(ProxySourceFile.java:215)?

? ? ? ? Truncated. see log file for complete stacktrace?

>?


最后發現是web.xml中<include-coda/>一句不對,去掉就好了,很怪異。?

? <taglib>?

? <taglib-uri>http://www.sss.com/select</taglib-uri>?

? <taglib-location>/WEB-INF/tlds/select.tld</taglib-location>?

? ? ?</taglib>?

? <taglib>?

? <taglib-uri>http://www.sss.com/tree</taglib-uri>?

? <taglib-location>/WEB-INF/tlds/tree.tld</taglib-location>?

? ? ?</taglib> ? ??

? <!--web 項目配置-->?

? <jsp-property-group>?

? ?<description>?

? ? WEB項目配置?

? ?</description>?

? ?<display-name>JSPConfiguration</display-name>?

? ?<url-pattern>*.jsp</url-pattern>?

? ?<el-ignored>false</el-ignored>?

? ?<page-encoding>gbk</page-encoding>?

? ?<scripting-invalid>false</scripting-invalid>?

? ?<!--這句居然引起webloic錯誤!!!! include-coda/-->?

? </jsp-property-group>?

</jsp-config>?


7.類沖突問題?


(1)JSTL解析失敗?

index.jsp:1:1: validator 類 "org.apache.taglibs.standard.tlv.JstlCoreTLV" 失敗,出現如下異常: "java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXParserFactory"。?

<%@page contentType="text/html;charset=gbk" language="java"%>?

項目屬性-〉項目構面中的設置將記錄在.setting/org.eclipse.wst.common.project.facet.core.xml文件中。?

最后是把prefer-web-inf-classes設置為false就可以了。?


(2)HQL語句執行失敗?

org.springframework.orm.hibernate3.HibernateQueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken?

這種情況是包版本沖突,必須設置prefer-web-inf-classes設置為true。?

這樣一來,有的包需要true,有的需要false,怎么辦?Weblogic的確夠惡心的。JSTL的包都已經放webapp下了,設置prefer-web-inf-classes設置為ture還不行,只好采取以下稍顯麻煩的方法:?

在workshop開發環境下,啟動的服務器目錄是?

F:\bea\wlserver_10.0\samples\domains\workshop\bin?

修改啟動腳本startWebLogic.cmd?

找到set CLASSPATH=%SAVE_CLASSPATH%,在后面加入?

@REM sss added?

set PRE_CLASSPATH=%WL_HOME%\server\lib\antlr-2.7.6rc1.jar;?

set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%?

其中,antlr-2.7.6rc1.jar包需要拷貝到F:\bea\wlserver_10.0\server\lib下。?

正式發布的時候,需要修改對應域目錄下的啟動腳本?

比如f:\bea\user_projects\domains\fbysssDomain\bin\startWebLogic.cmd?

8.部署問題?

部署時出現如下錯誤:?

<2008-8-23 下午07時37分42秒 CST> <Warning> <Deployer> <BEA-149124> <?

Failures were detected while initiating redeploy task for application 'prj_fbysss'. Error is: '?

[Deployer:149163]The domain edit lock is owned by another session in non-exclusi?

ve mode - this deployment operation requires exclusive access to the edit lock a?

nd hence cannot proceed.'>?

解決:進入http://localhost:7001/console,釋放配置,再次部署即可。?

注:更新war:必須在刪除該應用,并激活更改之后才能覆蓋。?

但是用war方式,獲取資源路徑的方法和tomcat不同,存在臭名昭著的getRealPath等問題,移植困難,所以用目錄方式部署比較好。?

具體方法:先把war解壓,然后在weblogic控制臺里面選擇目錄部署。?