最近、32 ビット Java の tomcat5 のアプリケーションを 64 ビット Java の tomcat6 に移行しました。
アプリケーションには、各サーバーで異なる値を返すテキスト CRC 計算があります。例: "Hipoplasia del seno frontal.Resto de senos faciales con desarrollo y neumatización Habituales.No se observan legendes óseas.Atentamente, " は、32 ビット jvm では 439231721 を返し、64 ビット jvm では 2756208468 を返します。
また、32ビットのjvm tomcat6で試してみると、439231721が返されます
以下は、crc 計算のコードです。
public static long doChecksum(String text) {
try{
//Convert string to bytes
byte bytes[] = text.getBytes();
Checksum checksum = new CRC32();
// void update(bytes[] b, int start, int length)
checksum.update(bytes,0,bytes.length);
long lngChecksum = checksum.getValue();
System.out.println(text + " : " + lngChecksum);
return lngChecksum;
} catch (Exception e) {
return -1;
}
}
ありがとう!