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.
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 ?
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.
-->
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 ?
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.
[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.
[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…