Service, NoClassDefFoundError
Author: arkaetsc
Publication Date: 8/20/2015 18:29
Hallo zusammen,
ich schreibe gerade an einem Service der mir Daten aus einer Datenbank zurückliefern soll. Den Service selbst hab ich in FirstSpirit zum laufen bekommen, liefert mir aktuell auch schon fleißig Log-Ausgaben. Wenn ich jetzt allerdings versuche in meinem Service Klassen zu verwenden die aus einem jar stammen das am FirstSpirit Server abgelegt wurde, bekomme ich im SiteArchitect folgenden Fehler:
de/meinelib/basis/IdException
FSVersion=5.1.410.67084#3587;JDK=1.8.0_51 32bit Oracle Corporation;OS=Windows 7 6.1 x86;Date=20.08.2015 18:43:51
java.lang.NoClassDefFoundError: de/meinelib/basis/IdException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetPublicMethods(Unknown Source)
at java.lang.Class.getMethods(Unknown Source)
at sun.misc.ProxyGenerator.generateClassFile(Unknown Source)
at sun.misc.ProxyGenerator.generateProxyClass(Unknown Source)
at java.lang.reflect.Proxy$ProxyClassFactory.apply(Unknown Source)
at java.lang.reflect.Proxy$ProxyClassFactory.apply(Unknown Source)
at java.lang.reflect.WeakCache$Factory.get(Unknown Source)
Ich benutze die Klassen aus dem jar bereits an anderer Stelle in FS, wo sie auch funktioniert, aber irgendwie kann mein Service sie nicht finden.
Im Service:
import de.meinelib.basis.IdException
module.xml:
<library>
<ame>Tests</name>
<description>Test Module Library</description>
<resources>
<resource>lib/test.jar</resource>
< /resources>
</library>
<service>
<name>DbService</name>
<description>Liefert Datenbankinhalte aus.</description>
<class>de.test.service.DbServiceImpl</class>
</service>
...
Hat jemand eine Idee woran das liegen könnte?
Ich habe hier FS 5.1 im Einsatz, falls das relevant ist.
Viele Grüße
Alex
Tags: jar, service
-
Author: arkaetsc - 9/4/2015 10:45
Hallo zusammen,
war ein doofer Fehler.
Die Klasse ist am Server im java.class.path hinterlegt, dadurch kann ich sie auch am Server verwenden. Ich hatte die Klasse in einem ServiceProxy verwendet, der ja am Client ausgeführt wird, wo die Klasse natürlich nicht verfügbar ist.
Die Lösung war also relativ einfach, die Klasse aus dem ServiceProxy in den ServiceImpl verschieben.
Ein schönes Wochenende
Alex
0
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Kommentare
1 Kommentar