NameNotFoundException: имя "openejb / PersistenceUnit / fwtool-jpa -963118576localhost" не найдено - PullRequest
0 голосов
/ 15 февраля 2020

Я пытаюсь запустить TomEE в Docker. Он работает с 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?

1 Ответ

0 голосов
/ 14 марта 2020

Окончательное изображение 8.0.1-plume вышло, и мое приложение развернуто и нормально запускается с этим.

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

Это была просто проблема с Бета-изображение M3 11-jre-8.0.0-M3-plume.

...