javax.persistence.PersistenceException:无效的persistence.xml

编程入门 行业动态 更新时间:2024-10-23 01:45:05
本文介绍了javax.persistence.PersistenceException:无效的persistence.xml的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在Eclipse中使用Servlet,JPA,EJB和JBoss开发项目。正如你可以在我的主题标题中看到的,我的persistence.xml文件中有一个错误,但我不知道哪一个:

< persistence version =2.1xmlns =xmlns.jcp/xml/ns/persistencexmlns:xsi =www.w3/2001/XMLSchema-instance xsi:schemaLocation =xmlns.jcp/xml/ns/persistence xmlns.jcp/xml/ns/persistence/persistence_2_1.xsd\"> < persistence-unit name =TrainingAppEJB-PU> < provider> org.hibernate.ejb.HibernatePersistence< / provider> < jta-data-source> java:jboss / datasources / MysqlDS< / jta-data-source> < class> fr.entity.Client< / class> < class> fr.entity.Course< / class> < class> fr.entity.CourseSession< / class> < class> fr.entity.Location< / class> <属性> < property name =hibernate.connection.driver_classvalue =com.mysql.jdbc.Driver/> < property name =hibernate.dialectvalue =org.hibernate.dialect.MySQL5Dialect/> < property name =hibernate.connection.urlvalue =jdbc:mysql:// localhost:3306 / gestion_formation/> < property name =hibernate.default_schemavalue =gestion_formation/> < property name =hibernate.connection.usernamevalue =root/> < property name =hibernate.connection.passwordvalue =********/> < property name =hibernate.hbm2ddl.autovalue =update/> < property name =show_sqlvalue =true/> < / properties> < / persistence-unit> < /余辉>

但是,当我尝试运行我的servlet时,出现此错误:

