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