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

Scott Marlow smarlow at redhat.com
Fri Jan 31 10:27:02 EST 2014


I'm not sure that using java:app would help the need for adding 
deployment hints.  Unless, we detect that java:app (as a hint that 
datasources will not be available early) in the datasource name and 
disable entity enhancing (slowing performance).

On 01/31/2014 09:33 AM, Martin Andersson wrote:
> 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 <http://www.purplescout.se>
>
> On Fri, Jan 31, 2014 at 3:03 PM, Eduardo Martins <emartins at redhat.com
> <mailto: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
>     <mailto: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> <http://www.purplescout.se>
>      >>
>      >>
>      >> On Fri, Jan 31, 2014 at 1:55 PM, Scott Marlow
>     <smarlow at redhat.com <mailto:smarlow at redhat.com>
>      >> <mailto: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>>
>      >>> <mailto: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>>
>      >>    <mailto: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>
>     <mailto: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 <tel:%2B46%20732%2005%2014%2001>
>      >
>      > _______________________________________________
>      > 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



More information about the wildfly-dev mailing list