16:59:44,498错误[org.apache.catalina.core.ContainerBase。[jboss.web]。[default-host]。[/ TrainingAppWeb]。 [Home]](http - 127.0.0.1-8080-2)Servlet.service()注释servlet首页代码示例:javax.ejb.EJBException:javax.persistence.PersistenceException:无效的persistence.xml。 解析XML时出错(line-1:column -1):cvc-elt.1:找不到元素'persistence'的声明。 在org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:206)在org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor。 Java的:在org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor在org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required 275)(CMTTxInterceptor.java:377)。 java:233) at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:47) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) at org.jboss.as.eeponent.ViewDescription $ 1.processInvocation(ViewDescription.java:146)在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287)在org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)在org.jboss.as。 eeponent.ProxyInvocation Handler.invoke(ProxyInvocationHandler.java:76)。在utbm.lo54.isession.ManageCourseBeanLocal $$$ view11.findAllCourse(未知来源)[TrainingAppEJB.jar:] 。在utbm.lo54.servlet.HomeServlet .process(HomeServlet.java:47)[classes:] at utbm.lo54.servlet.HomeServlet.doGet(HomeServlet.java:31)[classes:] at javax.servlet.http.HttpServlet .service(HttpServlet.java:734)[jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] at javax.servlet.http.HttpServlet.service(HttpServlet.java :847)[jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)[ jbossweb-7.0.0.CR4.jar:7.0.0.Final] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)[jbossweb-7.0.0.CR4.jar: 7.0.0.Final] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)[jbossweb-7.0.0.CR4.jar:7.0.0.Final ] 在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)[jbossweb-7.0.0.CR4.jar:7.0.0.Final] 在org.jboss。 as.web.NamingValve.invoke(NamingValve.java:57)[jboss-as-web-7.0.0.Final.jar:7.0.0.Final] at org.jboss.as.jpa.interceptor。 WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:49)的JBoss-AS-JPA-7.0.0.Final.jar:7.0.0.Final]在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve 。 java:154)[jbossweb-7.0.0.CR4.jar:7.0.0.Final] 在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)[jbossweb-7.0.0 .CR4.jar:7.0.0.Final] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)[jbossweb-7.0.0.CR4.jar:7.0.0.Final ] org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)[jbossweb-7.0.0.CR4.jar:7.0.0.Final] org.apache。 coyote.http11.Http11Processor.process(Http11Processor.java:877)[jbossweb-7。 0.0.CR4.jar:7.0.0.Final] at org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:667)[jbossweb-7.0.0.CR4.jar:7.0。 0.Final] at org.apache.tomcat.util.JIoEndpoint $ Worker.run(JIoEndpoint.java:951)[jbossweb-7.0.0.CR4.jar:7.0.0.Final] $ b $ java.util.Thread.run(Thread.java:724)[:1.7.0_40] 导致:javax.persistence.PersistenceException:无效的persistence.xml。 解析XML时出错(line-1:column -1):cvc-elt.1:找不到元素'persistence'的声明。 at org.hibernate.ejb.packaging.PersistenceXmlLoader.loadURL(PersistenceXmlLoader.java:145)[hibernate-entitymanager-4.0.0.Beta1.jar:4.0.0.Beta1] 在org.hibernate.ejb.packaging.PersistenceXmlLoader.deploy(PersistenceXmlLoader.java:169)[休眠-的EntityManager-4.0.0.Beta1.jar:4.0.0.Beta1] 。在org.hibernate.ejb.Ejb3Configuration .configure(Ejb3Configuration.java:313)[冬眠-的EntityManager-4.0.0.Beta1.jar:4.0.0.Beta1]在org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55) [ hibernate-entitymanager-4.0.0.Beta1.jar:4.0.0.Beta1] 在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)[hibernate-jpa-2.0-api-1.0.1。 Final.jar:1.0.1.Final] 在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)[hibernate-jpa-2.0-api-1.0.1.Final.jar:1.0.1。最后] 在utbm.lo54.session.ManageCourseBean.getEntityManager(ManageCourseBean.java:36)[TrainingAp pEJB.jar:]在utbm.lo54.session.ManageCourseBean.findAllCourse(ManageCourseBean.java:51)[TrainingAppEJB.jar :]在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)[: 1.7.0_40] 。在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_40]在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43): 1.7.0_40] at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_40] at org.jboss.as.eeponent.ManagedReferenceMethodInterceptor.processInvocation( ManagedReferenceMethodInterceptor.java:51)在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287)在org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java: 45)[jboss-as-jpa-7.0.0.Final.jar:7.0.0.Final] at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org .jboss.as.eeponent.Nam espaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:44)在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287)在org.jboss.as.eeponent.TCCLInterceptor.processInvocation( TCCLInterceptor.java:45) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) at org.jboss.as .eeponent.ViewDescription $ ComponentDispatcherInterceptor.processInvocation(ViewDescription.java:202)在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287)在org.jboss.as.ejb3 ponent.session.SessionInvocationContextInterceptor.processInvocation(SessionInvocationContextInterceptor.java :在org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287 67))在org.jboss.as.ejb3ponent.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51 ) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.invocation.InterceptorContext $ Invocation.proceed(InterceptorContext.java:370) at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:271) ... 28 more

如何解决此问题 解除方案

,结束标记丢失。追加

< /持久性>

存储在您的persistence.xml中

编辑

看起来数据源的JNDI名称是错误的。通常它以以下开头: java:/

I'm working on project with Servlet,JPA,EJB and JBoss in eclipse. As you can see in the title of my topic I have an error on my persistence.xml file but I don't know which:

<persistence version="2.1" xmlns="xmlns.jcp/xml/ns/persistence" xmlns:xsi="www.w3/2001/XMLSchema-instance" xsi:schemaLocation="xmlns.jcp/xml/ns/persistence xmlns.jcp/xml/ns/persistence/persistence_2_1.xsd"> <persistence-unit name="TrainingAppEJB-PU"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:jboss/datasources/MysqlDS</jta-data-source> <class>fr.entity.Client</class> <class>fr.entity.Course</class> <class>fr.entity.CourseSession</class> <class>fr.entity.Location</class> <properties> <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/> <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/gestion_formation"/> <property name="hibernate.default_schema" value="gestion_formation"/> <property name="hibernate.connection.username" value="root"/> <property name="hibernate.connection.password" value="********"/> <property name="hibernate.hbm2ddl.auto" value="update" /> <property name="show_sql" value="true"/> </properties> </persistence-unit> </persistence>

But when I try to run my servlet I have this error :

