2017-10-30 5 views
3

Kurz gesagt, zuerst - Ich erhalte diese Ausnahmemeldung:Doppelte Annotationsfehler - aber wo?

serverError: class javax.faces.el.EvaluationException Duplicate annotation for class: interface javax.validation.constraints.Size: @javax.validation.constraints.Size(groups=[], min=0, message={javax.validation.constraints.Size.message}, payload=[], max=128) 

Mein Code besteht aus 1 Entity-Klasse für eine Tabelle, eine EJB, ein 'Business-Class' und eine JSF-Seite; Die Ausnahme tritt auf, wenn ich EntityManager.merge() aufruft. Es gibt nur 1 Anmerkung mit ‚max = 128‘ drin:

@Size(max = 128) 
@Column(name = "name") 
private String name; 

der einzigen Ort mit duplizierten Anmerkungen ist:

@Entity 
@Table(name = "attributes", schema = "office_db") 
@XmlRootElement 
@NamedQueries({ 
    @NamedQuery(name = "Attributes.findAll", query = "SELECT a FROM Attributes a"), 
    @NamedQuery(name = "Attributes.findById", query = "SELECT a FROM Attributes a WHERE a.id = :id"), 
    @NamedQuery(name = "Attributes.findByName", query = "SELECT a FROM Attributes a WHERE a.name = :name"), 
    @NamedQuery(name = "Attributes.findByType", query = "SELECT a FROM Attributes a where a.type.id = :type") 
}) 

aber ich denke, dass legit sein sollte, wie es von Netbeans generiert wurde 8.2 aus der Datenbanktabelle.

Jetzt einige weitere Details. Zunächst wird die Tabelle:

mysql> show create table attributes\G 
*************************** 1. row *************************** 
     Table: attributes 
