You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by "priyaksingh@gmail.com" <pr...@gmail.com> on 2019/02/01 13:16:18 UTC

Disable auto scanning for EJBs in a NON-EJB web application in Tomee

Hi, 

     I am working on migrating a web-app for my organisation. We have
started using Spring 5, which needs the latest Tomee and hence the migration
process. Our application works fine on Tomee 1.7.5. We do not have any EJBs
in our web application, but Tomee 7.1.0 seems to scan for one. I have done
the following changes, but have not found any success. 

Changes made: 
1.) Create empty Scan.xml under WEB-INF folder in the applictaion 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 

<scan/>



2.) Update exclusions.list as follows 

default-list 

MyappJar- 

cxf-core- 

MyappWar- 



3.) Updated the system.properties under tomee/conf 

# Which paths / libraries should be scanned? 

openejb.scan.webapp.container = false 

#openejb.scan.webapp.container.includes = .*(geronimo|mp-jwt|failsafe).* 

#openejb.scan.webapp.container.excludes = 





None of the above seems to work and I get the following error. 





========== 

ERROR: 

INFO: Dumping Generated openejb-jar.xml to:
/opt/tomee/temp/openejb-jar-2341936619230328309Login.xml 

Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
logResults 

SEVERE: FAIL ... Login:	Missing required persistence.xml for
@PersistenceContext ref "entityManager" to unit "workflowPersistenceUnit" 

Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
logResults 

SEVERE: FAIL ... Login:	Missing required persistence.xml for
@PersistenceContext ref "entityManager" to unit
"auditLoggingPersistenceUnit" 

Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
logResults 

SEVERE: Invalid EjbModule(name=Login, path=/opt/tomee/webapps/Login) 

Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
logResults 

SEVERE: FAIL ... Login:	Missing required persistence.xml for
@PersistenceContext ref "entityManager" to unit "workflowPersistenceUnit" 

Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
logResults 

SEVERE: FAIL ... Login:	Missing required persistence.xml for
@PersistenceContext ref "entityManager" to unit
"auditLoggingPersistenceUnit" 

Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
logResults 

SEVERE: Invalid WebModule(name=Login, path=/opt/tomee/webapps/Login) 

Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
deploy 

INFO: Set the 'openejb.validation.output.level' system property to VERBOSE
for increased validation details. 

Feb 01, 2019 11:32:40 AM org.apache.tomee.catalina.TomcatWebAppBuilder
startInternal 

SEVERE: Unable to deploy collapsed ear in war
StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Login] 

org.apache.openejb.config.ValidationFailedException: Module failed
validation. AppModule(name=Login) 



I have few Spring beans (not EJBs), which have the annotation
"@PersistenceContext". Request help.



--
Sent from: http://tomee-openejb.979440.n4.nabble.com/TomEE-Users-f979441.html

Re: Disable auto scanning for EJBs in a NON-EJB web application in Tomee

Posted by "priyaksingh@gmail.com" <pr...@gmail.com>.
Hi Jon,

        Appreciate your reply. Unfortunately as this our organisation
artefact, I will not be able to created a sample war. Also we are using
docker for deployment. I resolved the issue by using @Autowired instead of
@PersistentContext. But now i am getting a new error. 

=====

04-Feb-2019 11:54:20.887 SEVERE [localhost-startStop-1]
org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal Unable to deploy
collapsed ear in war
StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Login]
	org.apache.openejb.OpenEJBException: Creating application failed:
/opt/tomee/webapps/Login: interface javax.validation.ValidatorFactory is not
visible from class loader
	at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:1096)
	at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:757)
	at
org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1303)
	at
org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1125)
	at
org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
	at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
	at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
	at
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:629)
	at
org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1839)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
	Caused by: java.lang.IllegalArgumentException: interface
javax.validation.ValidatorFactory is not visible from class loader
	at java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:581)
	at java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:557)
	at java.lang.reflect.WeakCache$Factory.get(WeakCache.java:230)
	at java.lang.reflect.WeakCache.get(WeakCache.java:127)
	at java.lang.reflect.Proxy.getProxyClass0(Proxy.java:419)
	at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:719)
	at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:867)

=====



--
Sent from: http://tomee-openejb.979440.n4.nabble.com/TomEE-Users-f979441.html

Re: Disable auto scanning for EJBs in a NON-EJB web application in Tomee

Posted by Jonathan Gallimore <jo...@gmail.com>.
Are you able to create a small sample war that can help us reproduce it?
That would be a big help.

