Hi,

Sorry, I should have been clearer with my question. What I was trying to find 
out was the usage pattern for the EntityManager. Why does it need to be 
extended scope? The number of use cases for extended scope is significantly 
smaller than the number of use cases for a transaction scope entity manager, 
which is why transaction scope is the default. As I mentioned before extended 
scope EntityManagers are not supported by the Aries JPA container, except when 
injected into stateful EJBs by the Aries EJB component. I'm hoping to help you 
avoid the next problem I see on the horizon.

Regards,


Tim Ward
-------------------
Apache Aries PMC member & Enterprise OSGi advocate
Enterprise OSGi in Action (http://www.manning.com/cummins)
-------------------


Date: Tue, 31 Jan 2012 23:31:05 +0100
Subject: Re: JPA extended persistence exception
From: [email protected]
To: [email protected]

Hi,
the goal is simple: configure some JPA properties via ConfigAdmin (so, no need 
to re-deploy a bundle fo simple tweaks).
In the example, the configurable property is javax.persistence.jdbc.url but it 
could be applied to any property (e.g. it would be nice to set the logging 
level of the chosen JPA implementation). 

Luca
On Tue, Jan 31, 2012 at 18:00, Timothy Ward <[email protected]> wrote:





Hi,

That's not an error I have seen before, and it has me a little stumped. I can 
look into it, but I can also warn you that EXTENDED scope EntityManagers are 
only supported by the Aries EJB component (Extended scope is defined in terms 
of Stateful Session Beans). What is it that you are trying to accomplish?


Tim Ward
-------------------
Apache Aries PMC member & Enterprise OSGi advocate
Enterprise OSGi in Action (http://www.manning.com/cummins)
-------------------



Date: Tue, 31 Jan 2012 11:51:39 +0100
Subject: JPA extended persistence exception
From: [email protected]
To: [email protected]


Hi,
I've deployed the following blueprint xml on Karaf (2.2.5) :

<blueprint

 xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
 xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.1.0";


 xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0";>

 <cm:property-placeholder persistent-id="DM-CFG">


   <cm:default-properties>
     <cm:property name="jdbc.url" value="jdbc:derby:./data/jpa;create=true"/>
   </cm:default-properties>
 </cm:property-placeholder>



 <bean id="DM" class="lb.sandbox.osgi.jpa.DataManager" init-method="init">
   <jpa:context property="em" unitname="LBU" type="EXTENDED">
     <map>


       <entry key="javax.persistence.jdbc.url" value="${jdbc.url}"/>
     </map>
   </jpa:context>
  </bean>

  <service ref="DM" interface="lb.sandbox.osgi.jpa.IDataManager"/>


    

</blueprint>

But I got the following exception even the example has been taken from the 
Aries webpage :


2012-01-20 15:55:22,471 | ERROR | rint Extender: 1 | 
BlueprintContainerImpl           | container.BlueprintContainerImpl  358
 | 9 - org.apache.aries.blueprint - 0.3.1 | Unable to start blueprint 
container for bundle lb.sandbox.osgi.jpa

org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to 
validate xml

        at 
org.apache.aries.blueprint.container.Parser.validate(Parser.java:288)[9:org.apache.aries.blueprint:0.3.1]

        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:275)[9:org.apache.aries.blueprint:0.3.1]

        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227)[9:org.apache.aries.blueprint:0.3.1]

        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_29]

        at 
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_29]

        at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_29]

        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_29]

        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)[:1.6.0_29]

        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_29]

        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_29]

        at java.lang.Thread.run(Thread.java:662)[:1.6.0_29]

Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: 
Invalid content was found starting with element 'map'. One of 
'{"http://aries.apache.org/xmlns/jpa/v1.1.0":map}' is expected.

        at 
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)[:1.6.0_29]

        at 
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)[:1.6.0_29]

        at 
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)[:1.6.0_29]

        at 
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)[:1.6.0_29]

        at 
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:417)[:1.6.0_29]

        at 
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3182)[:1.6.0_29]

        at 
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1806)[:1.6.0_29]

        at 
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:705)[:1.6.0_29]

        at 
com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.beginNode(DOMValidatorHelper.java:273)[:1.6.0_29]

        at 
com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.validate(DOMValidatorHelper.java:240)[:1.6.0_29]

        at 
com.sun.org.apache.xerces.internal.jaxp.validation.DOMValidatorHelper.validate(DOMValidatorHelper.java:186)[:1.6.0_29]

        at 
com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(ValidatorImpl.java:104)[:1.6.0_29]

        at 
javax.xml.validation.Validator.validate(Validator.java:127)[:1.6.0_29]

        at 
org.apache.aries.blueprint.container.Parser.validate(Parser.java:285)[9:org.apache.aries.blueprint:0.3.1]

        ... 10 more

What's wrong ?

                                          

                                          

Reply via email to