¿C贸mo llamar a EJB desde Servlet? JBOSS ( TOMCAT)

Foramontano
28 de Julio del 2003
Hola a todos:

Estoy empezando mi "relaci贸n" con los EJBs. Hasta ahora he conseguido realizar satisfactoriamente una llamada a un EJB de sesi贸n desde una cliente java(aut贸nomo). Ahora me gustar铆a realizar la llamada al mismo EJB pero desde un cliente Web ( en mi caso desde un servlet). 脡n este caso estoy teniendo problemas y no consigo que se produzca la llamada.

Para m谩s informaci贸n os dir茅 que trabajo con Tomcat4 integrado dentro de Jboss.

No s茅 si estar谩 bien,pero hasta ahora lo que he hecho de especial en "la parte web" ( en los ficheros/directorios de Tomcat) es, en el fichero web.xml, a帽adir una referencia al EJB desplegado en Jboss.
...
<ejb-ref>
<description>Referencia externa al Hola
Mundo</description>
<ejb-ref-name>ejb/HolaHome</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>ejb.HolaHome</home>
<remote>ejb.Hola</remote>
</ejb-ref>
...
¿Es esto necesario, o al estar Tomcat integrado en Jboss hay que hacerlo de otra forma?¿Es en el directorio correspondiente de Tomcat donde se despliega la parte web, o es en el directorio deploy del jboss?

Por otra parte la parte "importante" de c贸digo del servlet ser铆a:
...
Hola hola=null;
try {
Context ctx = new InitialContext();
System.out.println("Creo initial context");
HolaHome hh = (HolaHome)
javax.rmi.PortableRemoteObject.narrow (ctx.lookup("ejb/HolaHome"),HolaHome.class);
System.out.println("Se encontro Referencia del EJB!");
hola= hh.create();
..

¿Est谩 esto bien planteado, o hay que hacerlo de otra forma?

En fin que si veis que hay alg煤n(unos) conceptos que me fallan, coment谩dmelo.

Un saludo y gracias de antemano.

Karlus
28 de Julio del 2003
Hola,

yo estoy con este mismo problema. Bueno diria que peor que tu.

Te explico haber si entre los dos lo sacamos:
- Tengo un servlet pero no se donde ponerlo para que se ejecute. Tu has podido realizar la llamado al servlet??? aunque no ejecutes nada de EJBs???

Bueno si consigo algo ya te lo comunicar茅. Si sabes como hacerlo te agradeceria me ayudaras.

Muchas gracias,

Ge
28 de Julio del 2003
Tienes que hacer:

Hola hola=null;
try {
Context ctx = new InitialContext();
System.out.println("Creo initial context");
HolaHome hh = (HolaHome)
javax.rmi.PortableRemoteObject.narrow (ctx.lookup("ejb/Hola"),HolaHome.class);
System.out.println("Se encontro Referencia del EJB!");
hola= hh.create();