Many thanks
Jon

On Fri, Feb 1, 2019 at 2:44 PM priyaksingh@gmail.com <pr...@gmail.com>
wrote:

> Hi Roberto,
>
>         Thank You for replying. Appreciated it :)
>
>          Yes, persistence.xml exists under src/main/resources. It has
> always
> been at this location and the application runs fine on Tomee 1.7.5. I have
> also enclosed spring's "entitymanagerFactory" bean definitions from
> applicationContext.xml for reference.
>
> ========
>          <?xml version="1.0" encoding="UTF-8"?>
>          <persistence xmlns="http://java.sun.com/xml/ns/persistence"
> version="1.0">
>         <persistence-unit name="workflowPersistenceUnit"
> transaction-type="RESOURCE_LOCAL">
>                 <class>Entity beans</class>
>         </persistence-unit>
>         <persistence-unit name="auditLoggingPersistenceUnit"
> transaction-type="RESOURCE_LOCAL">
>                 <class>Entity beans</class>
>         </persistence-unit>
>         </persistence>
> =======
>
>    <bean id="entityManagerFactory"
> class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
>                 <property name="dataSource" ref="auditDataSource" />
>                 <property name="persistenceUnitName"
> value="workflowPersistenceUnit" />
>                 <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
>                 <property name="jpaDialect" ref="jpaDialect" />
>         </bean>
>
> <bean id="auditLoggingManagerFactory"
> class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
>                 <property name="dataSource" ref="auditDataSource" />
>                 <property name="persistenceUnitName"
> value="auditLoggingPersistenceUnit"
> />
>                 <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
>                 <property name="jpaDialect" ref="jpaDialect" />
>         </bean>
>
> <bean id="jpaVendorAdapter"
> class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
>                 <property name="database" value="${db.database}" />
>                 <property name="databasePlatform"
> value="${db.database.platform}" />
>         </bean>
>
>
> <bean id="jpaDialect"
> class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />
>
>         <bean id="jpaTransactionManager"
> class="org.springframework.orm.jpa.JpaTransactionManager">
>                 <property name="entityManagerFactory"
> ref="entityManagerFactory" />
>                 <property name="dataSource" ref="auditDataSource" />
>                 <property name="jpaDialect" ref="jpaDialect" />
>         </bean>
>
>         <tx:annotation-driven transaction-manager="jpaTransactionManager"
> />
>
> =======
>
>    This is a working application which has been deployed successfully on
> Prod system as well. But when we try to deploy it on Tomee 7.1.0, for some
> reason it thinks we have EJBs and starts analysing it in a EE fashion.
>
> Regards,
> Priya
>
>
>
>
>
>
> --
> Sent from:
> http://tomee-openejb.979440.n4.nabble.com/TomEE-Users-f979441.html
>

Re: Disable auto scanning for EJBs in a NON-EJB web application in Tomee

Posted by "priyaksingh@gmail.com" <pr...@gmail.com>.
Hi Roberto,

        Thank You for replying. Appreciated it :)

         Yes, persistence.xml exists under src/main/resources. It has always
been at this location and the application runs fine on Tomee 1.7.5. I have
also enclosed spring's "entitymanagerFactory" bean definitions from
applicationContext.xml for reference.

========
         <?xml version="1.0" encoding="UTF-8"?> 
         <persistence xmlns="http://java.sun.com/xml/ns/persistence"
version="1.0">
	<persistence-unit name="workflowPersistenceUnit"
transaction-type="RESOURCE_LOCAL">
		<class>Entity beans</class>
	</persistence-unit>
	<persistence-unit name="auditLoggingPersistenceUnit"
transaction-type="RESOURCE_LOCAL">
		<class>Entity beans</class>
	</persistence-unit>
        </persistence>
=======

   <bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="dataSource" ref="auditDataSource" />
		<property name="persistenceUnitName" value="workflowPersistenceUnit" />
		<property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
		<property name="jpaDialect" ref="jpaDialect" />
	</bean>

<bean id="auditLoggingManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
		<property name="dataSource" ref="auditDataSource" />
		<property name="persistenceUnitName" value="auditLoggingPersistenceUnit"
/>
		<property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
		<property name="jpaDialect" ref="jpaDialect" />
	</bean>

<bean id="jpaVendorAdapter"
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
		<property name="database" value="${db.database}" />
		<property name="databasePlatform" value="${db.database.platform}" />
	</bean>


