[RESOLU][J2EE] JBoss Eclipse Tutorial

J’ai suivi pas à pas le tutorial suivant : http://docs.jboss.com/jbosside/tutorial/bu…html/index.html fourni pas JBoss.
Il s’agit de créer une application J2EE avec une page qui demande un nombre et lorsque l’on clique sur suivant il calcul les N nombres de la suite de Fibonaci demandés grâce à un bean.
XDoclet est utilisé pour créer pas mal de fichiers de configuration.

J’ai un problème avec une Servlet et un Bean. L’exception est levé dans le code suivant :

try { Context context = new InitialContext(); Object ref = context.lookup("java:/comp/env/ejb/Fibo"); home = (FiboHome) PortableRemoteObject.narrow(ref, FiboHome.class); } catch (Exception e) { throw new ServletException("Lookup of java:/comp/env/ failed"); }

Etant donné que j’ai suivit le tutorial à la lettre, je ne comprend pas pourquoi il ne trouve pas mon Bean.

[info]
Eclipse 3.1
JBoss Eclipse IDE
JBoss 4.x
JDK 1.6.0 beta2
[/info]

Tiens c’est marrant moi aussi j’avais fait ce tutorial, et j’avais suivi scrupuleusement la chose. Cependant XDoclet a refusé purement et simplement de me générer quoi que ce soit et m’a insulté copieusement.

Du coup j’ai laissé tombé et je sais tjrs pas utiliser xdoclet.

Question (con): vois-tu ton EJB dans la web console de ton Jboss ?

Pour ta question con, l’applet de la console JBoss ne veux pas s’afficher donc je n’ai aucun moyen de vérifier, je tenterai chez moi… B)

Et par la console jmx ?
Y’a-t-il eu des erreurs au déploiement ?

Effectivement, il me sort une exception au déploiement de mon bean !

Est-ce que les interfaces home et remote ont bien été générées par xdoclet ? Si oui, faudrait que tu nous montres ton ejb-jar.xml.

Pas de problème du coté de XDosklets, tout fonctionne à merveille (il est vraiment bien fait comme plugin : JBoss Eclipse IDE) B)

Voici mon ejb-jar.xml :

[codebox]

<?xml version="1.0" encoding="UTF-8"?>


Generated by XDoclet

  <!-- Session Beans -->
  <session >
     <description><![CDATA[Description for Fibo]]></description>
     <display-name>Name for Fibo</display-name>

     <ejb-name>Fibo</ejb-name>

     <home>tutorial.interfaces.FiboHome</home>
     <remote>tutorial.interfaces.Fibo</remote>
     <ejb-class>tutorial.ejb.FiboSession</ejb-class>
     <session-type>Stateless</session-type>
     <transaction-type>Container</transaction-type>

  </session>

 <!--
   To add session beans that you have deployment descriptor info for, add
   a file to your XDoclet merge directory called session-beans.xml that contains
   the <session></session> markup for those beans.
 -->

  <!-- Entity Beans -->
 <!--
   To add entity beans that you have deployment descriptor info for, add
   a file to your XDoclet merge directory called entity-beans.xml that contains
   the <entity></entity> markup for those beans.
 -->

  <!-- Message Driven Beans -->
 <!--
   To add message driven beans that you have deployment descriptor info for, add
   a file to your XDoclet merge directory called message-driven-beans.xml that contains
   the <message-driven></message-driven> markup for those beans.
 -->
 <!--
   To specify your own assembly descriptor info here, add a file to your
   XDoclet merge directory called assembly-descriptor.xml that contains
   the <assembly-descriptor></assembly-descriptor> markup.
 -->
 <!--
   To specify additional method-permission elements, add a file in the merge
   directory called ejb-method-permissions.ent that contains them.
 -->
 <!--
   To specify additional container-transaction elements, add a file in the merge
   directory called ejb-container-transactions.ent that contains them.
 -->
 <!--
   To specify additional message-destination elements, add a file in the merge
   directory called ejb-message-destinations.ent that contains them.
 -->
 <!--
   To specify an exclude-list element, add a file in the merge directory
   called ejb-exclude-list.xml that contains it.
 -->
