当前位置: 首页 > 知识库问答 >
问题:

TomEE JPA MySql配置“试图进行无效的生命周期转换”

田博远
2023-03-14

我是Java EE的新手,花了一些时间学习它。几个小时在这个错误,找不到完全相同的问题,除了一个学生在udemy Q

本教程是在MySQL上使用TomEE和JPA教授持久性。

我正在为Web开发人员使用Eclipse:EclipseJavaEE IDE。版本:2018-09(4.9.0)

TomEE版本:Tomcat v9.0服务器

使用JRE: jdk-12.0.1的TomEE

项目Java构建路径-

Java编译器:使用执行环境JavaSE-10的合规性

lib TomEE文件夹中的实际MySql连接器(尝试了几个):mysql-connector-java-8.0.17.jar

这是我的tomee.xml

<tomee>
    <Resource id="connessioneCorsoWeb" type="DataSource">
        JdbcDriver          com.mysql.jdbc.Driver
        JdbcUrl             jdbc:Mysql://127.0.0.1:3306/corso_java_web?useUnicode=true&amp;useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=UTC
        UserName            root
        Password            admin
    </Resource>
</tomee>

这是persistence.xml

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="1.0">
    <persistence-unit name="corsoWebPersistence">
        <jta-data-source>connessioneCorsoWeb</jta-data-source>
        <properties>
            <property name="openejb.jpa.auto-scan" value="true"/>
        </properties>
    </persistence-unit>
</persistence>

启动应用程序时的控制台消息对我没有帮助

信息:卸载应用程序:D:\Shared\Studio\JavaEE Developer-La guida完整版\apache-tomee-8.0.0-M3-plume\apache-tomee-plume-8.0.0-M3\webapps\corso-web 2019年8月16日12:11:31 PMjdk.internal.reflect.NativeMethodAccessorImpl调用SEVERE:错误破坏子org.apache.catalina.LifecycleException:组件[Standard ardEngine[Catalina]尝试([before_destroy])无效的生命周期转换。标准主机[localhost]。标准上下文[/corso-web]]在状态[STARTING_PREP]在org.apache.catalina.util.LifecycleBase.invalidTransition(LifecycleBase.java:430)在org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:316)在org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:814)...

有什么可以看的更深入?

编辑:

删除persistence.xml服务器启动。

添加只有几行的persistence.xml:

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="1.0">
</persistence>

服务器启动。

修改持久性是正确的。xml如下:

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="1.0">
    <persistence-unit>
    </persistence-unit>
</persistence>

服务器出现故障。

这是来自当前控制台的更详尽的摘录:

...八月 18, 2019 3:21:18 下午组织.apache.tome.catalina.TomcatWebAppBuilder 启动内部严重:无法在战争中部署崩溃的耳朵 标准引擎 [卡塔利娜]。标准主机[本地主机]。StandardContext[/corso-web] java.lang.NullPointerException at org.apache.openejb.util.LinkResolver.resolve(LinkResolver.java:55) at org.apache.openejb.util.LinkResolver.add(LinkResolver.java:37) at org.apache.openejb.util.LinkResolver.add(LinkResolver.java:33) at org.apache.openejb.config.config.AutoConfig.resolvePersistenceRefs(AutoConfig.java:223) at org.apache.openejb.config.AutoConfig.deploy(AutoConfig.java:197) at org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:420) at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:1033) at org.apache.tomee.catalina.tomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1286) at org.apache.tomee.catalina.tomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1130) at org.apache.tomee.catalina.GlobalListenerSupent.lifecycleEvent(GlobalListenerSupport.java:134) at123) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) at org.apache.catalina.core.standardContext.startinternal(StandardContext.java:5048) at org.apache.catalina.util.start(LifecycleBase.java:183) at org.apache.Catalina.core.containerbase..java:1377) at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1367) at java.base/java.util.concurrent.FutureTask.run(未来任务.java:264) at org.apache.tomcat.util.threads.inlineExecutorService.execute(InlineExcutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExcutorService.java:140) at org.apache.catalina.core.ContainerBase.start内部(ContainerBase.java:902) at org.apache.catalina.core.标准主机.startinternal(标准主机.java:841) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1377) at org.apache.catalina.core.containerBase$StartChild.call(ContainerBase.java:1367) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.inlineExcutorService.execute(InlineExecutorService.java:75) at java.base/java.8 concurrent.abstractExecutorService.submit(AbstractExecutorService.java:140) atorg.apache.catalina.core.containerBase.startInternal(ContainerBase.java:902) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startinternal(StandardService.java:421) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startinternal(StandardServer.java:932) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.start(Catalina.java:633) 在 java.base/jdk.internal.reflect.NativeMethodAccessor Impulse.invoke0(Native Method) at java.base/jdk.internal.write.innersorimpl.调用(本地方法.java:62) 在 java.base/jdk.internal.reflect.委派方法访问访问调用(委派方法访问.java:43) 在 java.base/jdk.internal.reflect.委派方法访问命令.java:43)调用(方法.java:567) at org.apache.catalina.startup.bootstrap.start(Bootstrap.java:344) at org.apache.catalina.startup.bootstrap.main(Bootstrap.java:475)

