Interstage Application Server V5(JDK1.3.1)のサーブレット資産を、Interstage Application Server V8以降(JDK1.4.2以降)で動かすと、コンテナログに「定数式が必要です。」のエラーが出力されます。
Interstage Application Serverのよくあるご質問を検索できます。
Interstage Application Serverの技術情報はこちら
- Interstage Application Server V5(JDK1.3.1)のサーブレット資産を、Interstage Application Server V8以降(JDK1.4.2以降)で動かすと、コンテナログに以下のエラーが出力されます。原因と対処方法を教えて下さい。
-----------------------------------------------
IJServer15302: Error compiling file:
XXXXXXXXXX_jsp.java
[javac] Compiling 1 source file
[javac] XXXXXXXXXX_jsp.java:nnnn: 定数式が必要です。
[javac] case aaaaa.BBBBB:
[javac] ^
[javac] エラー 1 個
----------------------------------------------- - jspファイル(XXXXXXXXXX_jsp.java)で、case文の引数が定数式になっていないためです。定数式である修飾名は、「型名.識別子」の形式でなければならず、たとえフィールドBBBBB自体が定数であっても、式aaaaa.BBBBB(aaaaaは変数かまたはそのほか他の式)は、エラーとなります。
BBBBBがstatic変数であれば、static変数はクラス変数ですので、aaaaaはクラス名である必要があります。これは、JDK1.3で文法チェックが強化されたものです。
Interstage Application Server V5(JDK1.3.1)でエラーにならなかった理由は、サーブレットの使用するコンパイラ(javac)が、JDK1.2.2のjavacと互換を持つ、oldjavacを使用していたためです。oldjavacはJDK1.4以降は未サポートであり、サーブレットの使用するコンパイラもInterstage Application Server V8以降javacに変更されていますので、アプリケーションのソースプログラムを正しい形式に修正してください。
製品・サービス区分 | Interstage | ||||||
---|---|---|---|---|---|---|---|
製品・サービス情報 |
|
||||||
アンサー種別 | 構築(導入/移行) |