我是用“从数据库生成实体类”来连接数据库的,在今天以前代码还是正常的...
然后今天另一个项目要用jdbc连mysql...我就要Netbeans开了个新的项目随意连了一下...结果原来那个项目就杯具掉了...
javax.faces.el.EvaluationException: javax.ejb.EJBException
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.ejb.EJBException
at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5070)
at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:4968)
at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4756)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1955)
at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1906)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:198)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:84)
at $Proxy177.login(Unknown Source)
at Controller.__EJB31_Generated__LoginController__Intf____Bean__.login(Unknown Source)
at Boundry.LoginUI.doLogin(LoginUI.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.el.parser.AstValue.invoke(AstValue.java:234)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:43)
at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:72)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:98)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
... 32 more
Caused by: javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.0.v20091127-r5931): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: Access denied for user 'root'@'localhost' (using password: YES)
Error Code: 0
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:392)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:151)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:207)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:202)
at com.sun.enterprise.container.common.impl.EntityManagerWrapper._getDelegate(EntityManagerWrapper.java:197)
at com.sun.enterprise.container.common.impl.EntityManagerWrapper.createNamedQuery(EntityManagerWrapper.java:521)
at Controller.LoginController.getUserByName(LoginController.java:37)
at Controller.LoginController.login(LoginController.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052)
at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124)
at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5243)
at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:615)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:797)
at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:567)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:157)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:139)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:858)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:797)
at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:367)
at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5215)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5203)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:190)
... 46 more
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.0.v20091127-r5931): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: Access denied for user 'root'@'localhost' (using password: YES)
Error Code: 0
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:309)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:138)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:94)
at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:584)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:228)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:368)
... 75 more
Caused by: java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: Access denied for user 'root'@'localhost' (using password: YES)
at com.sun.gjc.spi.base.DataSource.getConnection(DataSource.java:112)
at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:126)
... 80 more我认为杯具的地方用红色画出来了...网上查了一下都说是没有权限(那似乎多是linux下的...)然后我能够从cmd进入mysql...甚至我还尝试了下设置权限...但还是没用- -...我只知道从代码正常到不正常就是我NetBeans接了个JDBC...现在我把它断开了项目也清理了...还是不行...
其实我觉得比较微妙的是它原来是可以的...
用断点调的时候发现错误是发生在我第一次要进入数据库查找数据的时候...那行代码一般不会错的因为我写(复制粘贴)了很多次了...然后它就跳到target invocation exception里面去了...页面上就出现了如上的一大堆报错信息...
我想问它这到底是怎么了...因为如果要改mysql密码才能好的话...我的新建与数据库的连接也总是不符合protocol的语法而失败...这个也很奇怪...
好了睡觉去了...明天飘上来再看...

解决方案 »

  1.   

    那个类的代码是自动生成的...- -...自动生成的时候只有最普通的select from where...没有像jdbc那样的一条地址...package Entities;import java.io.Serializable;
    import javax.persistence.Basic;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.NamedQueries;
    import javax.persistence.NamedQuery;
    import javax.persistence.Table;/**
     *
     * @author Administrator
     */
    @Entity
    @Table(name = "userlist")
    @NamedQueries({
        @NamedQuery(name = "Userlist.findAll", query = "SELECT u FROM Userlist u"),
        @NamedQuery(name = "Userlist.findByUserName", query = "SELECT u FROM Userlist u WHERE u.userName = :userName"),
        @NamedQuery(name = "Userlist.findByPassWord", query = "SELECT u FROM Userlist u WHERE u.passWord = :passWord"),
        @NamedQuery(name = "Userlist.findByCity", query = "SELECT u FROM Userlist u WHERE u.city = :city"),
        @NamedQuery(name = "Userlist.findBySex", query = "SELECT u FROM Userlist u WHERE u.sex = :sex"),
        @NamedQuery(name = "Userlist.findByAge", query = "SELECT u FROM Userlist u WHERE u.age = :age"),
        @NamedQuery(name = "Userlist.findByEmail", query = "SELECT u FROM Userlist u WHERE u.email = :email"),
        @NamedQuery(name = "Userlist.findByQq", query = "SELECT u FROM Userlist u WHERE u.qq = :qq"),
        @NamedQuery(name = "Userlist.findByMsn", query = "SELECT u FROM Userlist u WHERE u.msn = :msn")})
    public class Userlist implements Serializable {
        private static final long serialVersionUID = 1L;
        @Id
        @Basic(optional = false)
        @Column(name = "UserName")
        private String userName;
        @Basic(optional = false)
        @Column(name = "PassWord")
        private String passWord;
        @Column(name = "City")
        private String city;
        @Column(name = "Sex")
        private String sex;
        @Column(name = "Age")
        private Integer age;
        @Column(name = "Email")
        private String email;
        @Column(name = "QQ")
        private String qq;
        @Column(name = "MSN")
        private String msn;    public Userlist() {
        }    public Userlist(String userName, String passWord,String city,String sex,Integer age,String Email,String QQ,
                String MSN) {
            this.userName = userName;
            this.passWord = passWord;
            this.city=city;
            this.sex=sex;
            this.age=age;
            this.email=Email;
            this.qq=QQ;
            this.msn=MSN;    }    public String getUserName() {
            return userName;
        }    public void setUserName(String userName) {
            this.userName = userName;
        }    public String getPassWord() {
            return passWord;
        }    public void setPassWord(String passWord) {
            this.passWord = passWord;
        }    public String getCity() {
            return city;
        }    public void setCity(String city) {
            this.city = city;
        }    public String getSex() {
            return sex;
        }    public void setSex(String sex) {
            this.sex = sex;
        }    public Integer getAge() {
            return age;
        }    public void setAge(Integer age) {
            this.age = age;
        }    public String getEmail() {
            return email;
        }    public void setEmail(String email) {
            this.email = email;
        }    public String getQq() {
            return qq;
        }    public void setQq(String qq) {
            this.qq = qq;
        }    public String getMsn() {
            return msn;
        }    public void setMsn(String msn) {
            this.msn = msn;
        }    @Override
        public int hashCode() {
            int hash = 0;
            hash += (userName != null ? userName.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 Userlist)) {
                return false;
            }
            Userlist other = (Userlist) object;
            if ((this.userName == null && other.userName != null) || (this.userName != null && !this.userName.equals(other.userName))) {
                return false;
            }
            return true;
        }    @Override
        public String toString() {
            return "Entities.Userlist[userName=" + userName + "]";
        }}
    这就是那个实体类...话说只有那个构造函数是我写的...
      

  2.   

    Access denied for user 'root'@'localhost' 无权限? 
      

  3.   

    权限的话我不是很懂...- -...因为以前写的时候没有设过权限...它还是正常的工作了...
    密码的话这个密码我是可以直接在cmd进mysql的...
      

  4.   

    默默的问我如何看它是否正常...cmd里面的基本操作可以...通过navicat进去也可以...倒是在NetBeans里面想要新建一个连接的时候会报错...- -
      

  5.   

    javax.faces.el.EvaluationException: javax.ejb.EJBExceptionEJB中el表达式赋值异常
      

  6.   

    解决了- -|||...重新下了个NetBeans然后在数据库那个选项卡里连接端口为3306的localhost...在新建数据源的时候直接选刚才连接上的再给JNDI随意取个名字...然后就连上了...