# Bibliotheken



## Gast (19. Mai 2008)

Habe eine Applikation, die per RMI auf meinen JBOSS 403 zugreift. 

In der Applikation sind Klassen, die den Import von 


```
javax.ejb.EJBException 
javax.ejb.EJBObject 
javax.ejb.EJBHome 
u.a.
```

nötig machen. Daher habe ich die Datei jbossall-client.jar vom JBOSS/Client-Verzeichnis in mein Projekt in /lib kopiert und eingebunden. 
Das funktioniert auch. 

Das Problem ist nur, wenn ich einen anderen Applikationsserver nutze, z.B. JBoss 4.2.2, gibt es schon Kompatibilitätsprobleme, so dass ich praktisch für jeden AS ein eigenes Projekt erzeuge. 

Wie gehe ich vor, dass die benötigten Bibliotheken und Klassen nicht mehr im Projekt in /lib platziert werden, sondern zur Laufzeit vom Applikationserver geladen werden?


----------



## Guest (20. Mai 2008)

ich brauche die libs, nämlich bei folgendem Aufruf zur ear 



```
Object ref=initial.lookup("projektname_klassenname"); 

javax.ejb.EJBMetaData meta=((javax.ejb.EJBHome)ref).getEJBMetaData(); 
javax.ejb.EJBHome home=(javax.ejb.EJBHome)javax.rmi.PortableRemoteObject.narrow(ref,meta.getHomeInterfaceClass()); 
                    
Class classH=home.getClass(); 
Method meth1=classH.getMethod("create",(Class[])null); 
Object doservice=meth1.invoke(home,null);
```

Wie muss ich den o.g. Code ändern, *ohne* Nutzung von javax.ejb.EJBMetaData und javax.ejb.EJBHome?


----------



## lhein (20. Mai 2008)

Diese Imports fangen mit javax an und sind somit sicher keine Erfindung von JBoss. 
Die genannten Packages sollten sich in einer Lib "j2ee.jar" befinden, die Bestandteil von J2EE ist.

Es ist somit egal, mit welcher JBoss Version du arbeitest.

Grüße
lhe


----------



## Gast (20. Mai 2008)

leider nein, das funzt nicht ... merkwürdig ...


----------



## Gast (20. Mai 2008)

aber das eclipse meldet keine Problem ...
zur Laufzeit gibt es dann eine Exception


----------



## tuxedo (20. Mai 2008)

Gast hat gesagt.:
			
		

> aber das eclipse meldet keine Problem ...
> zur Laufzeit gibt es dann eine Exception



Die da wäre?

Nebenbei: Was hat das mit Netzwerk zu tun? Sieht mir eher nach einem Classpath oder ähnlichem Problem aus.


Gruß
Alex


----------



## Gast (20. Mai 2008)

Folgende Exception mit eingebundener javaee.jar zur Laufzeit:

Exception in thread "Thread-7" javax.ejb.EJBException: nested exception is: java.lang.NullPointerException
java.lang.NullPointerException
	at src.ClientSQL.provideBaseAndUserConfiguration(ClientSQL.java:106)


----------



## maki (20. Mai 2008)

Was steht denn nun in ClientSQL.java in der Zeile 106?


----------



## tuxedo (20. Mai 2008)

Und was geschiet an besagter Stelle im Code? Also in "ClientSQL.java, Zeile 106"?

Hast du mal versucht zu debuggen?

- Alex


----------



## Gast (20. Mai 2008)

Das ist ein Log für mögliche Rückmeldungen der Db
} catch (Exception e) {
... 
[106]           	    	SetMinorFunction.sessionLogAdd("("+e.getStackTrace()_.getLineNumber()+") "+e.getMessage());

, wenn ichs auskommentiere, kommt keine Exception, aber die Db übergibt mir keine Daten mehr._


----------



## tuxedo (20. Mai 2008)

Na dann debug doch mal was da genau "null" ist. "sessionLogAdd" sieht mir nach einer statischen Methode in "SetMinorFunction" aus? 

- Alex


----------



## Gast (20. Mai 2008)

e.cause: NullPointerException
detailMessage:null
stackTrace:null

glaub', javaee.jar ist eher für Sun GlassFish gedacht ist


----------



## semi (20. Mai 2008)

Geh mal auf die Projekteinstellungen und füge 'Serveruntime' -> "Server deiner Wahl" ins Projekt ein. 
Wechselst du den Server, schmeisst du die Library raus und fügst die neue hinzu. Das ganze setzt
voraus, dass du einen Server in Eclipse eingerichtet hast.


----------



## lhein (21. Mai 2008)

Da es sich hier um eine NullpointerException handelt, scheint es mit dem Imports / Classpath mal kein Problem zu geben. Gegen Programmier- und Logikfehler ist natürlich noch kein Allheilmittel gewachsen. Und hier ohne Sourcecode den Heilpraktiker zu spielen, hat sicher auch keiner Lust.

lhe


----------

