Bonjour,
Je suis débutant sur Seam et j'essaye de faire fonctionner ce code pour ajouter un produit dans la bd :
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 package coursjsf; import javax.ejb.Init; import javax.persistence.Entity; import javax.persistence.Id; import org.hibernate.validator.Length; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; /** * Entité produit, qui dans un cas réel serait une entité persistante dans la base de données. */ @Entity @Name("produit") @Scope(ScopeType.SESSION) public class Produit { @Id @Length(max=10) private String code; @Length(max=100) private String libelle; @Length(max=5000) private String description; Produit() { } /** * Crée un produit, avec un code servant d'identifiant, un libellé court et une description plus détaillé. * @param code * @param libelle * @param description */ public Produit(String code, String libelle, String description) { this.code = code; this.libelle = libelle; this.description = description; } /** * Renvoie le code du produit, qui sert d'identifiant. Chaque produit a un code différent. * @return le code du produit. */ public String getCode() { return code; } /** * Renvoie le libellé du produit. * @return le libellé du produit. */ public String getLibelle() { return libelle; } /** * Renvoie la description détaillée du produit, qui est au format HTML. * @return la description du produit. */ public String getDescription() { return description; } }JSF :
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 package coursjsf; import javax.ejb.Remove; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import org.hibernate.validator.Valid; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.JndiName; import org.jboss.seam.annotations.Name; @Stateless @Name("addManagerProduit") @JndiName("addManagerProduit") public class AddActionProduit { @PersistenceContext private EntityManager em; @Valid @In private Produit produit; public void addProduit() { em.persist(produit); } @Remove public void remove () { } }
Une exception survient :
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 <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" xmlns:c="http://java.sun.com/jstl/core" xmlns:io="http://www.iocean.fr/iotags"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link href="css/site.css" rel="stylesheet" type="text/css" /> <title>TP JSF/Seam</title> </head> <body> <h:form> <h:inputText id="username" value="#{produit.libelle}" /> <h:commandButton value="Valider" action="#{addManagerProduit.addProduit}" /> </h:form> </body> </html>
Avez-vous une idée ?
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131 javax.servlet.ServletException: Could not instantiate Seam component: produit javax.faces.webapp.FacesServlet.service(FacesServlet.java:277) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:38) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:42) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177) org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267) org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380) org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507) org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) cause m�re org.jboss.seam.InstantiationException: Could not instantiate Seam component: produit org.jboss.seam.Component.newInstance(Component.java:2096) org.jboss.seam.Component.getInstance(Component.java:1978) org.jboss.seam.Component.getInstance(Component.java:1940) org.jboss.seam.Component.getInstance(Component.java:1934) org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55) org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50) org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:166) org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:53) javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53) com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72) org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44) org.jboss.el.parser.AstValue.getValue(AstValue.java:63) org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71) javax.faces.component.UIOutput.getValue(UIOutput.java:184) com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:201) com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:284) com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:154) javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861) javax.faces.component.UIComponent.encodeAll(UIComponent.java:946) javax.faces.render.Renderer.encodeChildren(Renderer.java:148) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) javax.faces.component.UIComponent.encodeAll(UIComponent.java:936) javax.faces.component.UIComponent.encodeAll(UIComponent.java:942) com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592) org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:196) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:38) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:42) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177) org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267) org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380) org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507) org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) cause m�re java.lang.NoSuchMethodException: coursjsf.Produit.<init>() java.lang.Class.getConstructor0(Unknown Source) java.lang.Class.getConstructor(Unknown Source) org.jboss.seam.Component.instantiateEntityBean(Component.java:1375) org.jboss.seam.Component.instantiate(Component.java:1318) org.jboss.seam.Component.newInstance(Component.java:2074) org.jboss.seam.Component.getInstance(Component.java:1978) org.jboss.seam.Component.getInstance(Component.java:1940) org.jboss.seam.Component.getInstance(Component.java:1934) org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55) org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50) org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:166) org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:53) javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53) com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72) org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44) org.jboss.el.parser.AstValue.getValue(AstValue.java:63) org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71) javax.faces.component.UIOutput.getValue(UIOutput.java:184) com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:201) com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:284) com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:154) javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861) javax.faces.component.UIComponent.encodeAll(UIComponent.java:946) javax.faces.render.Renderer.encodeChildren(Renderer.java:148) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) javax.faces.component.UIComponent.encodeAll(UIComponent.java:936) javax.faces.component.UIComponent.encodeAll(UIComponent.java:942) com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592) org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:196) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:38) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:42) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177) org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267) org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380) org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507) org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
Merci![]()
Partager