NameNotFoundException:名称“ openejb / PersistenceUnit / fwtool-jpa -963118576localhost”未找到

问题描述 投票:0回答:1

我正在尝试在Docker中运行TomEE。它适用于tomee:8-jre-7.1.0-plume图像,但不适用于11-jre-8.0.0-M3-plume

问题似乎与JPA / PersistenceUnit有关。这是我的WebContent/META-INF/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="fwtool-jpa">
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <class>com.nnn.OneClass</class>
        <class>com.nnn.SecondClass</class>
        <class>com.nnn.AnotherClass</class>
    </persistence-unit>
</persistence>

我构建应用程序来与具有以下方面的Maven进行战斗:

<source>11</source>
<target>11</target>

tomee.xml:

<?xml version="1.0" encoding="UTF-8"?>
<tomee>
  <Resource id="jtaFWTool" type="DataSource">
    jdbcDriver          com.mysql.jdbc.Driver
    jdbcUrl             jdbc:mysql://localhost:3306/FWTool
    connectionProperties        retainStatementAfterResultSetClose=true;autoReconnectForPools=true;useSSL=false
    userName            xxxx
    password            yyyy
    maxActive           500
    maxIdle             50
    maxWaitMillis                   50000
    removeAbandoned                 true
    maxConnLifetimeMillis           6000000
    maxAge                          6000000
    testWhileIdle                   true
    TimeBetweenEvictionRunsMillis   20000
    validationQuery                 SELECT 1
  </Resource>
</tomee>

Dockerfile:

FROM tomee:11-jre-8.0.0-M3-plume
COPY target/fwtool.war /usr/local/tomee/webapps/
COPY tomee.xml /usr/local/tomee/conf/
COPY mysql-connector-java-5.1.40.jar /usr/local/tomee/lib/

Docker构建和运行

docker build -t fwtool:tomee8-java11 .
docker run --net=host -d --name fwtool fwtool:tomee8-java11

[TomEE启动并部署战争时,出现了问题:

15-Feb-2020 17:46:15.843 INFO [main] org.apache.openejb.config.AutoConfig.deploy Configuring PersistenceUnit(name=fwtool-jpa)
15-Feb-2020 17:46:15.844 INFO [main] org.apache.openejb.config.AutoConfig.logAutoCreateResource Auto-creating a Resource with id 'jtaFWToolNonJta' of type 'DataSource for 'fwtool-jpa'.
15-Feb-2020 17:46:15.844 INFO [main] org.apache.openejb.config.AutoConfig.deploy Configuring Service(id=jtaFWToolNonJta, type=Resource, provider-id=jtaFWTool)
15-Feb-2020 17:46:15.844 INFO [main] org.apache.openejb.assembler.classic.Assembler.createRecipe Creating Resource(id=jtaFWToolNonJta)
15-Feb-2020 17:46:16.082 WARNING [main] org.apache.openejb.assembler.classic.Assembler.unusedProperty unused property 'maxWaitMillis' for resource 'jtaFWToolNonJta'
15-Feb-2020 17:46:16.083 WARNING [main] org.apache.openejb.assembler.classic.Assembler.unusedProperty unused property 'maxConnLifetimeMillis' for resource 'jtaFWToolNonJta'
15-Feb-2020 17:46:16.089 INFO [main] org.apache.openejb.config.AutoConfig.setJtaDataSource Adjusting PersistenceUnit fwtool-jpa <jta-data-source> to Resource ID 'jtaFWTool' from 'null'
15-Feb-2020 17:46:16.089 INFO [main] org.apache.openejb.config.AutoConfig.setNonJtaDataSource Adjusting PersistenceUnit fwtool-jpa <non-jta-data-source> to Resource ID 'jtaFWToolNonJta' from 'null'
15-Feb-2020 17:46:16.160 INFO [main] org.apache.openejb.config.AppInfoBuilder.build Enterprise application "/usr/local/tomee/webapps/fwtool" loaded.
15-Feb-2020 17:46:16.172 INFO [main] org.apache.openejb.assembler.classic.Assembler.createApplication Assembling app: /usr/local/tomee/webapps/fwtool
15-Feb-2020 17:46:16.491 INFO [main] org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory.createDelegate PersistenceUnit(name=fwtool-jpa, provider=org.eclipse.persistence.jpa.PersistenceProvider) - provider time 273ms
15-Feb-2020 17:46:16.491 INFO [main] org.apache.openejb.assembler.classic.Assembler.destroyApplication Undeploying app: /usr/local/tomee/webapps/fwtool
15-Feb-2020 17:46:16.493 SEVERE [main] jdk.internal.reflect.NativeMethodAccessorImpl.invoke Error destroying child
        org.apache.catalina.LifecycleException: An invalid Lifecycle transition was attempted ([before_destroy]) for component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/fwtool]] in state [STARTING_PREP]
                at org.apache.catalina.util.LifecycleBase.invalidTransition(LifecycleBase.java:430)
                at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:316)
                at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:814)
                at org.apache.tomee.catalina.TomcatWebAppBuilder.undeploy(TomcatWebAppBuilder.java:1656)
    ...
    ...
Caused by: javax.naming.NameNotFoundException: Name "openejb/PersistenceUnit/fwtool-jpa -963118576localhost" not found.
                at org.apache.openejb.core.ivm.naming.IvmContext.federate(IvmContext.java:211)
                at org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:159)
                at org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:2508)

您知道TomEE 8的问题在哪里吗?

jpa eclipselink tomee
1个回答
0
投票

最终的映像8.0.1-plume现在已发布,我的应用程序已部署并正常启动。

https://hub.docker.com/_/tomee

这只是M3 beta图像11-jre-8.0.0-M3-plume的问题。

© www.soinside.com 2019 - 2024. All rights reserved.