Create Table: CREATE TABLE `attributes` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `parent` int(11) DEFAULT NULL, 
    `type` int(11) DEFAULT NULL, 
    `name` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    KEY `parent_ix` (`parent`), 
    KEY `type_ix` (`type`), 
    CONSTRAINT `attributes_parent_fk` FOREIGN KEY (`parent`) REFERENCES `attributes` (`id`), 
    CONSTRAINT `attributes_type_fk` FOREIGN KEY (`type`) REFERENCES `attributes` (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=1301 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci 
1 row in set (0.03 sec) 

Als nächstes wird der Entity-Klasse:

import (...stuff...) 

@Entity 
@Table(name = "attributes") 
@XmlRootElement 
@NamedQueries({ 
    @NamedQuery(name = "Attributes.findAll", query = "SELECT a FROM  Attributes a"), 
    @NamedQuery(name = "Attributes.findById", query = "SELECT a FROM Attributes a WHERE a.id = :id"), 
    @NamedQuery(name = "Attributes.findByName", query = "SELECT a FROM Attributes a WHERE a.name = :name"), 
    @NamedQuery(name = "Attributes.findByType", query = "SELECT a FROM Attributes a where a.type.id = :type") 
}) 
public class Attributes implements Serializable { 

    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Basic(optional = false) 
    @Column(name = "id") 
    private Integer id; 
    @Size(max = 128) 
    @Column(name = "name") 
    private String name; 
    @OneToMany(mappedBy = "parent") 
    private Collection<Attributes> attributesCollection; 
    @JoinColumn(name = "parent", referencedColumnName = "id") 
    @ManyToOne 
    private Attributes parent; 
    @OneToMany(mappedBy = "type") 
    private Collection<Attributes> attributesCollection1; 
    @JoinColumn(name = "type", referencedColumnName = "id") 
    @ManyToOne 
    private Attributes type; 
    private static final Logger logger= 
      Logger.getLogger(Attributes.class.getName()); 

    public Attributes() { 
    } 

    public Attributes(Integer id) { 
     this.id = id; 
    } 
    public Attributes(Integer id, Integer parent, Integer type, String name) { 
     logger.info("OFFICE Attributes constructor 3 id: "+id+", parent:  "+parent+", type: "+type+", name: "+name); 
     this.parent=new Attributes(); 
     this.type=new Attributes(); 
     this.id = id; 
     this.parent.setId(parent); 
     this.type.setId(type); 
     this.name = name; 
    } 

    public Attributes(Integer parent, Integer type, String name) { 
     logger.info("OFFICE Attributes constructor 4 parent: "+parent+", type: "+type+", name: "+name); 
     this.parent=new Attributes(); 
     this.type=new Attributes(); 
     this.parent.setId(parent); 
     this.type.setId(type); 
     this.name = name; 
     logger.info("OFFICE Attributes constructor 4a"); 
    } 

    public Integer getId() { 
     return id; 
    } 

    public void setId(Integer id) { 
     this.id = id; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    @XmlTransient 
    public Collection<Attributes> getAttributesCollection() { 
     return attributesCollection; 
    } 

    public void setAttributesCollection(Collection<Attributes> attributesCollection) { 
     this.attributesCollection = attributesCollection; 
    } 

    public Attributes getParent() { 
     return parent; 
    } 

    public void setParent(Attributes parent) { 
     this.parent = parent; 
    } 

    @XmlTransient 
    public Collection<Attributes> getAttributesCollection1() { 
     return attributesCollection1; 
    } 

    public void setAttributesCollection1(Collection<Attributes> attributesCollection1) { 
     this.attributesCollection1 = attributesCollection1; 
    } 

    public Attributes getType() { 
     return type; 
    } 

    public void setType(Attributes type) { 
     this.type = type; 
    } 

    @Override 
    public int hashCode() { 
     int hash = 0; 
     hash += (id != null ? id.hashCode() : 0); 
     return hash; 
    } 

    @Override 
    public boolean equals(Object object) { 
     // TODO: Warning - this method won't work in the case the id fields are not set 
     if (!(object instanceof Attributes)) { 
      return false; 
     } 
     Attributes other = (Attributes) object; 
     if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) { 
      return false; 
     } 
     return true; 
    } 

    @Override 
    public String toString() { 
     return "docdb.Attributes[ id=" + id + " ]"; 
    } 
} 

Die EJB oder Session-Klasse:

import (...stuff...) 

@Stateless 
public class AttributesSession { 
    @PersistenceContext(unitName ="officePU") 
    private EntityManager em; 
    private static final Logger logger= 
      Logger.getLogger(AttributesSession.class.getName()); 

    public List<Attributes>findAttributes(){ 
     TypedQuery<Attributes> query= 
        em.createNamedQuery("Attributes.findAll",Attributes.class); 
     return query.getResultList(); 
    } 

    public Attributes findAttributeById(Long id){ 
     TypedQuery<Attributes> query= 
       em.createNamedQuery("Attributes.findById", Attributes.class); 
     query.setParameter("id", id); 
     return query.getSingleResult(); 
    } 

    public Integer findChildCount(Long id){ 
     TypedQuery<Integer> query=em.createNamedQuery("findChildCount",Integer.class); 
     query.setParameter("id", id); 
     return query.getSingleResult(); 
    } 

    public String createAttributes(Attributes attr){ 
     String msg=""; 

     try{ 
      em.merge(attr); 
      em.flush(); 
     } 
     catch (PersistenceException e){ 
      msg=e.getMessage(); 
     } 
     return msg; 
    } 

    public String deleteAttributes(Attributes attr){ 
     String msg = ""; 

     try{ 
      em.remove(em.merge(attr)); 
      em.flush(); 
     } 
     catch (PersistenceException e){ 
      msg=e.getMessage(); 
     } 
     return msg; 
    } 
} 

Das Geschäft oder Controller-Klasse:

import (...stuff...) 

@Named(value = "attributesController") 
@SessionScoped 
public class AttributesController implements Serializable{ 
    @EJB private AttributesSession sess; 
    private Attributes attr; 
    private List<Attributes> attrList; 
    private Integer id; 
    private Integer parent; 
    private Integer type; 
    private String name; 
    private String errmsg; 
    private static final Logger logger= 
      Logger.getLogger(AttributesController.class.getName()); 

    public AttributesController() { 
     this.attrList = new ArrayList<>(); 
     this.attr = new Attributes(); 
    } 

    public List<Attributes> getAttrList() { 
     return attrList; 
    } 

    public List<Attributes> getAttrValueList() { 
     return attrList; 
    } 

    ...getters and setters... 

    public void clearForm(){ 
     this.id=null; 
     this.name=null; 
     this.parent=null; 
     this.type=null; 
     this.errmsg=null; 
    } 

    public String createAttributes(){ 
     if (this.id!=null){ 
      attr=new Attributes(this.id,this.parent,this.type,this.name); 
     } 
     else{ 
      attr=new Attributes(this.parent,this.type,this.name); 
     } 
     errmsg=sess.createAttributes(attr); 
     attrList=sess.findAttributes(); 
     return "editattributes.xhtml"; 
    } 

    public String deleteAttributes(){ 
     if (this.id!=null){ 
      attr=new Attributes(this.id,this.parent,this.type,this.name); 
      errmsg=sess.deleteAttributes(attr); 
     } 
     attrList=sess.findAttributes(); 
     return "editattributes.xhtml"; 
    } 

    public String listAttributes(){ 
     attrList=sess.findAttributes(); 
     return "editattributes.xhtml"; 
    } 

    @PostConstruct 
    public void updateList(){ 
     attrList=sess.findAttributes(); 
    } 

    @Override 
    public String toString(){ 
     return "Name: "+((name==null)?"":name) 
       +", parent: "+((parent==null)?"":parent) 
       +", type:"+((type==null)?"":type); 
    } 
} 

Schließlich , die Stapelspur:

[2017-10-31T10:23:31.697+0000] [glassfish 5.0] [WARNING] [] [javax.enterprise.resource.webcontainer.jsf.lifecycle] [tid: _ThreadID=27 _ThreadName=http-listener-1(1)] [timeMillis: 1509445411697] [levelValue: 900] [[ 
    #{attributesController.createAttributes()}: java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.Size: @javax.validation.constraints.Size(groups=[], min=0, message={javax.validation.constraints.Size.message}, payload=[], max=128) 
javax.faces.FacesException: #{attributesController.createAttributes()}: java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.Size: @javax.validation.constraints.Size(groups=[], min=0, message={javax.validation.constraints.Size.message}, payload=[], max=128) 
     ...(deleted stuff) 
     ... 35 more 
Caused by: java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.Size: @javax.validation.constraints.Size(groups=[], min=0, message={javax.validation.constraints.Size.message}, payload=[], max=128) 
     ... (stuff deleted) 
     at docdb.__EJB31_Generated__AttributesSession__Intf____Bean__.createAttributes(Unknown Source) 
     at docdb.AttributesController.createAttributes(AttributesController.java:118) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at javax.el.ELUtil.invokeMethod(ELUtil.java:304) 
     at javax.el.BeanELResolver.invoke(BeanELResolver.java:535) 
     at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256) 
     at com.sun.el.parser.AstValue.invoke(AstValue.java:285) 
     at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304) 
     at org.jboss.weld.module.web.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) 
     at org.jboss.weld.module.web.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) 
     at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:107) 
     at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) 
     ... 36 more 
]] 

