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

Reply via email to