Bonjour,

je suis en train de tenter de réaliser une itération très simple sur une table (Environnement) dans ma base de donnée MySql. En fait lorsque je tente d'accéder à ma page index.xhtml j'ai l'erreur suivante :

java.lang.NumberFormatException: For input string: "idEnv"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at javax.el.ArrayELResolver.toInteger(ArrayELResolver.java:378)
at javax.el.ArrayELResolver.getValue(ArrayELResolver.java:198)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
at com.sun.el.parser.AstValue.getValue(AstValue.java:183)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:224)
at com.sun.faces.facelets.el.ELText$ELTextVariable.writeText(ELText.java:227)
at com.sun.faces.facelets.el.ELText$ELTextComposite.writeText(ELText.java:150)
at com.sun.faces.facelets.compiler.TextInstruction.write(TextInstruction.java:85)
at com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:82)
at com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:183)
at com.sun.faces.facelets.component.RepeatRenderer.encodeChildren(RepeatRenderer.java:104)
at com.sun.faces.facelets.component.UIRepeat.process(UIRepeat.java:523)
at com.sun.faces.facelets.component.UIRepeat.encodeChildren(UIRepeat.java:984)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1757)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1760)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:402)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:744)
Je n'arrive pas à comprendre ce que j'ai mal fait. Mon code est le suivant.

index.xhtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<table>
    <tr>
	<td> ID </td>
	<td> NOM </td>
    </tr>
    <ui:repeat var="env" value="#{environnementBean.getListe()}">
	<tr>
        	<td> #{env.idEnv} </td>
		<td> #{env.nomEnv} </td> 
	</tr>
     </ui:repeat>
</table>
Fichier EnvironnementBean.java
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
 
package com.beans;
 
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
 
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
 
import com.dao.EnvironnementDao;
import com.entities.Environnement;
 
@ManagedBean
@RequestScoped
public class EnvironnementBean implements Serializable
{
	/**
         * 
         */
	private static final long serialVersionUID = 1L;
 
	private Environnement _environnement;
 
    // Injection de notre EJB (Session Bean Stateless)
    @EJB
    private EnvironnementDao _environnementDao;
 
    private List<Environnement> _envs;
 
    // Initialisation de l'entité env
    public EnvironnementBean() 
    {
        _environnement = new Environnement();
        _envs = new ArrayList<Environnement>();
    }
 
    public Environnement getEnvironnement()
    {
    	return _environnement;
    }
 
    public List<Environnement> getListe()
    {
    	_envs = _environnementDao.lister();
    	return _envs;
    }
 
}
Fichier EnvironnementDAO.java
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
 
package com.dao;
 
import java.util.List;
 
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
 
import com.entities.Environnement;
 
@Stateless
public class EnvironnementDao {
    private static final String JPQL_SELECT_PAR_NOM = "SELECT e FROM Environnement e WHERE e.nomEnv=:nomEnv";
    private static final String JPQL_SELECT = "SELECT e.idEnv, e.nomEnv FROM Environnement e";
    private static final String PARAM_NOM = "nomEnv";
 
    // Injection du manager, qui s'occupe de la connexion avec la BDD
    @PersistenceContext( unitName = "bdd" )
    private EntityManager em;
 
    // Enregistrement d'un nouvel environnement
    public void creer(Environnement  env) throws DAOException 
    {
        try 
        {
            em.persist( env );
        } catch ( Exception e ) 
        {
            throw new DAOException( e );
        }
    }
 
    // Recherche d'un utilisateur à partir de son adresse email
    public Environnement trouver( String mail ) throws DAOException 
    {
        Environnement env = null;
        Query requete = em.createQuery(JPQL_SELECT_PAR_NOM);
        requete.setParameter( PARAM_NOM, mail );
        try 
        {
            env = (Environnement) requete.getSingleResult();
        } catch ( NoResultException e ) 
        {
            return null;
        } catch ( Exception e ) 
        {
            throw new DAOException( e );
        }
        return env;
    }
 
    public List<Environnement> lister() throws DAOException
    {
        try 
        {
        	TypedQuery<Environnement> query = em.createQuery( JPQL_SELECT, Environnement.class );
            return query.getResultList();
        } catch ( NoResultException e ) 
        {
            return null;
        } catch ( Exception e ) 
        {
            throw new DAOException( e );
        }
    }
}
Et le fichier Environnement.java
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
 
package com.entities;
 
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
 
@Entity
public class Environnement 
{
    @Id
    @GeneratedValue( strategy = GenerationType.IDENTITY )
    private int idEnv;
	private String nomEnv;
 
 
    public int getIdEnv() 
    {
		return idEnv;
	}
 
	public void setIdEnv(int idEnv) 
	{
		this.idEnv = idEnv;
	}
 
	public String getNomEnv() 
	{
		return nomEnv;
	}
 
	public void setNomEnv(String nomEnv) 
	{
		this.nomEnv = nomEnv;
	}
}

C'est certainement un truc tout bête mais je vois pas. Si sa saute aux yeux de quelqu'un sa serait génial.

Merci à vous