IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Wildfly/JBoss Java Discussion :

Impossible de charger jboss-el dans JBoss?


Sujet :

Wildfly/JBoss Java

  1. #1
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut Impossible de charger jboss-el dans JBoss?
    Suivant les instruction ce ce site:
    http://yigitdarcin.wordpress.com/200...s-el-with-jsf/

    je fais les changements suivant dans ma webapp pour disposer des expressions paramétrées en JSF:

    1) je rajoute jboss-el à mon war (via maven).
    2) je teste et j'instancie manuellement org.jboss.el.ExpressionFactoryImpl
    tout marche nickel
    3) je modifie le web.xml pour lui dire de faire cette instanciation:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <context-param>
      <param-name>com.sun.faces.expressionFactory</param-name>
      <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
     </context-param>

    Et là, c'est la cata, au démarrage j'ai droit à un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    18:12:18,062 SEVERE [config] Unable to instantiate ExpressionFactory 'org.jboss.el.ExpressionFactoryImpl'
    18:12:18,094 ERROR [[/workflows]] Exception lors de l'envoi de l'�v�nement contexte initialis� (context initi
    alized) � l'instance de classe d'�coute (listener) org.jboss.web.jsf.integration.config.JBossJSFConfigureListen
    er
    com.sun.faces.config.ConfigurationException: It appears the JSP version of the container is older than 2.1 and unab
    le to locate the EL RI expression factory, com.sun.el.ExpressionFactoryImpl.  If not using JSP or the EL RI, make s
    ure the context initialization parameter, com.sun.faces.expressionFactory, is properly set.
    	at com.sun.faces.config.ConfigureListener.registerELResolverAndListenerWithJsp(ConfigureListener.java:546)
    	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:212)
    	at org.jboss.web.jsf.integration.config.JBossJSFConfigureListener.contextInitialized(JBossJSFConfigureListener.jav
    a:60)
    	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3910)
    	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4393)
    	at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310)
    	at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142)
    	at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)
    	at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
    	at org.jboss.web.deployers.WebModule.start(WebModule.java:97)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:597)
    	at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
    	at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
    	at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    	at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
    	at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
    	at $Proxy38.start(Unknown Source)
    	at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
    	at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
    	at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAc
    tion.java:62)
    	at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71
    )
    	at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
    	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
    	at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
    	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
    	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
    	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
    	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
    	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
    	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
    	at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
    	at org.jboss.system.ServiceController.start(ServiceController.java:460)
    	at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
    	at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
    	at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
    	at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.j
    ava:62)
    	at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
    	at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
    	at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
    	at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
    	at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
    	at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
    	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
    	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
    	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
    	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
    	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
    	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
    	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
    	at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
    	at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
    	at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
    	at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)
    	at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)
    	at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:36
    1)
    	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
    	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
    	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
    	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
    	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
    	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
    	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
    	at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService
    .java:306)
    	at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271)
    	at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)
    	at org.jboss.Main.boot(Main.java:221)
    	at org.jboss.Main$1.run(Main.java:556)
    	at java.lang.Thread.run(Thread.java:619)
    Il semblerait que le com.sun.faces.config.ConfigureListener soit incapable de trouver la classe. J'ai mis un breakpoint sur le chargement de la classe en question et son constructeur, on ne passe jamais dedans.


    Quelqu'un à une solution à proposer? J'aimerais éviter de devoir me résoudre à mettre jboss-el dans les librairies de base de jboss

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 250
    Points : 403
    Points
    403
    Par défaut
    Etrange, tu ne devrais pas avoir besoin ni de fournir la dépendance dans maven (au pire en provided) car présent dans le répertoire common/lib de JBOSS, ni d'initialiser l'el dans le web.xml.
    Quelle version de jboss utilises-tu et quelle est la version cible de JSF ?
    Persor je travaille en Jboss 6 avec du JSF2 et n'ai pas eu besoin de ce type de conf.

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par NoClassDefFound Voir le message
    Etrange, tu ne devrais pas avoir besoin ni de fournir la dépendance dans maven (au pire en provided) car présent dans le répertoire common/lib de JBOSS
    Non, ce n'est pas celle de seam qui est là
    , ni d'initialiser l'el dans le web.xml.
    Là on est d'accord.

    La solution qui a été trouvée a été de mettre le jar de jboss seam dans le common/lib de jboss, c'est cochon, mais le seul moyen de contourner ce problème. J'attends toujours une meilleure proposition.

    On utilise jboss 5, c'est pourquoi on a besoin de cette librairie. Les expressions étendues ne sont pas supportées par défaut.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 250
    Points : 403
    Points
    403
    Par défaut
    Ce merveilleux projet seam , j'ai eu tellement de merdes avec lors de la migration de mon applicatif de Jboss 4 vers Jboss 6 que je ne les compte plus.
    M'enfin, si ça peut t'aider, voilà ce que j'ai comme architecture de déploiement dans mon appli:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    myear.ear
    |-->META-INF\application.xml
    |-->myseamwebapp.war
    |-->myseamactions.jar
    |-->jboss-seam-2.2.1.CR1.jar
    |-->lib\jboss-el-1.0_02.CR5.jar
    |-->lib\jboss-seam-remoting-2.2.1.CR1.jar
    |-->lib\jboss-seam-ui-2.2.1.CR1.jar
    Aucune librairie n'est embarquée dans le WEB-INF\lib de la webapp.
    Le jar myseamactions.jar contient tous les backing beans métier.
    Au niveau de l'application.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <module>
    <web>
    <web-uri>myseamwebapp.war</web-uri>
    <context-root>/myseamwebapp</context-root>
    </web>
    </module>
    <module>
    <ejb>myseamactions.jar</ejb>
    </module>
    <module>
    <ejb>jboss-seam-2.2.1.CR1.jar</ejb>
    </module>
    Les librairies seam comme jboss-el-1.0_02.CR5.jar sont ramenées de manière transitive par maven au niveau du pom de mon ear.

    Par contre, toute les autres librairies de type el doivent être exclues :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <dependency>
    <groupId>org.jboss.seam</groupId>
    <artifactId>jboss-seam</artifactId>
    <version>2.2.1.CR1</version>
    <type>ejb</type>
    <scope>compile</scope>
    <exclusions>
    <exclusion>
    <artifactId>el-api</artifactId>
    <groupId>javax.el</groupId>
    </exclusion>
    </exclusions>
    </dependency>
    La stacktrace est curieuse, quelle est la valeur du champ version dans le web.xml de ta webapp ?
    Une dernière chose envisageable, mais je ne sais plus si c'est possible en Jboss 5, serais de monter de version de JSF (jsf-api et jsf-impl).

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    non monter de version n'est pas possible, sinon je l'aurais fait. La doc de jboss est claire là dessus. On peux remplacer majorra par myfaces, mais on ne peux pas remplacer majorra par un autre majorra


    le placement de jboss el, j'ai déjà essayé. En gros voilà ce qui se passe:

    1) le war démarre
    2) jboss trouve qu'il y a une implémentation custom de EL a chager
    3) jboss tente de l'instancier en cherchant dans le classloader de jboss et non du war, majorra ne la trouve pas
    le web.xml est en version webapp 2.5

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 250
    Points : 403
    Points
    403
    Par défaut
    J'ai retrouvé ce que j'avais en Jboss 4, j'embarquais la librairie el-api-1.0.jar dans mon ear.
    Sinon, j'avoue que je donnes ma langue au chat, cela ressemble à un problème de conflit de librairies (servlet-api ?) entre celles embarquées dans JBoss et celles de ta webapp.
    Bon courage

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/03/2010, 17h44
  2. Réponses: 4
    Dernier message: 23/06/2008, 13h41
  3. [hibernate] comment integrer hibernate dans JBoss
    Par apoca dans le forum Wildfly/JBoss
    Réponses: 11
    Dernier message: 25/05/2007, 12h39
  4. peut on utiliser toplink essential dans jboss?
    Par mbouzouita dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 25/01/2007, 07h37
  5. JNDI dans Jboss
    Par soumou dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 11/12/2006, 12h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo