Hi JB,
if I understood correct, I've looked up, how to install features at boot
time. Is this what you were saying?
So, what I did was: updated etc/org.apache.karaf.features.repos.cfg ( not
really related, but added by feature file here ), and updated
etc/org.apache.karaf.features.cfg to install cxf ( added at the end of
featuresBoot property ):
cxf/3.2.6, \
cxf-jaxrs-cdi/3.2.6
after Karaf startup I can see the CXF with all the dependencies was
installed. But.
When I installed the JPA/Hibernate feature ( part of my project ), I get
following error:
.
.
.
07:40:50.588 INFO [features-3-thread-1]
org.apache.servicemix.bundles.dom4j/1.6.1.5
07:40:50.590 INFO [features-3-thread-1]
org.apache.httpcomponents.httpclient/4.5.2
07:40:50.593 ERROR [Blueprint Extender: 3] Unable to start blueprint
container for bundle framework.service/5.0.1.SNAPSHOT
org.osgi.service.blueprint.container.ComponentDefinitionException:
Unsupported node namespace:
.
.
.
07:40:50.607 INFO [features-3-thread-1] org.hibernate.core/5.2.9.Final
07:40:50.641 INFO [features-3-thread-1] org.hibernate.osgi/5.2.9.Final
07:40:50.718 INFO [features-3-thread-1] Found provider for mm
org.hibernate.jpa.HibernatePersistenceProvider
07:40:50.753 INFO [features-3-thread-1] HHH000204: Processing
PersistenceUnitInfo [
name: mm
...]
07:40:50.839 INFO [features-3-thread-1] HHH000412: Hibernate Core
{5.2.9.Final}
07:40:50.842 INFO [features-3-thread-1] HHH000206: hibernate.properties not
found
07:40:50.902 INFO [features-3-thread-1] HCANN000001: Hibernate Commons
Annotations {5.0.1.Final}
07:40:52.418 ERROR [features-3-thread-1] Bundle framework.persistence [216]
EventDispatcher: Error during dispatch. (java.lang.NoSuchMethodError:
org.codehaus.stax2.ri.EmptyIterator.getInstance()Lorg/codehaus/stax2/ri/EmptyIterator;)
java.lang.NoSuchMethodError:
org.codehaus.stax2.ri.EmptyIterator.getInstance()Lorg/codehaus/stax2/ri/EmptyIterator;
.
.
.
So now not even JPA/Hibernate is not working any more. I must be doing
something wrong.
I guess "java.lang.NoSuchMethodError" is saying I did not compile class
with the same dependency JAR as I use it in the runtime?
Well, this does not look good. Darn.
Kind Regards,
Miroslav
V V sob., 13. okt. 2018 ob 07:04 je oseba Jean-Baptiste Onofré <
[email protected]> napisala:
> Hi,
>
> to avoid such problem, you can use and prepare the boot features. I will
> avoid some refresh and stick a init state.
>
> IMHO, it should help.
>
> Regards
> JB
>
> On 12/10/2018 17:05, Miroslav Beranič wrote:
> > Hi all,
> >
> > not quite done yet.
> >
> > So new day, new problems. After another round of try/error -- it worked,
> > and did not work next day.
> >
> > Even "one xml deploy" bundle was not working. Now, I am more focused
> > into the CXF project.
> >
> > I am quite sure, this "works today, does not work tomorrow" is due to
> > bundle deploy order. I've found out, that there are multiple Xerces
> > instances flying around. I had one, for some legacy SOAP client
> > generated from WSDL using Axis 1.4.
> >
> > It had Xerces, after a lot of redeploys I've figured out that when
> > Xerces bundle is deployed Karaf is not able to resolve/deploy bundle
> > with Spring XML configuration.
> >
> > I am getting
> > "org.osgi.service.blueprint.container.ComponentDefinitionException:
> > Unsupported node namespace:" ( notice empty namespace ). When I do
> > uninstall of the Xerces bundle -- and restart Spring XML configuration
> > bundle, it works. Repeat Xerces bundle install, Spring XML configuration
> > bundle fails to load.
> >
> > When cxf feature is installed bundle:
> > 313 │ Active │ 30 │ 2.11.0.1 │
> > org.apache.servicemix.bundles.xerces
> > is installed. I've exported bundles for the feature cxf and JAR file
> > name is: org.apache.servicemix.bundles.xerces-2.11.0_1.jar
> >
> > This is also in line with my first voodoo , when I was asking if it is
> > possible that some dependency makes a mess. I would say, this is the
> > "main problem".
> >
> > Other issue was with ActiveMQ and Camel, and "class cast exceptions" for
> > Spring's classes, also some nice pitfalls there ( all solved with
> > correct bundle deploy order ).
> >
> > What I've notices is - order of the feature/bundle loading is the key
> > and it is not easy. One "innocent" dependency and whole tree of
> > un-wanted bundles is put into the Karaf.
> >
> >
> > I would really really like to know, am I doing so much something extra
> > and no one else has this issues? As all I am doing is loading bundle
> > with spring xml configuration and SOAP server ( with CXF ) and all stops
> > working. It is hard to believe this is "only my problem".
> >
> > The more likely thing is : I am doing all wrong. Also if this is true, I
> > would really like to know what? How can it be, that if I load Apache CXF
> > feature and in another bundle Spring XML Configuration, one "overrides"
> > XML/XSD namespace resolution. To me this is interesting as I would
> > really like to know, how is this connected and how this is even possible.
> >
> >
> > So today's finding is: If you have errors like: No URL is defined for
> > schema http://www.springframework.org/schema/osgi,
> > org.osgi.service.blueprint.container.ComponentDefinitionException:
> > Unsupported node namespace:, go and check if you have Xerces bundle
> > installed. If so, try to uninstall it and restart failed bundle. My
> > guess is - it will start to work. But what now. How to replace Xerces -
> > it is like part of every web/xml related project. I have no answer for
> this.
> >
> > I've checked CXF source code, and noticed that Spring bundles and
> > versions are not in sync ( version part of the Karaf - referencing CXF
> > Karaf repository ) ... so I would suspect this will be another land mine
> > I will blindly step on.
> >
> > But
> >
> > when things are working, when Karaf is able to load ( over Aries )
> > bundle with Spring XML configuration -- it works really well and it is
> > really easy to make it work. That is one of the biggest frustration, as
> > it is such a nice platform, but one wrong JAR and all stops working ...
> >
> >
> > Kind Regards,
> > Miroslav
> >
> >
> >
> > V V čet., 11. okt. 2018 ob 12:52 je oseba Miroslav Beranič
> > <[email protected] <mailto:[email protected]>>
> napisala:
> >
> > Hi all,
> >
> > I found a solution.
> >
> > To repeat/clarify first:
> > - I am using Karaf 4.2.2
> > - I am using "as much as I can" "built in" features
> > - I am using Spring 4.3 ( features from Karaf's spring-legacy
> > repository/features )
> > - I am using Karaf's feature "aries-blueprint-spring" to get "Spring
> > Framework XSD namespace" support (
> > http://www.springframework.org/schema/osgi ), part of the Aries
> > project, file located at
> >
>
> /aries/blueprint/blueprint-spring-extender/src/main/resources/org.apache.aries.blueprint.spring.extender/spring-osgi-1.2.xsd,
> > because of the implementation
> >
> org.apache.aries.blueprint.spring.extender.SpringOsgiNamespaceHandler,
> > one can reference XSD file as spring-osgi.xsd ( it is "renamed" to
> > spring-osgi-1.2.xsd ).
> > - I am using bundle from ServiceMix Bundles
> >
>
> org.apache.servicemix.bundles:org.apache.servicemix.bundles.spring-beans/4.3.18
> > to get Spring Framework 4.3 XSD files, one can also use
> > http://www.springframework.org/schema/beans/spring-beans.xsd and
> > will get
> > http://www.springframework.org/schema/beans/spring-beans-4.3.xsd (
> > if bundle version 4.3 is the only one installed , it is in my case
> ).
> > - I am not using spring-dm feature from Karaf's repository
> >
> > Here, the fun part starts. As I said, it was all working ( one day )
> > and than next day ( when installed on new virtual dev box ) it
> > stopped working throwing errors like:
> >
> > 11:09:19.614 ERROR [pool-20-thread-1] Unable to start blueprint
> > container for bundle framework.service/5.0.1.SNAPSHOT
> > java.lang.RuntimeException:
> >
> org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
> > Configuration problem: Failed to import bean definitions from URL
> > location [bundle://90.0:0/META-INF/spring/mm-context.xml]
> > Offending resource: URL
> >
>
> [file:/path/to/karaf-4.2.2/data/tmp/blueprint-spring-extender1091125880178019981.xml];
> > nested exception is
> >
> org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
> > Configuration problem: Failed to import bean definitions from URL
> > location [classpath:/META-INF/mm/spring/mm-dl-management-beans.xml]
> > Offending resource: URL
> > [bundle://90.0:0/META-INF/spring/mm-context.xml]; nested exception
> > is
> >
> org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
> > Configuration problem: Unable to locate Spring NamespaceHandler for
> > XML schema namespace [http://www.springframework.org/schema/osgi]
> > Offending resource: class path resource
> > [META-INF/mm/spring/mm-dl-management-beans.xml]
> >
> > at
> >
>
> org.apache.aries.blueprint.spring.BlueprintNamespaceHandler.parse(BlueprintNamespaceHandler.java:132)
> > ~[?:?]
> > at
> >
> org.apache.aries.blueprint.parser.Parser.parseCustomElement(Parser.java:1369)
> > ~[47:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
> org.apache.aries.blueprint.parser.Parser.loadComponents(Parser.java:427)
> > ~[47:org.apache.aries.blueprint.core:1.9.0]
> > at
> > org.apache.aries.blueprint.parser.Parser.populate(Parser.java:331)
> > ~[47:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:351)
> > [47:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:278)
> > [47:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:299)
> > [47:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.container.BlueprintExtender.access$1100(BlueprintExtender.java:68)
> > [47:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.container.BlueprintExtender$BlueprintContainerServiceImpl.createContainer(BlueprintExtender.java:617)
> > [47:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.spring.extender.SpringOsgiExtension.start(SpringOsgiExtension.java:112)
> > [49:org.apache.aries.blueprint.spring.extender:0.4.0]
> > at
> >
>
> org.apache.felix.utils.extender.AbstractExtender$1.run(AbstractExtender.java:265)
> > [49:org.apache.aries.blueprint.spring.extender:0.
> >
> >
> > And even some times I got even more strange error:
> >
> > 12:13:12.969 ERROR [Blueprint Extender: 1] Unable to start blueprint
> > container for bundle framework.service/5.0.1.SNAPSHOT
> > org.osgi.service.blueprint.container.ComponentDefinitionException:
> > Unsupported node namespace:
> > at
> >
>
> org.apache.aries.blueprint.parser.Parser.getNamespaceHandler(Parser.java:1386)
> > ~[111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.parser.Parser.getNamespaceHandler(Parser.java:1374)
> > ~[111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
> org.apache.aries.blueprint.parser.Parser.decorateCustomNode(Parser.java:1361)
> > ~[111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.parser.Parser.handleCustomAttributes(Parser.java:1340)
> > ~[111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
> org.apache.aries.blueprint.parser.Parser.loadComponents(Parser.java:403)
> > ~[111:org.apache.aries.blueprint.core:1.9.0]
> > at
> > org.apache.aries.blueprint.parser.Parser.populate(Parser.java:331)
> > ~[111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:351)
> > [111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:278)
> > [111:org.apache.aries.blueprint.core:1.9.0]
> >
> > ( notice the "empty" namespace ... )
> >
> >
> > After all the strange things done, to make it work again, I've
> > started vanilla project ... and it worked. As expected. Simple as
> > putting one xml inside bundle class path
> /META-INF/spring/context.xml.
> >
> > So, the fun part was -- I "wanted to clean up" config files and I
> > moved XML files to /META-INF/mm/spring/*.xml and include/import them
> > from context.xml.
> >
> > And this was the issue. It turned out, Blueprint/Spring support will
> > fly out of the window, when
> > http://www.springframework.org/schema/osgi is used in a XML file
> > being referenced / included / imported.
> >
> > So to fix my issue, I have all the Spring XML files ( that have
> > http://www.springframework.org/schema/osgi namespace ) stored inside
> > folder /META-INF/spring/ and all other Spring-only namespaced files
> > in other locations.
> >
> > Did not have the time to look over the source code why is this so,
> > but to me, this is strange implementation. This is also not "pointed
> > out" in the documentation or so, so ... fun fun fun. Took me days
> > too long to figure this out.
> >
> >
> > Kind Regards,
> > Miroslav
> >
> >
> >
> > V V sre., 10. okt. 2018 ob 14:39 je oseba Jean-Baptiste Onofré
> > <[email protected] <mailto:[email protected]>> napisala:
> >
> > Afair spring-dm doesn't support spring 4.3 either. It's up to
> > spring 4.2. so you have to install providing the target version.
> >
> > Further more you have to install spring-dm or blueprint spring
> > extension.
> >
> > Regards
> > JB
> > Le 10 oct. 2018, à 15:34, "Miroslav Beranič"
> > <[email protected]
> > <mailto:[email protected]>> a écrit:
> >
> > Hi both,
> >
> > I thought I wrote too much and lost focus.
> >
> > So, I already use spring-legacy repository, and I get
> > spring-* 4.3.x. I already had all this working. I do not use
> > spring-dm feature ( I see it is available, version 1.2.1,
> > spring-dm and spring-dm-web, did not even notice it before ).
> >
> > I am using aries-blueprint-spring from Karaf's repository.
> > <feature name="aries-blueprint-spring">
> > <feature>aries-blueprint</feature>
> > <feature>spring</feature>
> >
> >
>
> <bundle>mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.spring/${aries.blueprint.spring.version}</bundle>
> >
> >
> >
>
> <bundle>mvn:org.apache.aries.blueprint/org.apache.aries.blueprint.spring.extender/${aries.blueprint.spring.extender.version}</bundle>
> >
> > </feature>
> >
> > First I install Spring 4.3 from spring-legacy, next I
> > install aries-blueprint-spring ( as if not in this order,
> > Spring 5.0.x is installed ).
> > <features name="spring-legacy-${project.version}"
> >
> >
> > To do "dry run". In practice this is "correct way" :
> > spring-4.3.x from repository spring-legacy and
> > aries-blueprint-spring from repository spring and I should
> > be all green, or?
> >
> > Any idea what else could go wrong ... some other
> > JMS/JPA/PAX/... dependency/feature to mix it up?
> >
> > My biggest pain is -- as I had working setup, and now I can
> > not make it work anymore. I've reverted my work and Karaf,
> > no luck - either way.
> >
> >
> > Thanks for the directions.
> >
> >
> > Kind Regards,
> > Miroslav
> >
> >
> >
> >
> > V V sre., 10. okt. 2018 ob 14:13 je oseba Guillaume Nodet <
> > [email protected] <mailto:[email protected]>> napisala:
> >
> > You can also install the aries-blueprint-spring feature
> > which should provide support for the spring namespaces.
> >
> > Le mer. 10 oct. 2018 à 14:07, Jean-Baptiste Onofré <
> > [email protected] <mailto:[email protected]>> a écrit :
> >
> > Hi
> >
> > It's because your are using spring-dm which is
> > deprecated and works only with spring up to 4.
> >
> > So you have to add the spring-legacy features repo
> > and then you will have the spring-dm feature.
> >
> > Regards
> > JB
> > Le 10 oct. 2018, à 15:04, "Miroslav Beranič" <
> > [email protected]
> > <mailto:[email protected]>> a écrit:
> >
> > Hi all,
> >
> > I've read some messages in this mailing list (
> > last I found was in August 2018 ), but I think,
> > I have something different scenario.
> >
> > So, up until today ( when I was doing clean
> > environment setup ) I was able to use define
> > Spring Beans using XML ( as I am porting
> > application, this is like top feature ), but now
> > - out of the blue, I've started to get errors on
> > deployment:
> >
> > 12:13:12.912 INFO [pool-33-thread-1] Generated
> > blueprint for bundle
> > framework.service/5.0.1.SNAPSHOT at
> >
>
> /path/to/assemblies/apache-karaf/target/assembly/data/tmp/blueprint-spring-extender1831035315356717600.xml
> >
> > 12:13:12.917 INFO [pool-33-thread-1] Bundle
> > framework.service/5.0.1.SNAPSHOT is waiting for
> > namespace handlers [
> > http://www.springframework.org/schema/osgi]
> >
> > 12:13:12.895 INFO [features-3-thread-1]
> > org.apache.aries.blueprint.spring.extender/0.4.0
> > 12:13:12.935 WARN [Blueprint Extender: 1] No URL
> > is defined for schema
> > http://www.springframework.org/schema/osgi. This
> > schema will not be validated
> > 12:13:12.969 ERROR [Blueprint Extender: 1]
> > Unable to start blueprint container for bundle
> > framework.service/5.0.1.SNAPSHOT
> >
> org.osgi.service.blueprint.container.ComponentDefinitionException:
> > Unsupported node namespace:
> > at
> >
>
> org.apache.aries.blueprint.parser.Parser.getNamespaceHandler(Parser.java:1386)
> > ~[111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.parser.Parser.getNamespaceHandler(Parser.java:1374)
> > ~[111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
> org.apache.aries.blueprint.parser.Parser.decorateCustomNode(Parser.java:1361)
> > ~[111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.parser.Parser.handleCustomAttributes(Parser.java:1340)
> > ~[111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
> org.apache.aries.blueprint.parser.Parser.loadComponents(Parser.java:403)
> > ~[111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
> org.apache.aries.blueprint.parser.Parser.populate(Parser.java:331)
> > ~[111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:351)
> > [111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:278)
> > [111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > [?:?]
> > at
> >
> java.util.concurrent.FutureTask.run(FutureTask.java:266)
> > [?:?]
> > at
> >
>
> org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)
> > [111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
>
> org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:45)
> > [111:org.apache.aries.blueprint.core:1.9.0]
> > at
> >
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > [?:?]
> > at
> >
> java.util.concurrent.FutureTask.run(FutureTask.java:266)
> > [?:?]
> > at
> >
>
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> > [?:?]
> > at
> >
>
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> > [?:?]
> > at
> >
>
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> > [?:?]
> > at
> >
>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> > [?:?]
> > at java.lang.Thread.run(Thread.java:748)
> [?:?]
> >
> > So, has something changed about Spring ( Spring
> > DM ) from Karaf's point? I went over GIT commits
> > ( for Karaf 4.2.2, last few weeks ), but did not
> > find anything regarding Spring. I am using
> > Spring 4.3.x ( from Karaf features ).
> >
> > I have spring-beans.xml inside /META-INF/spring/
> > folder, and I used
> > http://www.springframework.org/schema/osgi
> > namespace to "import" osgi:reference -- and this
> > all worked like a charm.
> >
> > Now I get this error and no way to find any
> > solution. I "kind of" gave up ( as I read JB's
> > comments - why not use ( only ) Blueprint ), so
> > I gave it a try. But than I was starting getting
> > even more strange errors,
> > for example Blueprint failed to set property
> > defined in parent class, or create instance that
> > takes Map as input into class constructor - as I
> > failed to find matching property descriptor or
> > class constructor.
> >
> > Than I went back to original question ... what
> > has changed, that
> > http://www.springframework.org/schema/osgi has
> > stopped working ( as far as I know, spring-dm is
> > even older ( based on the mailing messages I've
> > read ) ),
> > so I've uses aries-blueprint-spring.
> >
> > What am I missing?
> >
> > Kind Regards,
> > Miroslav
> >
> >
> >
> > --
> > ------------------------
> > Guillaume Nodet
> >
> >
> >
> > --
> > Miroslav Beranič
> > MIBESIS
> > +386(0)40/814-843
> > [email protected]
> > <mailto:[email protected]>
> > http://www.mibesis.si
> >
> >
> >
> > --
> > Miroslav Beranič
> > MIBESIS
> > +386(0)40/814-843
> > [email protected] <mailto:[email protected]>
> > http://www.mibesis.si
> >
> >
> >
> > --
> > Miroslav Beranič
> > MIBESIS
> > +386(0)40/814-843
> > [email protected] <mailto:[email protected]>
> > http://www.mibesis.si
>
> --
> Jean-Baptiste Onofré
> [email protected]
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>
--
Miroslav Beranič
MIBESIS
+386(0)40/814-843
[email protected]
http://www.mibesis.si