WEBアプリケーションでJavaのマイナーバージョンの違いでエラーが発生する
事象
java version "1.6.0_37" build 1.6.0_37-b06_Fujitsu_01-18-13_12:00_patch (Fujitsu Interstage Web Server Express V11.1)
ではエラーが発生する。
Oracleからダウンロードした、JDK 1.6.0_20 ではエラーが発生しない。
該当箇所は、HOS CoReports for Java Ver.2 を使用している場所。
ソース(抜粋)
import jp.co.hos.coreports.CrDraw;
import jp.co.hos.coreports.CrJob;
import jp.co.hos.coreports.CrPrintOutJob;
import jp.co.hos.coreports.CrFileOutJob;
import jp.co.hos.coreports.CrStreamOutJob;
import jp.co.hos.coreports.constants.CorUnit;
import jp.co.hos.coreports.constants.CorOrientation;
:
protected CrDraw cd;
protected CrForm cf;
protected CrLayer Ltotal;
:
a)
cd.setUnit(CorUnit.MM100);
↓
setUnit(jp.co.hos.coreports.enum.CorUnit) (jp.co.hos.coreports.CrDraw 内) を (jp.co.hos.coreports.constants.CorUnit) に適用できません
b)
job.getCrPrinter().setOrientation(CorOrientation.LANDSCAPE);
↓
setOrientation(jp.co.hos.coreports.enum.CorOrientation) (jp.co.hos.coreports.CrPrinter 内) を (jp.co.hos.coreports.constants.CorOrientation) に適用できません
c)
CrDataField titem;
cf.draw(titem);
↓
シンボルを見つけられません。
シンボル: メソッド draw(jp.co.hos.coreports.object.CrDataField)
場所 : jp.co.hos.coreports.CrForm の クラス
d)
Ltotal.setOffsetX(0);
Ltotal.setOffsetY(LINE_HEIGHT*((lineno+LINE_MAX-2) % LINE_MAX));
↓
シンボルを見つけられません。
シンボル: メソッド setOffsetX(int)
場所 : jp.co.hos.coreports.CrLayer の クラス
コンパイルの引数(javacのフルパスを切り替えて確認してます)
javac -J-Xmx128m -verbose -encoding MS932 -classpath %CLASS_LIB%
-sourcepath . -d %CLASS_DIR% @.javasources.txt
CLASS_DIRには、coreports.jar を含まれています。
(a)(b)に関しては、このソースは CoReports9 に対するソースの変更で、coreports.jar 内も、jp.co.hos.coreports.enum.* から jp.co.hos.coreports.constants.* に変更されています。その下にあるクラスは全てenum型の値で用途したいは変わっていません。
まだ調査中なのですが、coreports.jar の中をjadしたりしても原因がわからず、ヒントがあればご教授下さいませ。
※1.6.0_37自体はターゲットゆえ、解決したいところです。

回答1件
あなたの回答
tips
プレビュー