[
https://issues.apache.org/jira/browse/TOMEE-2353?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16715669#comment-16715669
]
Wooster commented on TOMEE-2353:
--------------------------------
And if I try running with `-as-war` I get:
{noformat}
java -Dopenejb.validation.output.level=VERBOSE -jar target/CRMService-2.0.war
-tomeexml config/tomee-local.xml -as-war
INFO - Starting TomEE from:
/Users/cyber/dev/myapp/MyApp-CRMService/./apache-tomee
INFO - Initializing ProtocolHandler ["http-nio-8080"]
INFO - Using a shared selector for servlet write/read
INFO - Starting service [Tomcat]
INFO - Starting Servlet Engine: Apache Tomcat/9.0.12
INFO - Starting ProtocolHandler ["http-nio-8080"]
INFO - Using
'openejb.jdbc.datasource-creator=org.apache.tomee.jdbc.TomEEDataSourceCreator'
INFO -
********************************************************************************
INFO - OpenEJB http://tomee.apache.org/
INFO - Startup: Mon Dec 10 22:22:03 WET 2018
INFO - Copyright 1999-2018 (C) Apache OpenEJB Project, All Rights Reserved.
INFO - Version: 8.0.0-M1
INFO - Build date: 20181014
INFO - Build time: 12:39
INFO -
********************************************************************************
INFO - openejb.home = /Users/cyber/dev/myapp/MyApp-CRMService/apache-tomee
INFO - openejb.base = /Users/cyber/dev/myapp/MyApp-CRMService/apache-tomee
INFO - Created new singletonService
org.apache.openejb.cdi.ThreadSingletonServiceImpl@3c87521
INFO - Succeeded in installing singleton service
INFO - TomEE configuration file is
'/Users/cyber/dev/myapp/MyApp-CRMService/config/tomee-local.xml'
INFO - Configuring Service(id=Tomcat Security Service, type=SecurityService,
provider-id=Tomcat Security Service)
INFO - Configuring Service(id=Default Transaction Manager,
type=TransactionManager, provider-id=Default Transaction Manager)
INFO - Configuring Service(id=jdbc/crmservice, type=Resource,
provider-id=Default JDBC Database)
INFO - Using 'openejb.system.apps=false'
INFO - Using 'openejb.deployments.classpath=false'
INFO - Creating TransactionManager(id=Default Transaction Manager)
INFO - Creating SecurityService(id=Tomcat Security Service)
INFO - Creating Resource(id=jdbc/crmservice)
INFO - Using 'openejb.servicemanager.enabled=false'
INFO - Using 'openejb.deployments.classpath.filter.systemapps=false'
INFO - Configuring enterprise application:
INFO - Configuring Service(id=Default Managed Container, type=Container,
provider-id=Default Managed Container)
INFO - Auto-creating a container for bean .Comp308592104:
Container(type=MANAGED, id=Default Managed Container)
INFO - Creating Container(id=Default Managed Container)
INFO - Using directory /var/folders/n8/rmzyc9yx2zvbc978_p6y_by40000gn/T for
stateful session passivation
INFO - Using 'openejb.validation.output.level=VERBOSE'
INFO - Enterprise application "" loaded.
INFO - Assembling app:
INFO - Existing thread singleton service in SystemInstance():
org.apache.openejb.cdi.ThreadSingletonServiceImpl@3c87521
INFO - OpenWebBeans Container is starting...
INFO - Adding OpenWebBeansPlugin : [CdiPlugin]
SEVERE - CDI Beans module deployment failed
org.apache.webbeans.exception.WebBeansConfigurationException: Error while
sending SystemEvent to a CDI Extension!
org.apache.webbeans.portable.events.generics.GProcessAnnotatedType@4e957e22
at
org.apache.webbeans.event.NotificationManager.fireEvent(NotificationManager.java:771)
at
org.apache.webbeans.container.BeanManagerImpl.fireEvent(BeanManagerImpl.java:495)
at
org.apache.webbeans.container.BeanManagerImpl.fireEvent(BeanManagerImpl.java:469)
at
org.apache.webbeans.util.WebBeansUtil.fireProcessAnnotatedTypeEvent(WebBeansUtil.java:736)
at
org.apache.webbeans.config.BeansDeployer.annotatedTypesFromBdaClassPath(BeansDeployer.java:1361)
at
org.apache.webbeans.config.BeansDeployer.annotatedTypesFromClassPath(BeansDeployer.java:1284)
at org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:257)
at
org.apache.openejb.cdi.OpenEJBLifecycle.startApplication(OpenEJBLifecycle.java:196)
at
org.apache.openejb.cdi.ThreadSingletonServiceImpl.initialize(ThreadSingletonServiceImpl.java:227)
at org.apache.openejb.cdi.CdiBuilder.build(CdiBuilder.java:41)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:967)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:761)
at org.apache.tomee.embedded.Container.deploy(Container.java:350)
at org.apache.tomee.embedded.Container.deployPathsAsWebapp(Container.java:230)
at
org.apache.tomee.embedded.Container.deployClasspathAsWebApp(Container.java:195)
at
org.apache.tomee.embedded.Container.deployClasspathAsWebApp(Container.java:171)
at org.apache.tomee.embedded.Main.deployClasspath(Main.java:226)
at org.apache.tomee.embedded.Main.main(Main.java:161)
Caused by: org.apache.webbeans.exception.WebBeansException:
java.lang.StackOverflowError
at
org.apache.webbeans.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:371)
at
org.apache.webbeans.event.NotificationManager.invokeObserverMethod(NotificationManager.java:854)
at
org.apache.webbeans.event.NotificationManager.fireEvent(NotificationManager.java:750)
... 17 more
Caused by: java.lang.StackOverflowError
at java.util.HashMap.hash(HashMap.java:339)
at java.util.HashMap.put(HashMap.java:612)
at
org.apache.bval.util.reflection.TypeUtils.getTypeArguments(TypeUtils.java:863)
at
org.apache.bval.util.reflection.TypeUtils.getTypeArguments(TypeUtils.java:790)
at
org.apache.bval.util.reflection.TypeUtils.getTypeArguments(TypeUtils.java:914)
at
org.apache.bval.util.reflection.TypeUtils.getTypeArguments(TypeUtils.java:786)
at
org.apache.bval.util.reflection.TypeUtils.getTypeArguments(TypeUtils.java:772)
at org.apache.bval.util.reflection.TypeUtils.getRawType(TypeUtils.java:1140)
at org.apache.bval.util.reflection.TypeUtils.getRawType(TypeUtils.java:1157)
at org.apache.bval.util.reflection.TypeUtils.getRawType(TypeUtils.java:1157)
at org.apache.bval.util.reflection.TypeUtils.getRawType(TypeUtils.java:1157)
at org.apache.bval.util.reflection.TypeUtils.getRawType(TypeUtils.java:1157)
at org.apache.bval.util.reflection.TypeUtils.getRawType(TypeUtils.java:1157)
at org.apache.bval.util.reflection.TypeUtils.getRawType(TypeUtils.java:1157)
at org.apache.bval.util.reflection.TypeUtils.getRawType(TypeUtils.java:1157)
at
org.apache.bval.util.reflection.TypeUtils.getRawType(TypeUtils.java:1157){noformat}
pom.xml:
{code:java}
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<!--<mainClass>no.myapp.ec.servers.HerokuRunner</mainClass>-->
<mainClass>org.apache.tomee.embedded.FatApp</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/cxf/bus-extensions.txt</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/openwebbeans/openwebbeans.properties</resource>
</transformer>
</transformers>
<filters>
<filter> <!-- we don't want JSF to be activated -->
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/faces-config.xml</exclude>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<exclude>LICENSE</exclude>
<exclude>LICENSE/*</exclude>
<exclude>persistence.xml</exclude>
<exclude>classes/META-INF/persistence.xml</exclude>
<!--<exclude>WEB-INF/classes/META-INF/persistence.xml</exclude>-->
<exclude>META-INF/persistence.xml</exclude>
<!--<exclude>WEB-INF/persistence.xml</exclude>-->
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>{code}
> @PersistenceUnit unitName has multiple matches
> ----------------------------------------------
>
> Key: TOMEE-2353
> URL: https://issues.apache.org/jira/browse/TOMEE-2353
> Project: TomEE
> Issue Type: Bug
> Components: TomEE Core Server
> Reporter: Wooster
> Priority: Major
>
> {noformat}
> *no* further _formatting_ is done here{noformat}
> On 8.0.0-M1
> I am trying to deploy a shaded WAR as described in
> [https://www.tomitribe.com/blog/50-shades-of-tomee/]
> I have a simple persistence.xml
>
> {code:java}
> <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.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_2_0.xsd">
> <persistence-unit name="CRMServicePU" transaction-type="JTA">
> <jta-data-source>jdbc/crmservice</jta-data-source>
> <non-jta-data-source>jdbc/nonJTAcrmService</non-jta-data-source>
> <exclude-unlisted-classes>false</exclude-unlisted-classes>
> <shared-cache-mode>ALL</shared-cache-mode> </persistence-unit> </persistence>
> {code}
>
>
> And a tomee.xml config file that connects up jdbc/crmservice to postgresql.
> Persistence.xml lives in webapp/WEB-INF
> I have ensured exactly one copy of persistence.xml is present in the build,
> yet it keeps creating multiple copies of the PU:
> {code:java}
> INFO - Configuring Service(id=Default Singleton Container, type=Container,
> provider-id=Default Singleton Container)
> INFO - Auto-creating a container for bean AutoTaskStats:
> Container(type=SINGLETON, id=Default Singleton Container)
> INFO - Creating Container(id=Default Singleton Container)
> INFO - Configuring Service(id=Default Stateless Container, type=Container,
> provider-id=Default Stateless Container)
> INFO - Auto-creating a container for bean ContractBean:
> Container(type=STATELESS, id=Default Stateless Container)
> INFO - Creating Container(id=Default Stateless Container)
> INFO - Configuring Service(id=Default Managed Container, type=Container,
> provider-id=Default Managed Container)
> INFO - Auto-creating a container for bean CRMService-2.0.Comp954997812:
> Container(type=MANAGED, id=Default Managed Container)
> INFO - Creating Container(id=Default Managed Container)
> INFO - Using directory /var/folders/n8/rmzyc9yx2zvbc978_p6y_by40000gn/T for
> stateful session passivation
> INFO - Configuring PersistenceUnit(name=CRMServicePU)
> INFO - Auto-creating a Resource with id 'jdbc/crmserviceNonJtaNonJta' of type
> 'DataSource for 'CRMServicePU'.
> INFO - Configuring Service(id=jdbc/crmserviceNonJtaNonJta, type=Resource,
> provider-id=jdbc/crmserviceNonJta)
> INFO - Creating Resource(id=jdbc/crmserviceNonJtaNonJta)
> INFO - Adjusting PersistenceUnit CRMServicePU <jta-data-source> to Resource
> ID 'jdbc/crmserviceNonJta' from 'jdbc/crmservice'
> INFO - Adjusting PersistenceUnit CRMServicePU <non-jta-data-source> to
> Resource ID 'jdbc/crmserviceNonJtaNonJta' from 'jdbc/nonJTAcrmService'
> INFO - Configuring PersistenceUnit(name=CRMServicePU)
> INFO - Adjusting PersistenceUnit CRMServicePU <jta-data-source> to Resource
> ID 'jdbc/crmserviceNonJta' from 'jdbc/crmservice'
> INFO - Adjusting PersistenceUnit CRMServicePU <non-jta-data-source> to
> Resource ID 'jdbc/crmserviceNonJtaNonJta' from 'null'
> INFO - Configuring PersistenceUnit(name=CRMServicePU)
> INFO - Adjusting PersistenceUnit CRMServicePU <jta-data-source> to Resource
> ID 'jdbc/crmserviceNonJta' from 'jdbc/crmservice'
> INFO - Adjusting PersistenceUnit CRMServicePU <non-jta-data-source> to
> Resource ID 'jdbc/crmserviceNonJtaNonJta' from 'null'
> SEVERE - FAIL ... CRMService-2.0: @PersistenceUnit unitName has multiple
> matches: unitName "CRMServicePU" has 3 possible matches.
> SEVERE - FAIL ... CRMService-2.0: @PersistenceUnit unitName has multiple
> matches: unitName "CRMServicePU" has 3 possible matches.
> SEVERE - FAIL ... CRMService-2.0: @PersistenceUnit unitName has multiple
> matches: unitName "CRMServicePU" has 3 possible matches.
> SEVERE - FAIL ... CRMService-2.0: @PersistenceUnit unitName has multiple
> matches: unitName "CRMServicePU" has 3 possible matches.
> SEVERE - FAIL ... CRMService-2.0: @PersistenceUnit unitName has multiple
> matches: unitName "CRMServicePU" has 3 possible matches.
> SEVERE - FAIL ... CRMService-2.0: @PersistenceUnit unitName has multiple
> matches: unitName "CRMServicePU" has 3 possible matches.
> SEVERE - FAIL ... CRMService-2.0: @PersistenceUnit unitName has multiple
> matches: unitName "CRMServicePU" has 3 possible matches.
> SEVERE - FAIL ... CRMService-2.0: @PersistenceUnit unitName has multiple
> matches: unitName "CRMServicePU" has 3 possible matches.
> SEVERE - FAIL ... CRMService-2.0: @PersistenceUnit unitName has multiple
> matches: unitName "CRMServicePU" has 3 possible matches.
> SEVERE - FAIL ... CRMService-2.0: @PersistenceUnit unitName has multiple
> matches: unitName "CRMServicePU" has 3 possible matches.{code}
> I am quite sure there is only one persistence.xml file in the built shaded
> war. When I execute it, the file can be found at
> `./target/CRMService-2.0/WEB-INF/persistence.xml`
> What am I doing wrong?
>
>
> With VERBOSE:
>
> {code:java}
> SEVERE - FAIL ... CRMService-2.0: The reference @PersistenceUnit(name="emf",
> unitName="CRMServicePU") cannot be resolved as there are 3 units with the
> same name. Update your unitName to one of the
> following:../CRMServicePU%20-1416073382localhost
> ../CRMServicePU%20-164941935localhost
> ../CRMServicePU%2028475843localhost
> {code}
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)