[wildfly-dev] How to deal with resource refs when deploying JPA container managed entity managers (WFLY-2841)

Martin Andersson martin.andersson at purplescout.se
Fri Jan 31 09:33:14 EST 2014


I agree. I don't think mapping a datasource in jboss-web.xml is such an
exotic use case. I should just work. Also, there is no hint anywere that
there is a property you can set to make it work.

The proprietary jboss namespace is not an option since I want to be vendor
neutral, but ear/java:app is definitely an option.

Br,
Martin Andersson
Java EE developer at www.purplescout.se

On Fri, Jan 31, 2014 at 3:03 PM, Eduardo Martins <emartins at redhat.com>wrote:

> IMHO this hint should not be needed, a PU referencing a java:comp or
> java:module datasource is already a hint that the PU will need a resource
> bound by another component bundled in same jar/war.
>
> By the way I'm not really a fan of using java:comp in a PU, it sets an
> dependency on a EE component, and that doesn't seem right. Wouldn't be
> preferable to use the original java:jboss/datasources/ExampleDS JNDI name,
> or use an ear and define a java:app bind  at application.xml, to be shared
> by all modules and components?
>
> --E
>
>
> On 31 Jan 2014, at 13:13, Scott Marlow <smarlow at redhat.com> wrote:
>
> > Great, thanks for reporting the issue Martin!  Great to bring more
> > awareness of the deployment problem and workaround.
> >
> > Scott
> > On 01/31/2014 08:04 AM, Martin Andersson wrote:
> >> Thanks a lot!
> >>
> >> I can confirm that the app works now.
> >>
> >> Br,
> >> Martin Andersson
> >> Java EE developer at www.purplescout.se <http://www.purplescout.se>
> >>
> >>
> >> On Fri, Jan 31, 2014 at 1:55 PM, Scott Marlow <smarlow at redhat.com
> >> <mailto:smarlow at redhat.com>> wrote:
> >>
> >>    Hi Arjan,
> >>
> >>    Great catch!  Your change and adding an persistence unit hint that
> the
> >>    persistence unit doesn't need to be started early:
> >>
> >>        <property name="wildfly.jpa.twophasebootstrap" value="false"/>
> >>
> >>    Helps the deployment succeed.
> >>
> >>    It looks like ResourceReferenceProcessor is running during the
> >>    Phase.POST_MODULE deployment phase, so we need to add a hint to the
> >>    persistence.xml, that helps the persistence unit deploy later.
> >>
> >>    [6]
> >>
> https://github.com/wildfly/wildfly/blob/master/ee/src/main/java/org/jboss/as/ee/subsystem/EeSubsystemAdd.java#L194
> >>
> >>    Scott
> >>
> >>    On 01/31/2014 06:25 AM, arjan tijms wrote:
> >>> Hi,
> >>>
> >>> I looks like there's one bug in the example.
> >>>
> >>> jboss-web.xml defines jdbc/MyDS
> >>>
> >>> But persistence.xml references java:comp/env/MyDS
> >>>
> >>> Shouldn't the last one be at least java:comp/env/jdbc/MyDS?
> >>    Regardless,
> >>> even with matching names it indeed doesn't work.
> >>>
> >>> Kind regards,
> >>> Arjan Tijms
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> On Thu, Jan 30, 2014 at 9:52 PM, Scott Marlow <smarlow at redhat.com
> >>    <mailto:smarlow at redhat.com>
> >>> <mailto:smarlow at redhat.com <mailto:smarlow at redhat.com>>> wrote:
> >>>
> >>>    WFLY-2841 reports a deployment failure that occurs when a
> >>    deployments
> >>>    [1] persistence.xml, tries to use a resource reference [2]
> >>    for the
> >>>    datasource [3].  The error [4] mentions an unresolved
> >>    (DataSource)
> >>>    service dependency that is added to the persistence unit
> >>    service [5],
> >>>    instead of resolving the resource reference (and using the
> >>    underlying
> >>>    DataSource).
> >>>
> >>>    How should we handle resource references for this case?  Is
> >>    there a way
> >>>    to resolve the resource reference directly from deployers?
> >>      Or do we
> >>>    represent the resource reference as a service?
> >>>
> >>>    Scott
> >>>
> >>>    [1] test app is at https://github.com/umartin/wfds/
> >>>
> >>>    [2] jboss-web.xml
> >>>    <jboss-web>
> >>>              <context-root>/wfds</context-root>
> >>>              <resource-ref>
> >>>                      <res-ref-name>jdbc/MyDS</res-ref-name>
> >>>                      <res-type>javax.sql.DataSource</res-type>
> >>>
> >>>      <jndi-name>java:jboss/datasources/ExampleDS</jndi-name>
> >>>              </resource-ref>
> >>>    </jboss-web>
> >>>
> >>>    [3] persistence.xml pu def
> >>>    <persistence-unit name="wfdsPU" transaction-type="JTA">
> >>>              <jta-data-source>java:comp/env/MyDS</jta-data-source>
> >>>    </persistence-unit>
> >>>
> >>>    [4] {"JBAS014771: Services with missing/unavailable
> >>    dependencies" =>
> >>>
> >>
>  ["jboss.persistenceunit.\"wfds-1.0-SNAPSHOT.war#wfdsPU\".__FIRST_PHASE__
> >>>    is missing
> >>>
> >>
>  [jboss.naming.context.java.module.\"wfds-1.0-SNAPSHOT\".\"wfds-1.0-SNAPSHOT\".env.MyDS]"]}
> >>>
> >>>
> >>>    [5]
> >>>
> >>
> https://github.com/wildfly/wildfly/blob/master/jpa/core/src/main/java/org/jboss/as/jpa/processor/PersistenceUnitServiceHandler.java#L358
> >>>    _______________________________________________
> >>>    wildfly-dev mailing list
> >>> wildfly-dev at lists.jboss.org <mailto:wildfly-dev at lists.jboss.org>
> >>    <mailto:wildfly-dev at lists.jboss.org
> >>    <mailto:wildfly-dev at lists.jboss.org>>
> >>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
> >>>
> >>>
> >>
> >>    _______________________________________________
> >>    wildfly-dev mailing list
> >>    wildfly-dev at lists.jboss.org <mailto:wildfly-dev at lists.jboss.org>
> >>    https://lists.jboss.org/mailman/listinfo/wildfly-dev
> >>
> >>
> >>
> >>
> >> --
> >> Hälsningar,
> >> Martin Andersson
> >> Purple Scout AB
> >> +46 732 05 14 01
> >
> > _______________________________________________
> > wildfly-dev mailing list
> > wildfly-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/wildfly-dev
>
>


-- 
Hälsningar,
Martin Andersson
Purple Scout AB
+46 732 05 14 01
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/wildfly-dev/attachments/20140131/15459c3b/attachment-0001.html 


More information about the wildfly-dev mailing list