# [EJB 3.0] @EJB Annotation?



## mikachu (11. Feb 2008)

Hallo Community,

hat schonmal wer mit der @EJB Annotation (EJB 3.0) gearbeitet?

Diese soll ja das Hantieren mit dem Context und dessen Lookup ersparen. Laut den Tutorials von Sun gklappt das mit stateful als auch mit stateless Session-Beans.

Konkret arbeite ich an einem Workshop unter Verwendung vom JBoss 4.2.2 und JDK 6.
Ich hab auch das Remote-Interface für die business logic und die Bean dazu erstellt.
Jetzt will ich den Client in ein anderes JAR und auch in ein anderes Projekt auslagern.

Aber erstmal soll das mit der @EJB-Annotation funktionieren ;-).

thx4help


----------



## Guest (11. Feb 2008)

Das geht nur innerhalb des Servers, nicht auf dem Client.


----------



## mikachu (11. Feb 2008)

Danke, das dacht ich mir schon fast.
Könnten die Verfasser solcher Schriften das nicht klar hinschreiben?

Oder gibt es eine bessere, elegantere Lösung für den Client, dass dieser gleich mit in die EAR eingepackt werden kann. So ist es zumindest in dem Java EE SDK, denn da gibt es eine appclient.bat, welche diese Aufgabe übernimmt.
Mit Hilfe dieses Skriptes kann man auf die Client-Applikation innerhalb der EAR zugreifen.

Gibt es sowas auch für den JBoss 4.2.2?

thx again


----------



## crypti (2. Apr 2008)

Hi!

Ich versuche mich hier gerade an den Message Driven Beans und stehe vor einem Problem das ich momentan nicht gelöst bekomme. Vielleicht habe ich ja auch einen falschen Ansatz...

Ich möchte eine MDB an verschiedene Message Queues anbinden. Dazu soll immer die gleiche Klasse verwendet werden. Durch eine ankommende Nachricht wird die Klasse ja dann instanziiert und es kann darin gearbeitet werden.
Wenn man das per Annotations macht, dann kann man die Klasse ja nur einmal verwenden.

```
@MessageDriven(activationConfig =
{
@ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"),
@ActivationConfigProperty(propertyName="destination", propertyValue="FOO.BAR"),
})
@ResourceAdapter("messageressource......rar")
public class MessageBean implements MessageListener {...}
```

Wenn ich über den Deployment Descriptor gehe, dann kann ich zumindest das ganze schon mehrfach machen. Das bedeutet die Message Driven Bean horcht auf mehreren Wegen am JNDI.


```
<message-driven>  	
<ejb-name>ModuleA</ejb-name>
<ejb-class>de.myproject.beans.MessageBean</ejb-class>
<activation-config>
<activation-config-property>
<activation-config-property-name>destination</activation-config-property-name>
<activation-config-property-value>FOOA.BAR</activation-config-property-value>
</activation-config-property>  			
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
</activation-config-property>
</activation-config>  		
</message-driven>

<message-driven>  	
<ejb-name>ModuleB</ejb-name>
<ejb-class>de.myproject.beans.MessageBean</ejb-class>
<activation-config>
<activation-config-property>
<activation-config-property-name>destination</activation-config-property-name>
<activation-config-property-value>FOOB.BAR</activation-config-property-value>
</activation-config-property>  			
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
</activation-config-property>
</activation-config>  		
</message-driven>
```

Beim startet des Applicationservers werden ja die entsprechenden Queues über den JNDI an meine Klasse gebunden.
Ist esmöglich das ganze auch in Laufzeit zu machen? Also quasi über irgendeinen ApplicationConext oder so?

Vielleicht denke ich ja auch ganz falsch... und es geht viel eleganter.

Freue mich über Rückmeldungen von den Experten hier im Forum. Vielen Dank schon mal!


----------



## crypti (2. Apr 2008)

sorry,das sollte eigentlich in einen neuen Topic. Bitte Löschen!


----------

