# "Data-holding" Klasse für JSP und ear



## Cinimod (22. Jul 2005)

Hallo,

ich habe ein kleines Problem mit einer ear application.

Inhalt:    - jar Datei (SessionBean)
             - war Datei (JSP/servlet file)

Mein Servlet ruft die Session-Bean auf, die wiederum einen Zugriff auf eine Datenbank durchführt und dabei ein
Objekt mit Daten füllt. Dieses "data-holding" Objekt soll nun von meiner jsp verwendet werden bzw. es werden ganz einfach die sich in dem "data-holding" Objekt befindenden Daten angezeigt.

Die "data-holding" Klasse habe ich in das jar file gepackt, bekomme jedoch gemeldet, dass die Klasse vom Servlet nicht gefunden werden kann. 

Meine Frage: wo soll ich die Klasse hinpacken? 

Danke für Antworten im voraus!


----------



## Bleiglanz (22. Jul 2005)

erstelle ein eigenes modul innerhalb des .ear für die geteilten Klassen und lies dann die Doku deines Appservers

oder pack das Teil einfach auch ins .war

Welchen Appserver hast du, ist wohl nicht der JBOSS...


----------



## Cinimod (22. Jul 2005)

doch, ist JBoss. 

Wie greift die Session-Bean (jar) dann auf die "Data-Holding" Klasse zu, wenn ich sie ins war packe. 
Dann ist es doch wieder das gleiche Problem, oder?

Danke für Antworten im voraus!


----------



## Bleiglanz (22. Jul 2005)

bitte die genaue Fehlermeldung.

kann die .class Datei nicht gefunden werden? oder was genau geht schief...

(eigentlich hat der JBOSS da nicht-standardkonform eine Art globale Sichtbarkeit für alle Klassen, es sollte eigentlich reichen, wenn die im .jar enthalten ist)


----------



## Cinimod (26. Jul 2005)

ok, ich habe die Bean in das WEB-INF/classes verzeichnis der war Datei kopiert, statt sie im jar File zu lassen.

Das komplette jar File habe ich in WEB-INF/lib kopiert...nun habe ich ein Problem beim Deploy:


```
Caused by: javax.naming.NamingException: ejb-local-ref: 'WiseSessionHomeLocal',
with web.xml ejb-link: 'WiseSessionBean.jar#WiseSessionBean' failed to resol
ve to an ejb with a LocalHome
        at org.jboss.web.AbstractWebDeployer.linkEjbLocalRefs(AbstractWebDeploye
```

der dazugehörige Teil der web.xml sieht so aus:


```
<ejb-local-ref>
   <ejb-ref-name>WiseSessionHomeLocal</ejb-ref-name>
   <ejb-ref-type>Session</ejb-ref-type>
   <local-home>beans.session.WiseSessionHomeLocal</local-home>
   <local>beans.session.WiseSessionLocal</local>
   <ejb-link>WiseSessionBean.jar#WiseSessionBean</ejb-link>
  </ejb-local-ref>
```

d.h. <ejb-name>WiseSessionBean</ejb-name> in ejb-jar.xml.

Ich habe auch schon <ejb-link>WiseSessionBean</ejb-link> probiert, bekomme aber den gleichen Fehler beim Deploy.


Falls mir jemand sagen kann, woran das liegt und wie ich es beheben kann, wäre ich sehr dankbar.


----------



## Bleiglanz (26. Jul 2005)

stimmen die JNDI namen überein?

ist die Bean überhaupt als WiseSessionHomeLocal (übrigens ein beschauerter Lookup Name) deklariert?


----------



## Cinimod (27. Jul 2005)

hier die jboss.xml:


```
<?xml version="1.0"?>

  <jboss>
   <enterprise-beans>

   <session>
    <ejb-name>WiseSessionBean</ejb-name>
    <local-jndi-name>WiseSessionHomeLocal</local-jndi-name>
    </session>

  </enterprise-beans>

 </jboss>
```


----------



## Cinimod (27. Jul 2005)

wenn ich die jar nicht ins WEB-INF/lib packe, funktioniert es jetzt...zumindest der deploy.

Ich erhalte jedoch eine NullpointerException wenn ich die jsp Seite aufrufe und ich denke, dass es darauf zurückzuführen ist, dass die Bean (keine Enterprise), die ich nutze, von der SessionBean aus dem jar file instanziiert und mit Werten gefüllt wird, die jsp Seite dann aber, wenn sie die Bean nutzen will, auf die Werte nicht zugreifen kann, bzw. sie eine andere Instanz bekommt - nicht diejenige, welche von der SessionBean mit Daten gefüllt wurde.

Wie kann ich das Problem beheben?

Danke für Hilfe im voraus!


----------



## Bleiglanz (28. Jul 2005)

wo genau fliegt denn die NPE? Code?


----------



## Cinimod (31. Jul 2005)

ok, es hat sich erledigt. Danke für die Hilfe.


----------