[/codebox]

En fait j’avais pas bien fait gaffe à l’exception: jboss n’arrive pas à loader la classe FiboSession et nous sort “unsupported major.minor version 49.0”. Ce serait pas lié à ta version du jdk des fois (en tout cas c’est ce que semble indiquer google) ?
Tu devrais essayer en 1.5 pour voir.

[quote=“Soltan, post:8, topic: 31084”]En fait j’avais pas bien fait gaffe à l’exception: jboss n’arrive pas à loader la classe FiboSession et nous sort “unsupported major.minor version 49.0”. Ce serait pas lié à ta version du jdk des fois (en tout cas c’est ce que semble indiquer google) ?
Tu devrais essayer en 1.5 pour voir.[/quote]

Je ne pense pas car j’ai testé avec un JDK 1.4.2 aussi… B)
Je vais tenté d’élargir tes recherches sur ce point avec google…

[EDIT]
Après réflexion, ca vient surement de là : compilation en Java6, exécution en Java1.4 ! Je retente en mode 1.4 only.
[/EDIT]

Ouaip, le coup du “unsupported major.minor version 49.0”, c’est une connerie sur les jdks. En 1.4 ça va passer même si tu as des annotations xdoclet ? Vaut mieux pas plutôt faire du 1.5 de partout ?

gné ? xdoclet marche très bien en 1.4, hein…

Je n’ai plus le problème du minor.major en ayant passé le tout en 1.4. Pour XDoclets ca ne pose pas de problème car il n’utilise pas les annotations mais des tags dans le même style que la Javadoc.

Mais j’ai toujours la même exception :

[codebox]
javax.servlet.ServletException: Lookup of java:/comp/env/ failed
tutorial.web.ComputeServlet.init(ComputeServlet.java:59)
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociatio
nValve.java:175)
org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionVa
lve.java:95)
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:52
7)
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.j
ava:112)
java.lang.Thread.run(Unknown Source)
[/codebox]

Pas cool du tout…

D’ailleur à propos des différentes version du jdk, en prod est-ce que la JVM 5.0 commence à s’imposer ?

Ah voui, merci pour la précision… B)

[quote=“ZGoblin, post:12, topic: 31084”]Je n’ai plus le problème du minor.major en ayant passé le tout en 1.4. Pour XDoclets ca ne pose pas de problème car il n’utilise pas les annotations mais des tags dans le même style que la Javadoc.

Mais j’ai toujours la même exception :

[codebox]
javax.servlet.ServletException: Lookup of java:/comp/env/ failed
tutorial.web.ComputeServlet.init(ComputeServlet.java:59)
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociatio
nValve.java:175)
org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionVa
lve.java:95)
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:52
7)
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.j
ava:112)
java.lang.Thread.run(Unknown Source)
[/codebox]

Pas cool du tout…[/quote]
Ce devrait être “java:comp/env/” et pas “java:/comp/env/”. Si y’a des bugs dans les tutos, maintenant B)

Pareil, toujours la même exception… B) Je commence à désespérer :smiley:

Il n’y a vraiment rien à configurer dans JBoss ?

et si tu logges l’exception, ça donne quoi ?

AAAYYYEEEE !!! B)

A l’installation de JBoss, j’ai tout activé même le support des EJB3 et selon ce thread : http://www.jboss.org/index.html?module=bb&…sc&start=20 ca pose problème avec le JNDI namespace :

[quote]It turns out that the JNDI namespace for the Fibo is directly under Global JNDI namespace, instead of “java:com/env”. I speculate it was caused by my EJB3 configuration (incompatible with J2EE 1.4). I fixed the problem by changing the JNDI lookup code in “ComputeServlet.java” to
Code:

Je ne maitrise pas encore toutes ces notions, je vais essayer de relire bien mon bouquin sur le namespace et me renseigner sur les différences et incompatibilité avec les EJB2 et EJB3…