Java JPA Illegal Argument Exception - NamedQuery of name: xyz not found -


i trying user based on id using named query, keep getting illegal argument exception. i've been looking @ code awhile. may catch might've missed. orm

@entity @table(name = "myuser") @xmlrootelement @namedqueries({ @namedquery(name = "myuser.findall", query = "select m myuser m"), @namedquery(name = "myuser.findbyuserid", query = "select m myuser m m.userid = :userid"), @namedquery(name = "myuser.findbyname", query = "select m myuser m m.name = :name"), @namedquery(name = "myuser.findbypassword", query = "select m myuser m m.password = :password"), @namedquery(name = "myuser.findbyemail", query = "select m myuser m m.email = :email"), @namedquery(name = "myuser.findbytel", query = "select m myuser m m.tel = :tel"), @namedquery(name = "myuser.findbyaddress", query = "select m myuser m m.address = :address"), @namedquery(name = "myuser.findbysecqn", query = "select m myuser m m.secqn = :secqn"), @namedquery(name = "myuser.findbysecans", query = "select m myuser m m.secans = :secans")}) public class myuser implements serializable {  private static final long serialversionuid = 1l; @id @basic(optional = false) @column(name = "userid") private integer userid; @column(name = "name") private string name; @column(name = "password") private string password; @column(name = "email") private string email; @column(name = "tel") private integer tel; @column(name = "address") private string address; @column(name = "secqn") private string secqn; @column(name = "secans") private string secans;  public myuser() { }  public myuser(integer userid) {     this.userid = userid; }  public integer getuserid() {     return userid; }  public void setuserid(integer userid) {     this.userid = userid; }  public string getname() {     return name; }  public void setname(string name) {     this.name = name; }  public string getpassword() {     return password; }  public void setpassword(string password) {     this.password = password; }  public string getemail() {     return email; }  public void setemail(string email) {     this.email = email; }  public integer gettel() {     return tel; }  public void settel(integer tel) {     this.tel = tel; }  public string getaddress() {     return address; }  public void setaddress(string address) {     this.address = address; }  public string getsecqn() {     return secqn; }  public void setsecqn(string secqn) {     this.secqn = secqn; }  public string getsecans() {     return secans; }  public void setsecans(string secans) {     this.secans = secans; }  @override public int hashcode() {     int hash = 0;     hash += (userid != null ? userid.hashcode() : 0);     return hash; }  @override public boolean equals(object object) {     // todo: warning - method won't work in case id fields not set     if (!(object instanceof myuser)) {         return false;     }     myuser other = (myuser) object;     if ((this.userid == null && other.userid != null) || (this.userid != null && !this.userid.equals(other.userid))) {         return false;     }     return true; }  @override public string tostring() {     return "ejbentity.myuser[ userid=" + userid + " ]"; }  } 

this user facade

@stateless public class myuserfacade implements myuserfacaderemote {  @persistencecontext(unitname = "ejbserver-ejbpu") private entitymanager em;   protected entitymanager getentitymanager() {     return em; }  public myuserfacade() {     //super(myuser.class); }  @override public myuser getuser(int userid) {     myuser auser = new myuser();     auser =   (myuser)em.createnamedquery("myuser.findbyuserid").setparameter("userid", userid).getresultlist();     return auser; } } 

my persistence.xml

<?xml version="1.0" encoding="utf-8"?> <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"  xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"  xsi:schemalocation="http://xmlns.jcp.org/xml/ns/persistence   http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">    <persistence-unit name="ejbentitypu" transaction-type="resource_local">     <provider>org.eclipse.persistence.jpa.persistenceprovider</provider> <!--<exclude-unlisted-classes>false</exclude-unlisted-classes>--> <class>ejbentity.myuser</class> <properties>   <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/ea"/>   <property name="javax.persistence.jdbc.password" value="test"/>   <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.clientdriver"/>   <property name="javax.persistence.jdbc.user" value="test"/>     </properties>    </persistence-unit> </persistence> 

error log given below:

java.lang.reflect.invocationtargetexception @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.glassfish.appclient.client.acc.appclientcontainer.launch(appclientcontainer.java:446) @ org.glassfish.appclient.client.appclientfacade.main(appclientfacade.java:166) caused by: javax.ejb.ejbexception @ com.sun.ejb.containers.ejbcontainertransactionmanager.processsystemexception(ejbcontainertransactionmanager.java:752) @ com.sun.ejb.containers.ejbcontainertransactionmanager.completenewtx(ejbcontainertransactionmanager.java:702) @ com.sun.ejb.containers.ejbcontainertransactionmanager.postinvoketx(ejbcontainertransactionmanager.java:507) @ com.sun.ejb.containers.basecontainer.postinvoketx(basecontainer.java:4566) @ com.sun.ejb.containers.basecontainer.postinvoke(basecontainer.java:2074) @ com.sun.ejb.containers.basecontainer.postinvoke(basecontainer.java:2044) @ com.sun.ejb.containers.ejbobjectinvocationhandler.invoke(ejbobjectinvocationhandler.java:212) @ com.sun.ejb.containers.ejbobjectinvocationhandlerdelegate.invoke(ejbobjectinvocationhandlerdelegate.java:79) @ com.sun.proxy.$proxy266.getuser(unknown source) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ com.sun.corba.ee.impl.presentation.rmi.reflectivetie.dispatchtomethod(reflectivetie.java:143) @ com.sun.corba.ee.impl.presentation.rmi.reflectivetie._invoke(reflectivetie.java:173) @ com.sun.corba.ee.impl.protocol.serverrequestdispatcherimpl.dispatchtoservant(serverrequestdispatcherimpl.java:528) @ com.sun.corba.ee.impl.protocol.serverrequestdispatcherimpl.dispatch(serverrequestdispatcherimpl.java:199) @ com.sun.corba.ee.impl.protocol.messagemediatorimpl.handlerequestrequest(messagemediatorimpl.java:1549) @ com.sun.corba.ee.impl.protocol.messagemediatorimpl.handlerequest(messagemediatorimpl.java:1425) @ com.sun.corba.ee.impl.protocol.messagemediatorimpl.handleinput(messagemediatorimpl.java:930) @ com.sun.corba.ee.impl.protocol.giopmsgheaders.requestmessage_1_2.callback(requestmessage_1_2.java:213) @ com.sun.corba.ee.impl.protocol.messagemediatorimpl.handlerequest(messagemediatorimpl.java:694) @ com.sun.corba.ee.impl.protocol.messagemediatorimpl.dispatch(messagemediatorimpl.java:496) @ com.sun.corba.ee.impl.protocol.messagemediatorimpl.dowork(messagemediatorimpl.java:2222) @ com.sun.corba.ee.impl.threadpool.threadpoolimpl$workerthread.performwork(threadpoolimpl.java:497) @ com.sun.corba.ee.impl.threadpool.threadpoolimpl$workerthread.run(threadpoolimpl.java:540)          caused by: java.lang.illegalargumentexception: namedquery of name: myuser.findbyuserid not found. @ org.eclipse.persistence.internal.jpa.queryimpl.getdatabasequeryinternal(queryimpl.java:355) @ org.eclipse.persistence.internal.jpa.entitymanagerimpl.createnamedquery(entitymanagerimpl.java:1135) @ com.sun.enterprise.container.common.impl.entitymanagerwrapper.createnamedquery(entitymanagerwrapper.java:522) @ stateless.myuserfacade.getuser(myuserfacade.java:62) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ org.glassfish.ejb.security.application.ejbsecuritymanager.runmethod(ejbsecuritymanager.java:1081) @ org.glassfish.ejb.security.application.ejbsecuritymanager.invoke(ejbsecuritymanager.java:1153) @ com.sun.ejb.containers.basecontainer.invokebeanmethod(basecontainer.java:4786) @ com.sun.ejb.ejbinvocation.invokebeanmethod(ejbinvocation.java:656) @ com.sun.ejb.containers.interceptors.aroundinvokechainimpl.invokenext(interceptormanager.java:822) @ com.sun.ejb.ejbinvocation.proceed(ejbinvocation.java:608) @ org.jboss.weld.ejb.abstractejbrequestscopeactivationinterceptor.aroundinvoke(abstractejbrequestscopeactivationinterceptor.java:73) @ org.jboss.weld.ejb.sessionbeaninterceptor.aroundinvoke(sessionbeaninterceptor.java:52) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ com.sun.ejb.containers.interceptors.aroundinvokeinterceptor.intercept(interceptormanager.java:883) @ com.sun.ejb.containers.interceptors.aroundinvokechainimpl.invokenext(interceptormanager.java:822) @ com.sun.ejb.ejbinvocation.proceed(ejbinvocation.java:608) @ com.sun.ejb.containers.interceptors.systeminterceptorproxy.docall(systeminterceptorproxy.java:163) @ com.sun.ejb.containers.interceptors.systeminterceptorproxy.aroundinvoke(systeminterceptorproxy.java:140) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:606) @ com.sun.ejb.containers.interceptors.aroundinvokeinterceptor.intercept(interceptormanager.java:883) @ com.sun.ejb.containers.interceptors.aroundinvokechainimpl.invokenext(interceptormanager.java:822) @ com.sun.ejb.containers.interceptors.interceptormanager.intercept(interceptormanager.java:369) @ com.sun.ejb.containers.basecontainer.__intercept(basecontainer.java:4758) @ com.sun.ejb.containers.basecontainer.intercept(basecontainer.java:4746) @ com.sun.ejb.containers.ejbobjectinvocationhandler.invoke(ejbobjectinvocationhandler.java:205) ... 19 more java result: 1 

file structure

i notice have class ejbentity.myuser in persistence.xml. class lives in package structure consisting of 1 directory called "ejbentity"? stacktrace suggests myuser class namedquery annotations not being found, explained if package structure not being loaded expect.


Comments