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 <[email protected]>:
> OK - thanks Christian. Will try the annotations.
>
> /Bengt
>
> 2016-07-06 10:18 GMT+02:00 Christian Schneider <[email protected]>:
>
>> 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
>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
>> <http://www.w3.org/2001/XMLSchema-instance>"*
>> * xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0
>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>"
>> xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.0.0
>> <http://aries.apache.org/xmlns/transactions/v1.0.0>"*
>> * xmlns:jpa="http://aries.apache.org/xmlns/jpa/v1.0.0
>> <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
>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
>> <http://www.w3.org/2001/XMLSchema-instance>"*
>> * xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0
>> <http://www.osgi.org/xmlns/blueprint/v1.0.0>"
>> xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.2.0
>> <http://aries.apache.org/xmlns/transactions/v1.2.0>"*
>> * xmlns:jpa="http://aries.apache.org/xmlns/jpa/v2.0.0
>> <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 Schneiderhttp://www.liquid-reality.de
>>
>> Open Source Architecthttp://www.talend.com
>>
>>
>