16:59:44,498 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/TrainingAppWeb].[Home]] (http--127.0.0.1-8080-2) "Servlet.service()" pour la servlet Home a généré une exception: javax.ejb.EJBException: javax.persistence.PersistenceException: Invalid persistence.xml. Error parsing XML (line-1 : column -1): cvc-elt.1: Cannot find the declaration of element 'persistence'. at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:206) at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275) at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.java:377) at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java:233) at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:47) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) at org.jboss.as.eeponent.ViewDescription$1.processInvocation(ViewDescription.java:146) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) at org.jboss.as.eeponent.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:76) at utbm.lo54.isession.ManageCourseBeanLocal$$$view11.findAllCourse(Unknown Source) [TrainingAppEJB.jar:] at utbm.lo54.servlet.HomeServlet.process(HomeServlet.java:47) [classes:] at utbm.lo54.servlet.HomeServlet.doGet(HomeServlet.java:31) [classes:] at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.0.CR4.jar:7.0.0.Final] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.0.CR4.jar:7.0.0.Final] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.0.CR4.jar:7.0.0.Final] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.0.CR4.jar:7.0.0.Final] at org.jboss.as.web.NamingValve.invoke(NamingValve.java:57) [jboss-as-web-7.0.0.Final.jar:7.0.0.Final] at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:49) [jboss-as-jpa-7.0.0.Final.jar:7.0.0.Final] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:154) [jbossweb-7.0.0.CR4.jar:7.0.0.Final] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.0.CR4.jar:7.0.0.Final] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.0.CR4.jar:7.0.0.Final] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [jbossweb-7.0.0.CR4.jar:7.0.0.Final] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.0.CR4.jar:7.0.0.Final] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667) [jbossweb-7.0.0.CR4.jar:7.0.0.Final] at org.apache.tomcat.util.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [jbossweb-7.0.0.CR4.jar:7.0.0.Final] at java.lang.Thread.run(Thread.java:724) [:1.7.0_40] Caused by: javax.persistence.PersistenceException: Invalid persistence.xml. Error parsing XML (line-1 : column -1): cvc-elt.1: Cannot find the declaration of element 'persistence'. at org.hibernate.ejb.packaging.PersistenceXmlLoader.loadURL(PersistenceXmlLoader.java:145) [hibernate-entitymanager-4.0.0.Beta1.jar:4.0.0.Beta1] at org.hibernate.ejb.packaging.PersistenceXmlLoader.deploy(PersistenceXmlLoader.java:169) [hibernate-entitymanager-4.0.0.Beta1.jar:4.0.0.Beta1] at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:313) [hibernate-entitymanager-4.0.0.Beta1.jar:4.0.0.Beta1] at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55) [hibernate-entitymanager-4.0.0.Beta1.jar:4.0.0.Beta1] at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63) [hibernate-jpa-2.0-api-1.0.1.Final.jar:1.0.1.Final] at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) [hibernate-jpa-2.0-api-1.0.1.Final.jar:1.0.1.Final] at utbm.lo54.session.ManageCourseBean.getEntityManager(ManageCourseBean.java:36) [TrainingAppEJB.jar:] at utbm.lo54.session.ManageCourseBean.findAllCourse(ManageCourseBean.java:51) [TrainingAppEJB.jar:] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.7.0_40] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [:1.7.0_40] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [:1.7.0_40] at java.lang.reflect.Method.invoke(Method.java:606) [:1.7.0_40] at org.jboss.as.eeponent.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:51) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:45) [jboss-as-jpa-7.0.0.Final.jar:7.0.0.Final] at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.as.eeponent.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:44) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.as.eeponent.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) at org.jboss.as.eeponent.ViewDescription$ComponentDispatcherInterceptor.processInvocation(ViewDescription.java:202) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.as.ejb3ponent.session.SessionInvocationContextInterceptor.processInvocation(SessionInvocationContextInterceptor.java:67) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.as.ejb3ponent.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:287) at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:370) at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:271) ... 28 more

How can I fix this issue

解决方案

Unless you didn't copy-paste the complete file, the closing tag is missing. Append

</persistence>

in your persistence.xml

EDIT

It seems that the JNDI name of your datasource is wrong. Usually it starts with : java:/

更多推荐

javax.persistence.PersistenceException:无效的persistence.xml

本文发布于:2023-10-25 14:06:49,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:persistence   javax   xml   PersistenceException

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!