Úgy döntöttünk, hogy egy webalkalmazás fejlesztését IBM Rational Application Developer 8-ról Eclipse Helios alá helyezzük át. Mivel Eclipsehez nem találtunk Websphere 6.1-es szerver adaptert, az az ötlet merült fel hogy a build és telepítési folyamatot is Apache Ant segítségével oldjuk meg.
Elkészítettem a build fájlokat és próbaképpen feltelepítettem az ear-t a szerverre, azonban egy hiba üzenet jelent meg a böngészőben: Error 500, bad major version at offset=6.
A probléma oka, hogy az Eclipse-ben alapértelmezésként Java 6 volt beállítva, így a javac Ant taszk is ezzel fordította le az osztályokat. Mivel a Websphere 6.1 még az 1.5-ös Java verzióját használja, ebből adódóan a java 6-al lefordított osztályokat nem tudta értelmezni.
Az első ötletem, hogy használjuk az 1.5-ös Java-t az osztályok fordításához! Átállítottam az Eclipse-es runtime-ot (Eclipse/Window/Preferences/Java/Installed JREs) és a compiler compliance level-t (Eclipse/Window/Preferences/Java/Compiler) is az 1.5-ös Java-ra, a buildelés során azonban a következő hiba jelentkezett:
C:\IBM\rationalsdp\workspace\Project\gen\hu\tk\web\workflow\WorkflowManagerCanvas.java:22: cannot access com.vaadin.addon.chameleon.ChameleonTheme
bad class file: C:\IBM\rationalsdp\workspace\Project\WebContent\WEB-INF\lib\vaadin-chameleon-theme-1.0.1.jar (com/vaadin/addon/chameleon/ChameleonTheme.class)
class file has wrong version 50.0, should be 49.0
A probléma oka, hogy a vaadin-chameleon-theme-1.0.1.jar/ChameleonTheme.class fájl Java 6-os megfelelési szinttel lett lefordítva, így az 1.5-ös compiler nem tudta értelmezni. A hibaüzenet feloldásához az alábbi táblázat volt a segítségemre, ami a Java verziók megfeleltetéseit tartalmazza:
Major version | Minor version | Java platform |
50 | 0 | Java 6 |
49 | 0 | Java 1.5 |
48 | 0 | Java 1.4 |
47 | 0 | Java 1.3 |
46 | 0 | Java 1.2 |
45 | 3 | Java 1.1 |
A melósabb megoldás az lett volna, hogy a vaadin-chameleon-theme-1.0.1.jar class fájljait újrafordítom 1.5-ös java fordítóval. Az egyszerűbb megoldás pedig, hogy az eredeti Java 6-os runtime-ot használva, Java 1.5-ös megfelelési szintű class fájlokat készítek. Ehhez a javac ant taszkhoz beállítottam az 1.5-ös Java megfelelési szintet a target="1.5" property-vel.
Nincsenek megjegyzések:
Megjegyzés küldése
Megjegyzés: Megjegyzéseket csak a blog tagjai írhatnak a blogba.