<bean id="jpaDialect"
class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />

	<bean id="jpaTransactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
		<property name="entityManagerFactory" ref="entityManagerFactory" />
		<property name="dataSource" ref="auditDataSource" />
		<property name="jpaDialect" ref="jpaDialect" />
	</bean>

	<tx:annotation-driven transaction-manager="jpaTransactionManager" />

=======

   This is a working application which has been deployed successfully on
Prod system as well. But when we try to deploy it on Tomee 7.1.0, for some
reason it thinks we have EJBs and starts analysing it in a EE fashion. 

Regards,
Priya






--
Sent from: http://tomee-openejb.979440.n4.nabble.com/TomEE-Users-f979441.html

Re: Disable auto scanning for EJBs in a NON-EJB web application in Tomee

Posted by Roberto Cortez <ra...@yahoo.com.INVALID>.
Hi,

It seems that your issue might be related with this error log:

SEVERE: FAIL ... Login:	Missing required persistence.xml for
@PersistenceContext ref "entityManager" to unit
"auditLoggingPersistenceUnitā€¯ 

Do you have a persistence.xml added to your webapp? You need one if you want to use JPA with @PersistenceContext.

Cheers,
Roberto

> On 1 Feb 2019, at 13:16, priyaksingh@gmail.com wrote:
> 
> Hi, 
> 
>     I am working on migrating a web-app for my organisation. We have
> started using Spring 5, which needs the latest Tomee and hence the migration
> process. Our application works fine on Tomee 1.7.5. We do not have any EJBs
> in our web application, but Tomee 7.1.0 seems to scan for one. I have done
> the following changes, but have not found any success. 
> 
> Changes made: 
> 1.) Create empty Scan.xml under WEB-INF folder in the applictaion 
> <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
> 
> <scan/>
> 
> 
> 
> 2.) Update exclusions.list as follows 
> 
> default-list 
> 
> MyappJar- 
> 
> cxf-core- 
> 
> MyappWar- 
> 
> 
> 
> 3.) Updated the system.properties under tomee/conf 
> 
> # Which paths / libraries should be scanned? 
> 
> openejb.scan.webapp.container = false 
> 
> #openejb.scan.webapp.container.includes = .*(geronimo|mp-jwt|failsafe).* 
> 
> #openejb.scan.webapp.container.excludes = 
> 
> 
> 
> 
> 
> None of the above seems to work and I get the following error. 
> 
> 
> 
> 
> 
> ========== 
> 
> ERROR: 
> 
> INFO: Dumping Generated openejb-jar.xml to:
> /opt/tomee/temp/openejb-jar-2341936619230328309Login.xml 
> 
> Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
> logResults 
> 
> SEVERE: FAIL ... Login:	Missing required persistence.xml for
> @PersistenceContext ref "entityManager" to unit "workflowPersistenceUnit" 
> 
> Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
> logResults 
> 
> SEVERE: FAIL ... Login:	Missing required persistence.xml for
> @PersistenceContext ref "entityManager" to unit
> "auditLoggingPersistenceUnit" 
> 
> Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
> logResults 
> 
> SEVERE: Invalid EjbModule(name=Login, path=/opt/tomee/webapps/Login) 
> 
> Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
> logResults 
> 
> SEVERE: FAIL ... Login:	Missing required persistence.xml for
> @PersistenceContext ref "entityManager" to unit "workflowPersistenceUnit" 
> 
> Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
> logResults 
> 
> SEVERE: FAIL ... Login:	Missing required persistence.xml for
> @PersistenceContext ref "entityManager" to unit
> "auditLoggingPersistenceUnit" 
> 
> Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
> logResults 
> 
> SEVERE: Invalid WebModule(name=Login, path=/opt/tomee/webapps/Login) 
> 
> Feb 01, 2019 11:32:40 AM org.apache.openejb.config.ReportValidationResults
> deploy 
> 
> INFO: Set the 'openejb.validation.output.level' system property to VERBOSE
> for increased validation details. 
> 
> Feb 01, 2019 11:32:40 AM org.apache.tomee.catalina.TomcatWebAppBuilder
> startInternal 
> 
> SEVERE: Unable to deploy collapsed ear in war
> StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Login] 
> 
> org.apache.openejb.config.ValidationFailedException: Module failed
> validation. AppModule(name=Login) 
> 
> 
> 
> I have few Spring beans (not EJBs), which have the annotation
> "@PersistenceContext". Request help.
> 
> 
> 
> --
> Sent from: http://tomee-openejb.979440.n4.nabble.com/TomEE-Users-f979441.html