JavaEE+eclipseLink+TomEE给出了java.sql.SQLSyntaxErrorException:用户缺乏权限或找不到对象
我尝试使用rest服务eclipseLink和mysql制作一个简单的应用程序。 我想在TomEE服务器apache-TomEE-plush-1.7.4上运行这个程序 我使用eclipse部署应用程序 部署似乎还可以 当我去的时候,我得到:JavaEE+eclipseLink+TomEE给出了java.sql.SQLSyntaxErrorException:用户缺乏权限或找不到对象,java,mysql,web-services,eclipselink,apache-tomee,Java,Mysql,Web Services,Eclipselink,Apache Tomee,我尝试使用rest服务eclipseLink和mysql制作一个简单的应用程序。 我想在TomEE服务器apache-TomEE-plush-1.7.4上运行这个程序 我使用eclipse部署应用程序 部署似乎还可以 当我去的时候,我得到: javax.servlet.ServletException: Error processing webservice request org.apache.tomee.webservices.CXFJAXRSFilter.doFilter(CXFJ
javax.servlet.ServletException: Error processing webservice request
org.apache.tomee.webservices.CXFJAXRSFilter.doFilter(CXFJAXRSFilter.java:98)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
java.io.IOException: Failed to invoke AbstractHTTPDestination
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.doInvoke(CxfRsHttpListener.java:229)
org.apache.tomee.webservices.CXFJAXRSFilter.doFilter(CXFJAXRSFilter.java:94)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
java.lang.RuntimeException: org.apache.cxf.interceptor.Fault:
Internal Exception: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: ELEVE
Error Code: -5501
Call: SELECT ID, ADRESSE, classe, date_naissance, NOM, PRENOM, SEXE FROM ELEVE
Query: ReadAllQuery(referenceClass=Eleve sql="SELECT ID, ADRESSE, classe, date_naissance, NOM, PRENOM, SEXE FROM ELEVE")
org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:116)
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:324)
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:240)
org.apache.openejb.server.cxf.rs.CxfRsHttpListener.doInvoke(CxfRsHttpListener.java:227)
org.apache.tomee.webservices.CXFJAXRSFilter.doFilter(CXFJAXRSFilter.java:94)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
这是我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="notePU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.test.eleve.model.Eleve</class>
<properties>
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/notes_eleves" />
<!-- <property name="eclipselink.ddl-generation" value="drop-and-create-tables" /> -->
<property name="eclipselink.logging.level" value="INFO" />
</properties>
</persistence-unit>
</persistence>
我一定错过了什么,但我找不到什么
我把代码推到这里:
谢谢你的帮助我终于在第1.7和第7卷上成功了 这就是我必须做的改变: 从persistence.xml中删除与数据库相关的属性 用persistence.xml中的jta数据源替换非jta数据源标记 将mysql连接器jar放在我的服务器/lib中 在我的服务器/conf/tomee.xml中,我添加了myDatasource配置作为资源。
将@XmlRootElementname=eleve放在我的eleve实体上这似乎是TomEE上唯一必须的我终于设法使它在TomEE 1.7和7上工作 这就是我必须做的改变: 从persistence.xml中删除与数据库相关的属性 用persistence.xml中的jta数据源替换非jta数据源标记 将mysql连接器jar放在我的服务器/lib中 在我的服务器/conf/tomee.xml中,我添加了myDatasource配置作为资源。
将@XmlRootElementname=eleve放在我的eleve实体上这似乎是TomEE Bonjour上唯一必须的,您的表eleve是否存在于MySQL数据库中?不应该是transaction type=JTA而不是transaction type=RESOURCE\u LOCAL?您好,是的,它存在,并且查询选择ID、ADRESE、CLASS、date\u naissance、NOM、PRENOM、,ELEVE的SEXE返回我在mysql中所期望的内容console@leo为什么应该是JTA?因为我想你想让tomee处理持久性-请看Bonjour,MySQL数据库中是否存在table ELEVE?不应该是transaction type=JTA而不是transaction type=RESOURCE\u LOCAL?您好,是的,它存在,查询选择ID、ADRESSE、classe,来自ELEVE的date_naissance、NOM、PRENOM、SEXE返回我对mysql的期望console@leo为什么应该是JTA?因为我想你想让我来处理持久性-看到了吗