5. 已知的問題
如果點擊頁面中的一個鏈接後, Portlet 模式 (view, edit, help) 不能正常工作
XVI. 問題解決
--------------------
1. Stringbeans啓動時間過長並且日誌顯示信息如:
SEVERE Bad RSS URL http......
ConnectException Connection timed out connect
可能是以下原因造成
Stringbeans 運行在防火牆或代理服務器等無法連接的環境下
解決辦法;
配置 代理設置,代理主機 , 和 代理端口系統屬性.
如果Web服務器是手動啓動,命令行(請訪問站點管理員代理主機,代理端口信息並替換 proxy.mailblocks.com和 8080 參數)如:
java -DproxySet=true -DproxyHost=proxy.mailblocks.com -DproxyPort=8080
如果獨立運行 Tomcat, 您可以在catalina.sh (UnixLinux) 或者 catalina.bat (Windows)腳本文件中設置JAVA_OPTS 參數如下
catalina.bat
set JAVA_OPTS=-DproxySet=true -DproxyHost=proxy.mailblocks.com -DproxyPort=8080
catalina.sh
JAVA_OPTS=-DproxySet=true -DproxyHost=proxy.mailblocks.com -DproxyPort=8080
重啓web服務器.
如果這些參數配置正確後,仍然出現同樣的錯誤,可能是由以下原因引起。
URL 指定的站點當前不可訪問(宕掉了)
通常發生在RSSPortlet訪問的新聞文件不能解析
實際上,總體來說,不會對portal有功能性的破壞。
只會造成portlet無法加載,以及加了這個portlet到頁面的用戶看到不可用的Portlet的信息
解決辦法;
從portlet.xml手動移除有問題的portlet,或在運行環境使用管理portlet
(僅僅是Stringbeans應用程序中的portlets的定義,而不是portlets應用程序 )移除
完成這些後,添加了對應 portlet的用戶訪問時會看到找不到Portlet,而不是Portlet不可用的信息
2. 使用javax.xml.包或者Xerces庫,portlet中遇到 XML規範的異常 問題造成的原因找不到,如:
org.apache.xalan.processor.TransformerFactoryImpl not found
解決辦法;
如果您使用 Tomcat 5.5 以及 JDK 1.4, 請檢查已經安裝的Tomcat'的兼容包 。
下載並安裝您使用的tomcat版本的對應的兼容包
如果已經使用 JDK 1.5, 檢查兼容包是否已經安裝 (檢查
xercesImpl.jar 和 xml-apis.jar 文件是否在 $TOMCAT_HOME/common/
endorsed/ 路徑 jmx.jar是否在 $TOMCAT_HOME路徑 ).
如果在上述的路徑找到這些文件,請移除。
3. 第一次加載homelogin登錄頁時耗時過長。
Stringbeans 默認配置成啓動時不加載。在容器啓動應用後,這個配置預防了外部portlet上下文加載錯誤。長訪問時間僅僅發生在第一次加載頁面時;以後再訪問同一頁面時不會再花這麼長的時間。如果您想在啓動時就加載Stringbeans,解決方式如下
解決辦法;
修改$STRINGBEANS_HOME/WEB-INF/ 路徑下的 web.xml 文件
在 portal Servlet 中增加<load-on-startup>1</load-on-startup> 項目
<servlet>
<servlet-name>portal</servlet-name>
<servlet-class>com.nabhinc.portal.core.PortalServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
重啓web服務器
4. 登錄頁不能正確顯示. 一些 portlets,如 Nabh News,
BBC News 不可用並且不能顯示內容.
大部分原因是因爲Stringbeans運行於防火牆或代理環境下,外發的連接請求阻塞了。
解決辦法;
配置 代理設置,代理主機 , 和 代理端口系統屬性.
如果Web服務器是手動啓動,命令行(請訪問站點管理員代理主機,代理端口信息並替換 proxy.mailblocks.com和 8080 參數)如:
java -DproxySet=true -DproxyHost=proxy.mailblocks.com -DproxyPort=8080
如果獨立運行 Tomcat, 您可以在catalina.sh (UnixLinux) 或者 catalina.bat (Windows)腳本文件中設置JAVA_OPTS 參數如下
catalina.bat
set JAVA_OPTS=-DproxySet=true -DproxyHost=proxy.mailblocks.com -DproxyPort=8080
catalina.sh
JAVA_OPTS=-DproxySet=true -DproxyHost=proxy.mailblocks.com -DproxyPort=8080
重啓web服務器.
5. 部署外部 portlet 應用程序時拋出java.lang.IncompatibleClassChangeError.
在classpath中有重複的portlet.jar或sb-container.jar文件,這些jar文件必須特定存在於共享路徑或全局classpath中
解決辦法:
從$STRINGBEANS_HOME/WEB-INF/lib或者portlet應用的WEB-INF/lib路徑,移除portlet.jar 或 sb-container.jar,
6. 部署外部 portlet 應用程序時拋出java.lang.ClassCastException.
參見工作環境問題 #5 .
7. 頁面portlet在啓用AJAX後不顯示(在啓用AJAX時不可用)
您的portlet包含有問題的標籤,比如沒有包含table標籤的form表單。
-------------------------------------------------------------------
如果您有意見或建議, 請發郵件到
[email protected]或者訪問 Stringbeans 的論壇,地址是
http://www.nabh.com/portal/forums/normal/0/render/0/0?request_type=listthreads&forum=1
您也可以提交bugs 問題, 個性化建議到 Stringbeans 的問題管理系統
http://www.nabh.com/portal/projects/normal/1?project_id=3&project_name=Stringbeans+Portal
感謝使用 Stringbeans.