2019年8月18日下午3:21:18 JDK . internal . reflect . nativemethodaccessorimpl调用严重:销毁子org . Apache . Catalina . life cycle异常:试图对组件[StandardEngine[Catalina]进行无效的生命周期转换([before_destroy])。标准主机[本地主机]。standard context[/Corso-web]]in state[STARTING _ PREP]at org . Apache . catalina . util . life cycle base . invalid transition(life cycle base . Java:430)at org . Apache . catalina . util . life cycle base . destroy(life cycle base . Java:316)at org . Apache . catalina . core . container base . remove child(container base . Java:814)at org . Apache . tome . catwebapp builder . undepbuilder

2019年8月18日下午3:21:18 jdk.internal.reflect。NativeMethodAccessorImpl调用严重:在启动java.util.concurrent期间,子容器失败。ExecutionException:org.apache.catalina。生命周期异常:无法启动组件[StandardEngine[Catalina].StandardHost[localhost]。java.base/java.util.concurrent.FutureTask.report(futurettask.java:122)java.base/java.util.concurient.future task.get(FutureTask.java:191)org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)org.apache.catalina.core.StandardHost.startinernal(LifecycleBase.java:183)在org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1377)在org.apache.catalina.core.ContainerBase$StartChild.calls(container base.java:1367)在java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)在orgjava.base/java.util.concurrent.AbstractExecutorService.submit(abstractExecuterService.java:140)位于org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:902)位于org.apache.catalina.core.StandardEngine.startinernal(StandardEngine.java:262),位于org.apche.catalina.util.LifecycleBase.start(lifeclebase.java:183)(StandardService.java:421)在org.apache.catalina.util.LifecycleBase.start(lifecycelebase.java:183),在org.apche.catalina.core.StandardServer.startInternal(standardsserver.java:932),在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183),或在org.apache.catalina.startup.catalin.start(catalina.java:633)在java.base/jdk.internal.reflect.NativeMethodAccessorImpl。在java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)和java.base/jdk.internal.reflect.delegatingMethodAccessimpl.invoke(DelegatingMethodAccessorImpl.java:43)在java.base/java.lang.reflect.Method.invoke(Method.java:567)在org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:344)在org.apache.catalina.startup.Bootstrap.main(bootstrab.java:475)导致:org.apach.catalina。生命周期异常:无法启动组件[StandardEngine[Catalina].StandardHost[localhost]。org.apache.catalina.util.LifecycleBase.handleSubClassException(lifecycelebase.java:440)的标准上下文[/corso-web]]在org.apach.catalinautil.LifecycleBase.start(lifecytebase.java:198)在org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1377)在java.base/java.util.concurrent.FutureTask.run(futurettask.java:264)在org.apache.tomcat.util.threads.InlineExecutorService.execute(inlineExeutorService.java:75)在java.base/java.util.concurent.AbstractExecutorService.submit(abstractExecuterService.java:140)在org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:902)…21更多原因:org.apach.tomee.catalina。TOMERUNTIMEEException:java.lang.NullPointerException,位于org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1320),位于org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1130),位于org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)在org.apachi.catarina.core.StandardContext.startInternal(StandardContext.java:5048)在org.apache.catalina.util.LifecycleBase.start(LifeCycle base.java:183)…27更多由:java.lang.NullPointerException引起的,在org.apache.openejb.util.LinkResolver.add(LinkResolder.java:37)在org.apach.openejb.util.LinkResoller.add中(LinkRessolver.java:33)在org.apache.openejb.config.AutoConfig.resolvePersistenceRefs(AutoConfig.java:223)在org.apache.openejbs.config.config.java.deploy中(AutoConfig.java:197)在org.apache.openejb.config.ConfigurationFactory.configureApplication(configuraationFactory.java:1033)位于org.apach.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1286)…32更多

