If no EntityManagerFactory service is created then this is not a problem with the blueprint.
Do you have the Meta-Persistence manifest entry?
See
https://github.com/cschneider/Karaf-Tutorial/blob/master/tasklist-ds/model/bnd.bnd

As soon as you have the entry you should see in the log that Aries JPA parses the persistence xml and tries to create the EMF. It should report in the log if something is missing.

For the blueprint you have to add the enable Elements for jpa and tx as they create the interceptors.

Christian

On 06.07.2016 10:51, Bengt Rodehav wrote:
Having problems getting this to work. I get the following in the log file:

2016-07-06 10:46:54,710 | INFO | nsole user karaf | bundle | ? ? | Bundle Considered for SPI providers: se.digia.connect.services.filetransfer.history-db 2016-07-06 10:46:54,710 | INFO | nsole user karaf | bundle | ? ? | No 'SPI-Provider' Manifest header. Skipping bundle: se.digia.connect.services.filetransfer.history-db

No EntityManagerFactory service is being created.

Looks like I've missed something. The only changes I've made is the blueprint xml and the injection of the EntityManager using the annotation. Do I need to change anything else, like the persistence.xml?

/Bengt

2016-07-06 10:24 GMT+02:00 Bengt Rodehav <be...@rodehav.com <mailto:be...@rodehav.com>>:

    OK - thanks Christian. Will try the annotations.

    /Bengt

    2016-07-06 10:18 GMT+02:00 Christian Schneider
    <ch...@die-schneider.net <mailto:ch...@die-schneider.net>>:

        Hi Bengt,

        Aries JPA 2 only supports the annotations. You can install
        Aries JPA 1.x into karaf 4.0.5 if you want the old xml style.

        Christian


        On 06.07.2016 09:58, Bengt Rodehav wrote:
        I'm migrating from Karaf 2.4.1 to 4.0.5. I also go from JPA
        1.0 to 2.0.

        Previously my Blueprint XML looked like this:


        /<?xml version="1.0" encoding="UTF-8"?>/
        /<blueprint
        xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/
/ xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0";
        xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0"/
        /  xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.0.0";>/
        /
        /
        /  <bean id="messageService"
        class="se.digia.connect.iso20022.history.impl.MessageHistoryService">/
        /    <tx:transaction method="*" value="RequiresNew" />/
        /    <jpa:context property="entityManager"
        unitname="iso20022PU" />/
        /  </bean>/
        /
        /
        /  <service ref="messageService"
        interface="se.digia.connect.iso20022.history.api.IMessageHistoryService"
        /> /
        /
        /
        /</blueprint>/


        I have now changed to:

        /<?xml version="1.0" encoding="UTF-8"?>/
        /<blueprint
        xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/
/ xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0";
        xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.2.0"/
        /  xmlns:jpa="http://aries.apache.org/xmlns/jpa/v2.0.0";> <!--
        tjoho -->/
        /
        /
        /  <bean id="messageService"
        class="se.digia.connect.iso20022.history.impl.MessageHistoryService">/
        /    <tx:transaction method="*" value="RequiresNew" />/
        /    <jpa:context property="entityManager"
        unitname="iso20022PU" />/
        /  </bean>/
        /
        /
        /  <service ref="messageService"
        interface="se.digia.connect.iso20022.history.api.IMessageHistoryService"
        />/
        //
        /</blueprint>/

        On Karaf startup I get the following error:

        /2016-07-06 09:46:42,154 | ERROR | rint Extender: 2 |
        BlueprintContainerImpl           |
        container.BlueprintContainerImpl  437 | Unable to start
        blueprint container for bundle
        se.digia.connect.services.filetransfer.history-db/2.8.0.SNAPSHOT/
        /org.osgi.service.blueprint.container.ComponentDefinitionException:
        Unable to validate xml/
        /at
        
org.apache.aries.blueprint.parser.Parser.validate(Parser.java:349)[25:org.apache.aries.blueprint.core:1.6.1]/
        /at
        
org.apache.aries.blueprint.parser.Parser.validate(Parser.java:336)[25:org.apache.aries.blueprint.core:1.6.1]/
        /at
        
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:343)[25:org.apache.aries.blueprint.core:1.6.1]/
        /at
        
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:276)[25:org.apache.aries.blueprint.core:1.6.1]/
        /at
        
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_74]/
        /at
        java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_74]/
        /at
        
org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)[25:org.apache.aries.blueprint.core:1.6.1]/
        /at
        
org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)[25:org.apache.aries.blueprint.core:1.6.1]/
        /at
        
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_74]/
        /at
        java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_74]/
        /at
        
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_74]/
        /at
        
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_74]/
        /at
        
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_74]/
        /at
        
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_74]/
        /at java.lang.Thread.run(Thread.java:745)[:1.8.0_74]/
        /Caused by: org.xml.sax.SAXParseException:
        cvc-complex-type.2.4.c: The matching wildcard is strict, but
        no declaration can be found for element 'jpa:context'./
        /at
        
org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown
        Source)[:]/
        /at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown
        Source)[:]/
        /at
        org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
        Source)[:]/
        /at
        org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
        Source)[:]/
        /at
        org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown
        Source)[:]/
        /at
        
org.apache.xerces.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown
        Source)[:]/
        /at
        org.apache.xerces.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown
        Source)[:]/
        /at
        org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown
        Source)[:]/
        /at
        org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown
        Source)[:]/
        /at
        org.apache.xerces.jaxp.validation.DOMValidatorHelper.beginNode(Unknown
        Source)[:]/
        /at
        org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown
        Source)[:]/
        /at
        org.apache.xerces.jaxp.validation.DOMValidatorHelper.validate(Unknown
        Source)[:]/
        /at
        org.apache.xerces.jaxp.validation.ValidatorImpl.validate(Unknown
        Source)[:]/
        /at javax.xml.validation.Validator.validate(Unknown
        Source)[:2.7.0]/
        /at
        
org.apache.aries.blueprint.parser.Parser.validate(Parser.java:346)[25:org.apache.aries.blueprint.core:1.6.1]/
        /... 14 more/

        I read at http://aries.apache.org/modules/jpaproject.html
        that annotations can now be used for the injection of the
        perstence unit context. But, is it the only way to do it? Is
        there no way to do it using the jpa:context element anymore?

        /Bengt



-- Christian Schneider
        http://www.liquid-reality.de

        Open Source Architect
        http://www.talend.com





--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

Reply via email to