В моем приложении, когда я нажимаю кнопку «Добавить» и после того, как я ввожу значения и пытаюсь сохранить объект в базе данных, он сохраняется как нулевое значение без сообщения об ошибке в файле журнала. Первичный ключ генерируется из последовательности, которую я просто введите значение имени. Вот код страницы jsf
<p:inputText id="newnom" value="#{groupeBean.nomValue}"
required="true" validatorMessage="Le nom est obligatoire">
<f:validateRequired />
<p:ajax event="blur" update="newnom_msg"></p:ajax>
</p:inputText>
<p:message id="newnom_msg" for="newnom" />
<p:separator />
<h:outputText value="Tous les Champs sont Obligatoire"
class="font-custom" style="font-size:9pt"></h:outputText>
<br />
<p:commandButton value="Enregistrer" update="growl"
actionListener="#{groupeBean.create}"
oncomplete="GroupeCree.hide()"></p:commandButton>
и это код управляемого компонента
private Groupe newGroupe=new Groupe();
private List<SelectItem> grpsItem;
private DataModel groupes;
private Groupe editGroupe;
private String nomValue;
private DaoGroupe gdao= new DaoGroupe();
public String getNomValue() {
System.out.println(" gnom "+nomValue);
return nomValue;
}
public void setNomValue(String nom) {
System.out.println(" gNOM "+nom);
this.nomValue = nom;
}
public String create()
{
System.out.println(" creategnom "+nomValue);
newGroupe.setNom(nomValue);
gdao.ajouter(newGroupe);
newGroupe=new Groupe();
groupes.setWrappedData(gdao.selectAll());
FacesMessage msg = new FacesMessage("Ajout effectué avec succés");
FacesContext.getCurrentInstance().addMessage(null, msg);
return "list";
}
public Groupe getNewGroupe() {
System.out.println(" NEWgrp "+newGroupe.getNom());
return newGroupe;}
public void setNewGroupe(Groupe newGroupe) {
this.newGroupe = newGroupe;
System.out.println(" NEWgrp "+newGroupe.getNom());
}
Я не использую EJB, так как я новичок, я использую класс дао, и вот его код
public class DaoGroupe {
private static final String JPA_UNIT_NAME="Portail";
private EntityManager entityManager=Persistence.createEntityManagerFactory(
JPA_UNIT_NAME).createEntityManager();;
protected EntityManager getEntityManager() {
if (entityManager == null) {
entityManager = Persistence.createEntityManagerFactory(
JPA_UNIT_NAME).createEntityManager();
}
return entityManager;
}
public void ajouter(Groupe g)
{
EntityTransaction tx = getEntityManager().getTransaction();
tx.begin();
entityManager.persist(g);
tx.commit();
}
я не могу понять, что не так, нет сообщения об ошибке, и я не знаю, в чем ошибка, это трассировка стека после того, как Адарш сказал мне сделать
2014-01-03T23:06:33.136+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.583+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.711+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.786+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.787+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.788+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.789+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.790+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.791+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.792+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.793+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.794+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.795+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.795+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.796+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.797+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.798+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.799+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.800+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.801+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.802+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.803+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.803+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.804+0100|Infos: visiting unvisited references
2014-01-03T23:06:33.920+0100|Infos: EJB5181:Portable JNDI names for EJB AuthentificationEjb: [java:global/Portail/AuthentificationEjb!com.portail.beans.AuthentificationEjb, java:global/Portail/AuthentificationEjb]
2014-01-03T23:06:35.953+0100|Infos: Registering the Jersey servlet application, named org.eclipse.persistence.jpa.rs.service.JPARSApplication, at the servlet mapping /persistence/*, with the Application class of the same name.
2014-01-03T23:06:35.957+0100|Infos: Initialisation de Mojarra 2.2.0 ( 20130502-2118 https://svn.java.net/svn/mojarra~svn/tags/2.2.0@11930) pour le contexte «/Portail»
2014-01-03T23:06:36.099+0100|Avertissement: WELD-001529 An InjectionTarget implementation is created for a class org.primefaces.context.PrimeFacesContextFactory which does not have any appropriate constructor.
2014-01-03T23:06:36.107+0100|Avertissement: WELD-001529 An InjectionTarget implementation is created for a class org.primefaces.context.PrimePartialViewContextFactory which does not have any appropriate constructor.
2014-01-03T23:06:36.427+0100|Avertissement: JSF1057 : La ressource référencée par from-view-id, «index.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.427+0100|Avertissement: JSF1058 : La ressource référencée par to-view-id, «loginfailed.xhtml», pour la navigation depuis «/index.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.428+0100|Avertissement: JSF1057 : La ressource référencée par from-view-id, «loginfailed.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.428+0100|Avertissement: JSF1058 : La ressource référencée par to-view-id, «loginfailed.xhtml», pour la navigation depuis «/loginfailed.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.428+0100|Avertissement: JSF1057 : La ressource référencée par from-view-id, «loginfailed.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.429+0100|Avertissement: JSF1058 : La ressource référencée par to-view-id, «forum.xhtml», pour la navigation depuis «/loginfailed.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.429+0100|Avertissement: JSF1057 : La ressource référencée par from-view-id, «loginfailed.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.429+0100|Avertissement: JSF1058 : La ressource référencée par to-view-id, «forum.xhtml», pour la navigation depuis «/loginfailed.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.430+0100|Avertissement: JSF1057 : La ressource référencée par from-view-id, «index.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.430+0100|Avertissement: JSF1058 : La ressource référencée par to-view-id, «forum.xhtml», pour la navigation depuis «/index.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.430+0100|Avertissement: JSF1057 : La ressource référencée par from-view-id, «index.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.430+0100|Avertissement: JSF1058 : La ressource référencée par to-view-id, «forum.xhtml», pour la navigation depuis «/index.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.431+0100|Avertissement: JSF1057 : La ressource référencée par from-view-id, «indexAdmin.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.431+0100|Avertissement: JSF1058 : La ressource référencée par to-view-id, «administrateur.xhtml», pour la navigation depuis «/indexAdmin.xhtml», ne commence pas par ’’/’’. Ce caractère sera ajouté pour vous, mais l’erreur doit être corrigée.
2014-01-03T23:06:36.847+0100|Infos: Running on PrimeFaces 4.0
2014-01-03T23:06:36.866+0100|Infos: Loading application [Portail] at [/Portail]
2014-01-03T23:06:37.021+0100|Infos: Portail was successfully deployed in 5 701 milliseconds.
2014-01-03T23:06:38.198+0100|Infos: gnom null
2014-01-03T23:06:47.946+0100|Infos: creategnom null
2014-01-03T23:06:47.947+0100|Avertissement: java.lang.IllegalArgumentException: Object: com.portail.entities.Groupe@24b1fc1d is not a known entity type.
javax.el.ELException: java.lang.IllegalArgumentException: Object: com.portail.entities.Groupe@24b1fc1d is not a known entity type.
at com.sun.el.parser.AstValue.invoke(AstValue.java:279)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:149)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:818)
at javax.faces.component.UICommand.broadcast(UICommand.java:300)
at javax.faces.component.UIData.broadcast(UIData.java:1108)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.IllegalArgumentException: Object: com.portail.entities.Groupe@24b1fc1d is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at com.portail.dao.DaoGroupe.ajouter(DaoGroupe.java:27)
at com.portail.managedBeans.GroupeBean.create(GroupeBean.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.sun.el.parser.AstValue.invoke(AstValue.java:275)
... 41 more
это код класса Groupe
@Entity
@NamedQuery(name = "Groupe.findAll", query = "SELECT g FROM Groupe g")
public class Groupe implements Serializable {
private static final long serialVersionUID = 1L;
@SequenceGenerator(name = "grp_seq", sequenceName = "SEQ_PK_GRP", initialValue = 1, allocationSize = 1)
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "grp_seq")
@Column(name = "ID_GROUPE")
private long idGroupe;
@Column(length = 20, unique = true)
private String nom;
// bi-directional many-to-one association to Etudiant
@OneToMany(mappedBy = "groupe", cascade = CascadeType.ALL)
private List<Etudiant> etudiants;
// bi-directional many-to-many association to Professeur
@ManyToMany(mappedBy = "groupes", cascade = CascadeType.ALL)
private List<Professeur> professeurs;
public Groupe() {
}
public long getIdGroupe() {
return this.idGroupe;
}
public void setIdGroupe(long idGroupe) {
this.idGroupe = idGroupe;
}
public String getNom() {
return this.nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public List<Etudiant> getEtudiants() {
return this.etudiants;
}
public void setEtudiants(List<Etudiant> etudiants) {
this.etudiants = etudiants;
}
public Etudiant addEtudiant(Etudiant etudiant) {
getEtudiants().add(etudiant);
etudiant.setGroupe(this);
return etudiant;
}
public Etudiant removeEtudiant(Etudiant etudiant) {
getEtudiants().remove(etudiant);
etudiant.setGroupe(null);
return etudiant;
}
public List<Professeur> getProfesseurs() {
return this.professeurs;
}
public void setProfesseurs(List<Professeur> professeurs) {
this.professeurs = professeurs;
}
Моя СУБД — Oracle10g xe.
Avertissement: java.lang.IllegalArgumentException: Object: com.portail.entities.Groupe@50bd45e1 is not a known entity type. javax.el.ELException: java.lang.IllegalArgumentException: Object: com.portail.entities.Groupe@50bd45e1 is not a known entity type.
- person MeknessiHamida   schedule 02.01.2014public String create() { newGroupe.setNom(nom); gdao.ajouter(newGroupe); groupes.setWrappedData(gdao.selectAll()); newGroupe=new Groupe(); FacesMessage msg = new FacesMessage("Ajout effectué avec succés"); FacesContext.getCurrentInstance().addMessage(null, msg); return "list"; }
- person MeknessiHamida   schedule 02.01.2014@SequenceGenerator(name = "grp_seq", sequenceName = "SEQ_PK_GRP", initialValue = 1, allocationSize = 1) @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "grp_seq") @Column(name = "ID_GROUPE") private long idGroupe; @Column(length = 20, unique = true) private String nom;
- person MeknessiHamida   schedule 02.01.2014