Interstage Application ServerのJava EE機能で、ほかのアプリケーションサーバで使用していたJSFアプリケーションがうまく動きません。

Interstage Application ServerのJava EE機能で、JSFのAPIクラスや実装クラスが含まれるほかのアプリケーションサーバで使用していたJSFアプリケーションを使用しようとしています。 しかし、JSFアプリケーションにアクセスしたところ、HTTPステータスコード500や503が返却されてうまく動きません。またサーバーログにはISJEE_PWC1306のメッセージや「java.lang.UnsupportedOperationException」が出力されることがあります。 対処方法を教えてください。
[原因]
JSF1.2の規約では、アプリケーションにJSFのクラスを含めるべきでないとしています。Java EE機能ではJSF1.2に対応したアプリケーションが動作するため、アプリケーションに含まれているJSFのAPIクラスや実装クラスが動作せず、アプリケーションサーバのJSFのクラスが常に動作します。このことが原因でJSFアプリケーションがうまく動かないと考えられます。

[対処方法]
JSFのクラスを含めないようにアプリケーションを作り直すことを推奨します。

やむをえずアプリケーションに含まれるJSFのクラスを使用する際は、sun-web.xmlでclass-loaderプロパティ、useMyFacesプロパティを以下のように設定し、十分な検証を行った上でご使用ください。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN"
  "http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd">
<sun-web-app>
  <class-loader delegate="false"/>
  <property name="useMyFaces" value="true"/>
</sun-web-app>

またJSFのクラスは、WARファイルのWEB-INF/libにjarファイルで配置してください。

製品・サービス区分 Interstage
製品・サービス情報
対象製品 Interstage Application Server
バージョン V10, V9
プラットフォーム Windows, Solaris, Linux
アンサー種別 構築(導入/移行)
このページの先頭へ