[2017-10-31T10:23:31.700+0000] [glassfish 5.0] [INFO] [] [docdb.LifeCycleListener] [tid: _ThreadID=27 _ThreadName=http-listener-1(1)] [timeMillis: 1509445411700] [levelValue: 800] [[ 
    OFFICE END PHASE INVOKE_APPLICATION 5]] 

[2017-10-31T10:23:31.701+0000] [glassfish 5.0] [INFO] [] [docdb.LifeCycleListener] [tid: _ThreadID=27 _ThreadName=http-listener-1(1)] [timeMillis: 1509445411701] [levelValue: 800] [[ 
    OFFICE]] 

[2017-10-31T10:23:31.703+0000] [glassfish 5.0] [SEVERE] [] [javax.enterprise.resource.webcontainer.jsf.context] [tid: _ThreadID=27 _ThreadName=http-listener-1(1)] [timeMillis: 1509445411703] [levelValue: 1000] [[ 
    javax.faces.el.EvaluationException: java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.Size: @javax.validation.constraints.Size(groups=[], min=0, message={javax.validation.constraints.Size.message}, payload=[], max=128) 
     at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101) 
     at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
     at javax.faces.component.UICommand.broadcast(UICommand.java:330) 
     at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:870) 
     at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1418) 
     at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) 
     at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) 
     at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:201) 
     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:670) 
     at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1580) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:258) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) 
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:652) 
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:591) 
     at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) 
     at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:371) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:238) 
     at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:463) 
     at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:168) 
     at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206) 
     at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180) 
     at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:242) 
     at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
     at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) 
     at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) 
     at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) 
     at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) 
     at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 
     at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:539) 
     at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 
     at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) 
     at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) 
     at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) 
     at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:593) 
     at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:573) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.annotation.AnnotationFormatError: Duplicate annotation for class: interface javax.validation.constraints.Size: @javax.validation.constraints.Size(groups=[], min=0, message={javax.validation.constraints.Size.message}, payload=[], max=128) 
     at sun.reflect.annotation.TypeAnnotationParser.mapTypeAnnotations(TypeAnnotationParser.java:361) 
     at sun.reflect.annotation.AnnotatedTypeFactory$AnnotatedTypeBaseImpl.<init>(AnnotatedTypeFactory.java:139) 
     at sun.reflect.annotation.AnnotatedTypeFactory.buildAnnotatedType(AnnotatedTypeFactory.java:65) 
     at sun.reflect.annotation.TypeAnnotationParser.buildAnnotatedType(TypeAnnotationParser.java:79) 
     at java.lang.reflect.Field.getAnnotatedType(Field.java:1159) 
     at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findCascadingMetaData(AnnotationMetaDataProvider.java:610) 
     at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.findPropertyMetaData(AnnotationMetaDataProvider.java:231) 
     at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getFieldMetaData(AnnotationMetaDataProvider.java:220) 
     at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.retrieveBeanConfiguration(AnnotationMetaDataProvider.java:128) 
     at org.hibernate.validator.internal.metadata.provider.AnnotationMetaDataProvider.getBeanConfiguration(AnnotationMetaDataProvider.java:119) 
     at org.hibernate.validator.internal.metadata.BeanMetaDataManager.getBeanConfigurationForHierarchy(BeanMetaDataManager.java:220) 
     at org.hibernate.validator.internal.metadata.BeanMetaDataManager.createBeanMetaData(BeanMetaDataManager.java:187) 
     at org.hibernate.validator.internal.metadata.BeanMetaDataManager.lambda$getBeanMetaData$0(BeanMetaDataManager.java:160) 
     at org.hibernate.validator.internal.metadata.BeanMetaDataManager$$Lambda$24/1020030882.apply(Unknown Source) 
     at java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:324) 
     at org.hibernate.validator.internal.metadata.BeanMetaDataManager.getBeanMetaData(BeanMetaDataManager.java:159) 
     at org.hibernate.validator.internal.engine.ValidatorImpl.getConstraintsForClass(ValidatorImpl.java:308) 
     at org.eclipse.persistence.internal.jpa.metadata.listeners.BeanValidationListener.isBeanConstrained(BeanValidationListener.java:158) 
     at org.eclipse.persistence.internal.jpa.metadata.listeners.BeanValidationListener.validateOnCallbackEvent(BeanValidationListener.java:108) 
     at org.eclipse.persistence.internal.jpa.metadata.listeners.BeanValidationListener.preUpdate(BeanValidationListener.java:94) 
     at org.eclipse.persistence.descriptors.DescriptorEventManager.notifyListener(DescriptorEventManager.java:726) 
     at org.eclipse.persistence.descriptors.DescriptorEventManager.notifyEJB30Listeners(DescriptorEventManager.java:696) 
     at org.eclipse.persistence.descriptors.DescriptorEventManager.executeEvent(DescriptorEventManager.java:233) 
     at org.eclipse.persistence.descriptors.changetracking.DeferredChangeDetectionPolicy.calculateChanges(DeferredChangeDetectionPolicy.java:87) 
     at org.eclipse.persistence.descriptors.changetracking.AttributeChangeTrackingPolicy.calculateChangesForExistingObject(AttributeChangeTrackingPolicy.java:48) 
     at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.calculateChanges(UnitOfWorkImpl.java:711) 
     at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1566) 
     at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.issueSQLbeforeCompletion(UnitOfWorkImpl.java:3256) 
     at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.issueSQLbeforeCompletion(RepeatableWriteUnitOfWork.java:355) 
     at org.eclipse.persistence.transaction.AbstractSynchronizationListener.beforeCompletion(AbstractSynchronizationListener.java:158) 
     at org.eclipse.persistence.transaction.JTASynchronizationListener.beforeCompletion(JTASynchronizationListener.java:68) 
     at com.sun.enterprise.transaction.JavaEETransactionImpl.commit(JavaEETransactionImpl.java:452) 
     at com.sun.enterprise.transaction.JavaEETransactionManagerSimplified.commit(JavaEETransactionManagerSimplified.java:854) 
     at com.sun.ejb.containers.EJBContainerTransactionManager.completeNewTx(EJBContainerTransactionManager.java:723) 
     at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:507) 
     at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4600) 
     at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2108) 
     at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2078) 
     at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:220) 
     at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88) 
     at com.sun.proxy.$Proxy175.createAttributes(Unknown Source) 
     at docdb.__EJB31_Generated__AttributesSession__Intf____Bean__.createAttributes(Unknown Source) 
     at docdb.AttributesController.createAttributes(AttributesController.java:118) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:483) 
     at javax.el.ELUtil.invokeMethod(ELUtil.java:304) 
     at javax.el.BeanELResolver.invoke(BeanELResolver.java:535) 
     at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256) 
     at com.sun.el.parser.AstValue.invoke(AstValue.java:285) 
     at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304) 
     at org.jboss.weld.module.web.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) 
     at org.jboss.weld.module.web.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) 
     at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:107) 
     at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) 
     ... 36 more 
]] 
+0