2019 年 8 月 18 日 3:21:18 PM jdk.internal.reflect.NativeMethodAccessor调用严重:子容器在启动 java.util.concurrent.execut期间失败异常:组织.apache.catalina.生命周期异常:一个子容器在 java.base/java.util.concurrent.FutureTask.report(未来任务.java:122) 在 java.base/java.util.concurrent.FutureTask.get(未来任务.java:.java 191) 在组织org.apache.catalina.core.StandardEngine.startInternal(标准引擎.java:262) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardService.startinternal(StandardService.java:421) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.StandardServer.startinternal(标准服务器.java:932) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)在 java.base/jdk.catalina.startup.Catalina.start(Catalina.java:633) at java.base/jdk.internal.reflect.native方法调用0(Native Methodod/jdk.internal.reflect.本机方法访问调用(本机方法.java:62) 在 java.base/jdk.internal.reflect.委派方法访问命令调用(委派方法访问imphl.java:43) 在 java.base/java.lang.reflect.方法调用(方法.java:567)启动启动(Bootstrap.catalina.startup.bootstrap.start(Bootstrap.java:344) at org.apache.catalina.startup.bootstrap.main(Bootstrap.java:475) 由以下原因引起:组织.apache.catalina.生命周期异常: 一个子容器在启动时失败.apache.catalina.core.containerBase.start内部(容器库.java:921) 在组织.apache.catalina.core.标准主机.java:841) 在组织.apache.catalina.util.LifecycleBase.start(生命周期.java:183)org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1377) at org.apache.catalina.core.containerBase$StartChild.call(ContainerBase.java:1367) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.apache.tomcat.util.threads.inlineExcutorService.execute(InlineExecutorService.java:75) at java.base/java.8 concurrent.abstractExecutorService.submit(AbstractExecutorService.java:140) atorg.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:902) ...13 更多 原因: java.util.并发.执行异常: 组织.apache.catalina.生命周期异常: 无法启动组件 [标准引擎 [卡塔利娜]标准主机[本地主机]。StandardContext[/corso-web]] at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) at org.apache.catalina.core.ContainerBase.startinternal(ContainerBase.java:909) ...21 更多原因:组织.apache.catalina.生命周期异常:无法启动组件 [标准引擎 [卡塔利娜]。标准主机[本地主机]。StandardContext[/corso-web]] at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198) 在 org.apache.catalina.core.containerbase..java 1377) 在组织.apache.catalina.core.containerbase.account$StartChild.call(ContainerBase.java:1367) 在 java.base/java.util.concurrent.futureTask.run(未来任务.java:264) 在org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:902) ...21 更多 原因: org.apache.tome.catalina.TomEERuntimeException: java.lang.NullPointerException at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1320) at org.apache.tome.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1130) at org.apache.tome.catalina.GlobalListenerSupport.lifecycleevent(GlobalListenerSupport.java:134) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(生命周期库.java:123) 在 org.apache.catalina.core.StandardContext.start内部(标准上下文.java:5048) 在 org.apache.catalina.util.LifecycleBase.start(生命周期库.java:183) ...27 更多 原因: java.lang.NullPointerException at org.apache.openejb.util.LinkResolver.resolve(LinkResolver.java:55) at org.apache.openejb.util.LinkResolver.add(LinkResolver.java:37) at org.java.apache.openejb.util.LinkResolver.add(LinkResolver.java:33) at org.apache.openejb.config.java.config.config.configurationfactory$Chain.deploy(ConfigurationFactory.java:420) 在 org.apache.openejb.config.ConfigurationFactory.configure应用程序(ConfigurationFactory.java:1033) 在 org.apache.tomee.catalina.TomcatWebAppBuilder.startinternal(TomcatWebAppBuilder.java:1286) ...另外 32

