[ 
https://issues.apache.org/jira/browse/TOMEE-2151?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonathan Gallimore resolved TOMEE-2151.
---------------------------------------
    Resolution: Fixed

> Use correct classloader for creating application resources specified in 
> resources.xml
> -------------------------------------------------------------------------------------
>
>                 Key: TOMEE-2151
>                 URL: https://issues.apache.org/jira/browse/TOMEE-2151
>             Project: TomEE
>          Issue Type: Bug
>    Affects Versions: 1.7.5, 7.0.4
>            Reporter: Jonathan Gallimore
>            Assignee: Jonathan Gallimore
>
> I have been digging into our support for connectors in WARs and EARs, and I 
> believe I have uncovered (and hopefully patched) a few issues, relating to 
> EAR deployments, and defining containers in an application's resources.xml 
> file. I have 2 PRs (which are not ready to be merged yet), and both have a 
> sample with a connector in a WAR and a connector in a EAR file.
> In essence, the issue that I have run into, is where the resource adapter and 
> container are defined in an application's resources.xml, like this:
> <resources>
>     <Resource id="SampleResourceAdapter" 
> class-name="org.superbiz.connector.adapter.SampleResourceAdapter">
>     </Resource>
>     <Container id="SampleMDBContainer" ctype="MESSAGE">
>         ResourceAdapter=SampleResourceAdapter
>         
> ActivationSpecClass=org.superbiz.connector.adapter.SampleActivationSpec
>         MessageListenerInterface=org.superbiz.connector.api.InboundListener
>     </Container>
>     <Resource id="SampleConnectionFactory" 
> type="org.superbiz.connector.api.SampleConnectionFactory" 
> class-name="org.superbiz.connector.adapter.SampleManagedConnectionFactory">
>         ResourceAdapter=SampleResourceAdapter
>         TransactionSupport=none
>     </Resource>
> </resources>
> when that application is deployed through webapps, either as an EAR or a WAR, 
> it would fail:
> at 
> org.apache.openejb.assembler.classic.Assembler.replaceResourceAdapterProperty(Assembler.java:2680)
> at 
> org.apache.openejb.assembler.classic.Assembler.createContainer(Assembler.java:2550)
> at 
> org.apache.openejb.config.ConfigurationFactory.install(ConfigurationFactory.java:429)
> at 
> org.apache.openejb.config.AutoConfig.processApplicationContainers(AutoConfig.java:906)
> at org.apache.openejb.config.AutoConfig.deploy(AutoConfig.java:191)
> at 
> org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:403)
> at 
> org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:971)
> In essence what was happening was, the resource for SampleResourceAdapter was 
> being created as a lazy resource (i.e. initialized on first lookup), and the 
> creation of the container (which happened with TCCL being set to the main 
> TomEE classloader), triggered that lookup, which failed with a class not 
> found exception. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to