Warum nicht die tatsächliche Ausnahme + Stack-Trace post und dann können die Leute sehen, woher es kommt, anstatt – DN1

+0

gut zu erraten, zwei Gründe, wirklich. Erstens wollte ich hier keine Codewand wegwerfen, wenn es kein Interesse gab, und zweitens mag ich es nicht, wenn Leute ihren Code einfach ablegen und ihn darum bitten, ihn zu reparieren. Ich wollte das nicht tun. Ich möchte wirklich verstehen, was auf einer tieferen Ebene geschieht, und das Problem, obwohl wichtig, ist nicht das einzige, was für mich wichtig ist. Ich werde mehr Details in einer Antwort posten - danke für die Nachfrage. – j4nd3r53n

+0

Tatsächlich habe ich gerade festgestellt, dass das Hinzufügen von mehr Details in einer Antwort nicht der richtige Weg ist, also werde ich stattdessen eine Bearbeitung hinzufügen – j4nd3r53n

Antwort

5

würde ich unglaublich überrascht, wenn die @NamedQueries ein Problem ist, schlägt der Name, dass es eine Liste/Array von @NamedQuery Elemente sein sollte.

Versuchen:

@Column(name = "name", length = 128) 
private String name; 

sehen, wie Sie Vertrauten sind, dass Sie tatsächlich @size wiederholt nicht haben, vielleicht sollten wir bei Überlappung der Funktion suchen, die @Column Annotation enthält die gleiche Funktionalität, vielleicht könnte dies einen Konflikt verursachen.

+0

Thx für Ihren Vorschlag - Ich werde es versuchen, wenn ich in der Nähe von meinem Computer komme. Ich stimme zu, dass es sehr unwahrscheinlich ist, dass etwas mit @namedQueries zu tun hat. selbst wenn es so wäre, sollte das bei der Kompilierung abgefangen werden, und ich habe das Problem zur Laufzeit. – j4nd3r53n

+0

Das hat wirklich funktioniert! Erstaunlich - viel, viel. Ich kann deine Antwort nicht stimmen, aber ich habe sie als Antwort gewählt - ich würde wirklich gerne wissen, warum es einen Unterschied macht. – j4nd3r53n

+0

Ich hatte einen ähnlichen Fehler für die Annotation "@NotNull" und musste diesen entfernen und nullable = false zur Annotation "@Column" hinzufügen – Dale

Verwandte Themen