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

Struts 2 Java Discussion :

Problème d'utilisation d'objet venant d'un projet JPA importé dans un projet Struts2 sous Eclipse


Sujet :

Struts 2 Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Problème d'utilisation d'objet venant d'un projet JPA importé dans un projet Struts2 sous Eclipse
    Bonjour à tous.

    C'est la première fois que je post un message sur ce forum, après y avoir lu bon nombre de messages qui m'ont aidé. J'espère que cette fois encore vous pourrez m'aider parce que j'ai beau chercher partout, je trouve pas la solution a mon problème...

    Dans le cadre de la réalisation d'un projet J2EE de gestion client pour l'acquisition de mon diplôme de développeur (je suis débutant, et je suis en stage de validation de compétence), j'ai réalisé un projet JPA-Hibernate ou j'y ai mis mes classes métier et y gère l'accès à une base de données MySQL.
    J'ai ensuite créer un projet Struts2. J'ai mis mon projet JPA dans le build path de mon projet Struts2 (j'utilise Eclipe 3.5).

    Mon problème est le suivant. Lorsque j'essaye d'utiliser un objet venant de mon projet JPA importé, j'ai aucun message d'erreur dans le code, mais quand je test le tout dans mon navigateur, j'ai le message suivant :

    Etat HTTP 500 -

    type Rapport d'exception

    message

    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

    exception

    javax.servlet.ServletException: L'exécution du filtre (Filter) a lancé une exception
    cause mère

    java.lang.NoClassDefFoundError: Lutilitaire/Utilisateur;
    java.lang.Class.getDeclaredFields0(Native Method)
    java.lang.Class.privateGetDeclaredFields(Class.java:2291)...
    Je vois pas ce que j'ai mal ou pas configurer pour que ça marche correctement parce que tout le reste à l'air de bien fonctionner...
    Si vous savais me guider...
    Au besoin, je peux vous montrer les codes que j'utilise.

  2. #2
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    est ce que tu veux nous montrer le code de ton web.xml !

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Je suis content d'avoir une réponse! :) merci moutambo.
    Il me reste une semaine avant la fin de mon stage.

    Si je n'ai pas une solution aujourd'hui, je pense que je vais simplement copier/coller toutes les classes de mon projet JPA dans mon projet Struts. Ça cassera un peu mon architecture N-tiers, mais je pense que ça fonctionnera.

    Sinon voila le code de mon "web.xml":

    Code xml : 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
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>infoconfig_Struts</display-name>
     
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
      </welcome-file-list>
     
      <filter>
    	<filter-name>struts2</filter-name>
    	<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
      </filter>
      <filter-mapping>
    	<filter-name>struts2</filter-name>
    	<url-pattern>/*</url-pattern>
      </filter-mapping>
     
      <context-param>
    	<param-name> org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG </param-name>
    	<param-value>/WEB-INF/tiles.xml</param-value>
      </context-param>
     
      <listener>
    	<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
      </listener>
    </web-app>

    Ça te parle ?

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    T'as oublié de déclarer le filtre de Servlet action de Struts.

    Donc il faut déclarer l'ActionServlet de Struts dans le web.xml avec les tlds comme le Tiles... HTML..bean etc.

    Dans le web-inf faut que tu crées ou si tu as déja Struts-Config faut le mettre dans le Web-Inf et aussi les bean.tld + html.tld + tiles.tld + logic.tld + nested.tld au cas ou tu travailles avec eux.

    ensuite essaie de copier coller ce web.xml :
    Code xml : 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
    <?xml version="1.0" encoding="ISO-8859-1" ?>
     
     
    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    	version="2.5">
    	<servlet>
    		<servlet-name>action</servlet-name>
    		<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    		<init-param>
    			<param-name>config</param-name>
    			<param-value>/WEB-INF/struts-config.xml
    			</param-value>
    		</init-param>
    		<init-param>
    			<param-name>debug</param-name>
    			<param-value>2</param-value>
    		</init-param>
    		<init-param>
    			<param-name>detail</param-name>
    			<param-value>2</param-value>
    		</init-param>
    		<init-param>
    			<param-name>validate</param-name>
    			<param-value>true</param-value>
    		</init-param>
    		<init-param>
    			<param-name>multipartClass</param-name>
    			<param-value>
    				org.apache.struts.upload.CommonsMultipartRequestHandler
    			</param-value>
    		</init-param>
     
    		<load-on-startup>2</load-on-startup>
    	</servlet>
     
    	<servlet-mapping>
    		<servlet-name>action</servlet-name>
    		<url-pattern>*.do</url-pattern>
    	</servlet-mapping>
    	<session-config>
    		<session-timeout>30</session-timeout>
    	</session-config>
    	<welcome-file-list>
    		<welcome-file>index.jsp</welcome-file>
     
    <jsp-config>
     
    		<taglib>
    			<taglib-uri>/tags/struts-bean</taglib-uri>
    			<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
    		</taglib>
     
    		<taglib>
    			<taglib-uri>/tags/struts-html</taglib-uri>
    			<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
    		</taglib>
     
    		<taglib>
    			<taglib-uri>/tags/struts-logic</taglib-uri>
    			<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
    		</taglib>
     
    		<taglib>
    			<taglib-uri>/tags/struts-nested</taglib-uri>
    			<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
    		</taglib>
     
    		<taglib>
    			<taglib-uri>/tags/struts-tiles</taglib-uri>
    			<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
    		</taglib>
    </jsp-config>
     
    </web-app>

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Je ne comprends pas tout ce que tu m'as répondu.
    Je suis débutant...
    Ce que je pense avoir compris, c'est que j'ai oublié le Struts-config?

    Il me semblait que ce fichier était nécessaire avec Struts1 mais pas avec Struts2. Ce n'est pas le cas?

    J'ai mon fichier Struts.xml que j'ai placé dans mon dossier "src"
    dont voila le code:

    Code xml : 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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>
    	<constant name="struts.enable.DynamicMethodInvocation" value="true" />
    	<constant name="struts.devMode" value="false" />
     
    	<include file="application.xml"/>
     
    	<package name="default" namespace="/" extends="struts-default">
    		<default-action-ref name="index" />
    		<action name="index">
    			<result type="redirectAction">
    				<param name="actionName">accueil</param>
    				<param name="namespace">/</param>
    			</result>
    		</action>
    	</package>
    </struts>

    et je définis mes action Struts dans mon fichier application.xml qui se trouve au même endroit.

    J'utilise Tiles pour définir mon layout.

    Qu'est-ce que sont les fichiers .tld? J'en ai pas entendu parlé.

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Je viens de me renseigner sur les fichier .tld et effectivement, ils ne sont pas nécessaire en struts2.
    Toutes les .tld sont réunit dans un seul: struts-tags.tld .

    Et plus besoin de le mettre dans le web-inf,
    pour les utiliser, je copie juste
    <%@ taglib prefix="s" uri="/struts-tags" %>
    dans mes .jsp

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Toujours personne pour m'aider svp?

    Meme en copiant toutes les classes du projet Jpa dans celui de Struts2, ca ne fonctionne pas.

    J'ai l'erreur suivante:

    Etat HTTP 500 -

    type Rapport d'exception

    message

    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

    exception

    javax.servlet.ServletException: L'exécution du filtre (Filter) a lancé une exception
    cause mère

    java.lang.ExceptionInInitializerError
    persistance.daoUtilisateur.<init>(daoUtilisateur.java:13)
    beanAction.connexionAction.<init>(connexionAction.java:17)
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    java.lang.Class.newInstance0(Class.java:355)
    java.lang.Class.newInstance(Class.java:308)
    com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:119)
    com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
    com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:139)
    com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:109)
    com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:288)
    com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:388)
    com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:187)
    org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
    org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
    com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
    cause mère

    javax.persistence.PersistenceException: org.hibernate.HibernateException: Hibernate Dialect must be explicitly set
    org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:698)
    org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:121)
    javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:51)
    javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)
    persistance.EMF.<clinit>(EMF.java:8)
    persistance.daoUtilisateur.<init>(daoUtilisateur.java:13)
    beanAction.connexionAction.<init>(connexionAction.java:17)
    sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    java.lang.Class.newInstance0(Class.java:355)
    java.lang.Class.newInstance(Class.java:308)
    com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:119)
    com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
    com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:139)
    com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:109)
    com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:288)
    com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:388)
    com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:187)
    org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
    org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
    com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
    J'ai meme copié mon persistence.xml du projet jpa dans mon meta-inf du projet struts, mais rien n'y fait...

    Je pense que moutambo a raison quand il dit que le probleme vient de mon web.xml, mais je ne vois pas du tout quoi y rajouter.

    J'ai testé avec le bout de code qu'il m'a donné, mais non, ca ne fonctionne toujours pas. mon stage se finit dans quelques jours :'(

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Je cherche toujours a m'en arracher les cheveux...

    D'après ce que je lis, Spring est nécessaire comme passerelle entre JPA et Struts. C'est une obligation?

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    C'est bon, j'ai réglé mon problème en intégrant Spring a mon projet.

  10. #10
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 1
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Bigguy Voir le message
    C'est bon, j'ai réglé mon problème en intégrant Spring a mon projet.
    Bonjour ,

    c'est vrai que tu as posté ta propre solution il y a 4 ans, mais j'aimerai bien savoir d'après ton expérience si c'est la seule solution possible !

    Actuellement je suis en stage de fin d'étude et je veux utiliser les EJB + Struts 2 et j'ai la même erreur que tu avais.

    Merci bien de vouloir m'aider (sans oublier que je n'ai aucune idée sur Spring)

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/05/2015, 23h19
  2. Réponses: 0
    Dernier message: 17/01/2011, 14h39
  3. Réponses: 12
    Dernier message: 03/07/2009, 13h37
  4. Réponses: 4
    Dernier message: 14/03/2009, 02h45

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