Webcenterで事前構成されたoc4jを使用してJDeveloper 10.1.3.4を実行しています。バニラの JSF Webcenter プロジェクトをポートレット化しようとしています。
- webcenter アプリケーション テンプレートを使用してアプリケーションを作成します。
- JSF JSP を追加します。これは単純に、すべてのデフォルト値を持つインデックスと呼ばれます。
- デプロイメント・プロファイルを追加し、ローカル oc4j にデプロイします
- jsf ページに移動すると、すべてが機能します。
- ViewController を右クリックし、ライブラリ Portlet Faces Bridge を追加します。
- ViewController を右クリックし、Portlet Deployment 記述子を追加します。
リンク テキストの値を使用して portlet.xml を編集します。
portlet.xml で、デフォルトのページ ビューを /index.jspx に置き換えます
ローカル oc4j にデプロイしようとすると、次のようなメッセージが表示されます
---- 展開が開始されました。---- 2009 年 5 月 1 日 2:29:37 PM ターゲット プラットフォームはスタンドアロン OC4J 10g 10.1.3 (localAppServer) です。WAR ファイルを C:\jdevstudio10134\jdev\mywork\test\ViewController\deploy\webapp2.war に書き込みました EAR ファイルを C:\jdevstudio10134\jdev\mywork\test\ViewController\deploy\webapp2.ear に書き込みました 汎用アーカイブ ファイルのバックアップ: /C:/jdevstudio10134/jdev/mywork/test/ViewController/deploy/webapp2_generic.ear WSRP アプリケーションの WSDL を作成しています WSRP アプリケーションの WSDL が作成されました ファイル webapp2.ear をアップロードしています ... ファイル webapp2.ear ... アプリケーションをアップロードしていますwebapp2 STARTS のデプロイヤー。アーカイブを C:\jdevstudio10134\j2ee\home\applications\webapp2.ear にコピーします 初期化 C:\jdevstudio10134\j2ee\home\applications\webapp2.ear を開始します...
デプロイ失敗 デプロイの経過時間: 3 秒
展開が不完全です。#### 2009 年 5 月 1 日午後 2 時 29 分 40 秒
WAR ファイルを手動で展開してページに移動すると、500 内部サーバー エラーが発生します。
09/05/01 14:49:21.984 webapp2: com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:346) でのサーブレット エラー java.lang.NullPointerException com.sun.faces.application.ViewHandlerImpl.renderView (ViewHandlerImpl.java:152) at oracle.portlet.server.bridges.jsf.PortletViewHandlerImpl.renderView(PortletViewHandlerImpl.java:73) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107) at com. javax.faces.webapp.FacesServlet.service(FacesServlet.java: 214) com.evermind [Oracle Containers for J2EE 10g (10.1.3.4.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher .java:713) at com.evermind[J2EE 10g (10.1.3.4.0) 用の Oracle コンテナ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher .java:370) com.evermind[J2EE 10g (10.1.3.4.0) 用の Oracle コンテナ].server .http.HttpRequestHandler.doProcessRequest(HttpRequestHandler .java:871) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler .java:453) at com.evermind [J2EE 10g (10.1.3.4.0) 用の Oracle コンテナ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler .java:221) at com.evermind[J2EE 10g (10.1.3.4.0) 用の Oracle コンテナ].server. http.HttpRequestHandler.run(HttpRequestHandler.java:122) at com.evermind[J2EE 10g (10.1.3.4.0) 用の Oracle コンテナ].server.http.HttpRequestHandler。run(HttpRequestHandler.java:111) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.4.0) ].util.ReleasableResourcePooledExecutor$ MyWorker.run(ReleasableResourcePooledExecutor .java:303) at java.lang.Thread.run(Thread.java:595)
私のportlet.xmlファイルは次のようになります
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<portlet-app version="1.0" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
<portlet>
<description>myapp</description>
<portlet-name>test</portlet-name>
<display-name>myapp</display-name>
<portlet-class>oracle.portlet.server.bridges.jsf.FacesPortlet
</portlet-class>
<init-param>
<name>DefaultPage.view</name>
<value>/index.jspx</value>
</init-param>
<init-param>
<name>BridgeLifecycleListeners</name>
<value>
oracle.portlet.server.bridges.jsf.adf.ADFFacesBridgeLifecycleListener,
oracle.portlet.server.bridges.jsf.adf.BindingFacesBridgeLifecycleListener
</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
</supports>
<supported-locale>en</supported-locale>
<portlet-info>
<title>myapp</title>
<short-title>test</short-title>
</portlet-info>
</portlet>
</portlet-app>
...ファイルを削除して jspx ページを再デプロイすると、正常に動作します。