Aug 18,2019 3:21:18 PMjdk.internal.reflect.DelegatingMethodAccessorImpl调用INFO:暂停原型处理程序["超文本传输协议-nio-8080"]Aug 18,2019 3:21:18 PMjdk.internal.reflect.DelegatingMethodAccessorImpl调用INFO:暂停原型处理程序["ajp-nio-8009"]Aug 18,2019 3:21:18 PMjdk.internal.reflect.DelegatingMethodAccessorImpl调用INFO:停止服务[Catalina]Aug 18,2019 3:21:18 PMorg.apache.openejb.server.SimpleServiceManager停止INFO:停止服务器服务Aug 18,2019 3:21:18 PMorg.apache.openejb.assembler.classic.Assembler销毁应用程序信息:卸载应用程序:D:\Shared\Studio\JavaEE Developer-La guida完整版\apache-tomee-8.0.0-M3-plume\apache-tomee-plume-8.0.0-M3\webapps\ROOT Aug 18,2019 3:21:18 PMorg.apache.openejb.assembler.classic.AssemblerdoResourceDe的信息:关闭DataSource: ConnessioneCorsoWeb Aug 18,2019 3:21:18 PMjdk.internal.reflect.DelegatingMethodAccessorImpl破坏协议处理程序["超文本传输协议-nio-8080"]Aug 18,2019 3:21:18 PMjdk.internal.reflect.DelegatingMethodAccessorImpl调用信息:破坏协议处理程序["ajp-nio-8009"]

任何一个想法都将非常感激。

共有2个答案

邓越泽
2023-03-14

最后我解决了,非常清楚:在Udemy课程中使用的是Tomcat v8.0服务器(apache-tomee-7.0.4 ),而不是我使用的Tomcat v9.0服务器(apache-tomee-8.0.0-M3-plume)

现在没有必要使用旧版本,但使用tomee-8.0.0,有必要在Project Facets(检查JPA屏幕警报以配置它时)或JPA项目属性中设置JPA。

我已经测试了两个版本,现在都工作。

这是我在Tomcat v9.0服务器(apache-tomee-8.0.0-M3-plume)中的JPA配置的屏幕

百里俭
2023-03-14

请尝试以下方法:

<?xml version="1.0" encoding="UTF-8"?>
<persistence
    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"
    version="2.1">
    <persistence-unit name="corsoWebPersistence">
        <jta-data-source>connessioneCorsoWeb</jta-data-source>
        <properties>
            <property
                name="openejb.jpa.auto-scan"
                value="true" />
        </properties>
    </persistence-unit>
</persistence>
 类似资料:
  • 我是Java EE的新手,花了一些时间来学习它。在这个错误上几个小时,找不到完全相似的问题,在同一门udemy课程中有一个学生上了udemy问答课,但老师无法帮助该学生。 本教程将在MySQL上使用TomEE和JPA教授持久性。 Java编译器:使用来自执行环境JavaSE-10的遵从性 lib TomEE文件夹中的实际MySql连接器(尝试了几个):mysql-connector-java-8.

  • 我正在玩maven插件,特别是我试图开发一个自定义maven插件的eclipse。一切顺利,它从控制台构建...等等,直到:' “生命周期配置不包括插件执行” 出现。我研究发现: http://wiki.eclipse.org/M2E_plugin_execution_not_covered; 显然我不想忽略插件的执行,执行指令似乎不起作用,至于project configurator的委托,我无

  • Spring的初学者 背景:到目前为止,我一直在研究核心JAVA,现在我需要切换到MVC 尝试制作本教程中的第一个Spring MVC Hello World示例,我在: pom的这一行产生错误。xml: 波姆。xml 我甚至在市场搜索后安装了 请放轻松,这个问题是为了学习一些对我来说完全陌生的东西 我需要一些插件或什么来解决这个问题吗?如果是这样的话,有没有通用的插件来避免将来出现这样的错误 P

  • 一个较长的生命周期可以强制转成一个较短的生命周期,使它在一个通常情况下不能工作的作用域内也能正常工作。这种形式出现在编译器推导强制转换的时候,也出现在声明生命周期不同的时候(原文:This comes in the form of inferred coercion by the Rust compiler, and also in the form of declaring a lifetime

  • 我正在日蚀中构建PageTurner。并将其与Maven和ActionBarSherlcok集成。但是我在POM. xml中得到了这个单一的错误。 生命周期配置未涵盖插件执行:com。乱穿马路。专家插件。Android第二代:android maven插件:3.6.1:生成源代码(执行:默认-生成源代码,阶段:生成源代码)

  • 需要以下Eclipse m2e问题的帮助: 生命周期配置未涵盖插件执行:com。谷歌。appengine:appengine maven插件:1.8.3:endpoints\u get\u discovery\u doc(执行:默认,阶段:编译) 有什么想法吗?pom。xml看起来像:https://github.com/GoogleCloudPlatform/appengine-endpoint