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 | ||||||
---|---|---|---|---|---|---|---|
製品・サービス情報 |
|
||||||
アンサー種別 | 構築(導入/移行) |