Hi Christian, First of all, for the SMX distribution, you shouldn't copy jre.properties.cxf to jre.properties, you should just use default jre.properties as is, it's fine-tuned for the SMX distribution, with the default jre.properties, all should be OK. And yeah, we should remove jre.properties.cxf from SMX distribution as it just cause confusion, create SMX4-1262[1] to track it.
Secondly, the dependency="true" for the spec api bundle is intended here, it works with fetuture attribute resolver='(obr)' which can prevent to install unnecessary bundle if the package already available in the container. For the SMX 4.5(SNAPSHOT), we endorse jaxws/saaj/jaxb(etc) spec api jars so those package already exported from system bundle 0, have dependency="true" can prevent install those unnecessary spec api bundles. [1]https://issues.apache.org/jira/browse/SMX4-1262 Freeman ------------- Freeman(Yue) Fang Red Hat, Inc. FuseSource is now part of Red Hat Web: http://fusesource.com | http://www.redhat.com/ Twitter: freemanfang Blog: http://freemanfang.blogspot.com http://blog.sina.com.cn/u/1473905042 weibo: http://weibo.com/u/1473905042 On 2012-10-14, at 下午11:19, Christian Müller wrote: > I have the same issue, if I add the CXF "wss4j" feature to the features > boot path and start SMX (./servicemix clean). The feature is defined as: > > <feature name="wss4j" version="1.6.7" resolver='(obr)'> > <feature version="2.6.2">cxf-specs</feature> > <bundle start-level='25' > dependency="true">mvn:joda-time/joda-time/1.6.2</bundle> > <bundle start-level='25' > dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.opensaml/2.5.1_2</bundle> > <bundle start-level='25' > dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saaj-impl/1.3.18_1</bundle> > <bundle > start-level='25'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/1.2_5</bundle> > <bundle start-level='30' > dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/2.9.1_5</bundle> > <bundle start-level='30' > dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.bcel/5.2_4</bundle> > <bundle start-level='30' > dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xalan/2.7.1_5</bundle> > <bundle start-level='30' > dependency="true">mvn:org.apache.santuario/xmlsec/1.5.2</bundle> > <bundle > start-level='30'>mvn:org.apache.ws.security/wss4j/1.6.7</bundle> > </feature> > > karaf@root> features:list | grep -i wss4j > [installed ] [1.6.7 ] wss4j > cxf-2.6.2 > > karaf@root> list -t 0 | grep -i xerces > karaf@root> list -t 0 | grep -i xalan > karaf@root> list -t 0 | grep -i saaj > [ 54] [Active ] [ ] [ ] [ 10] Apache ServiceMix :: > Specs :: SAAJ API 1.3 (1.9.0) > > I miss saaj-impl... > > Now, when I deploy my service [1] which use wss4j, it fails with the stack > trace: > 17:16:24,976 | DEBUG | vice/SecureProxy | PhaseInterceptorChain > | 115 - org.apache.cxf.cxf-api - 2.6.2 | Invoking handleMessage on > interceptor org.apache.cxf.ws.policy.PolicyInInterceptor@79b9950e > 17:16:24,979 | DEBUG | vice/SecureProxy | PhaseInterceptorChain > | 115 - org.apache.cxf.cxf-api - 2.6.2 | Invoking handleMessage on > interceptor org.apache.cxf.interceptor.AttachmentInInterceptor@70e98812 > 17:16:24,982 | DEBUG | vice/SecureProxy | PhaseInterceptorChain > | 115 - org.apache.cxf.cxf-api - 2.6.2 | Invoking handleMessage on > interceptor org.apache.cxf.transport.https.CertConstraintsInterceptor@cc6798 > 17:16:24,982 | DEBUG | vice/SecureProxy | PhaseInterceptorChain > | 115 - org.apache.cxf.cxf-api - 2.6.2 | Invoking handleMessage on > interceptor org.apache.cxf.interceptor.StaxInInterceptor@73e48fa7 > 17:16:24,984 | DEBUG | vice/SecureProxy | PhaseInterceptorChain > | 115 - org.apache.cxf.cxf-api - 2.6.2 | Invoking handleMessage on > interceptor > org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInInterceptor@42e57c4c > 17:16:29,991 | DEBUG | vice/SecureProxy | PhaseInterceptorChain > | 115 - org.apache.cxf.cxf-api - 2.6.2 | Invoking handleFault on > interceptor > org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInInterceptor@42e57c4c > 17:16:29,992 | DEBUG | vice/SecureProxy | PhaseInterceptorChain > | 115 - org.apache.cxf.cxf-api - 2.6.2 | Invoking handleFault on > interceptor org.apache.cxf.interceptor.StaxInInterceptor@73e48fa7 > 17:16:29,992 | DEBUG | vice/SecureProxy | PhaseInterceptorChain > | 115 - org.apache.cxf.cxf-api - 2.6.2 | Invoking handleFault on > interceptor org.apache.cxf.transport.https.CertConstraintsInterceptor@cc6798 > 17:16:29,992 | DEBUG | vice/SecureProxy | PhaseInterceptorChain > | 115 - org.apache.cxf.cxf-api - 2.6.2 | Invoking handleFault on > interceptor org.apache.cxf.interceptor.AttachmentInInterceptor@70e98812 > 17:16:29,992 | DEBUG | vice/SecureProxy | PhaseInterceptorChain > | 115 - org.apache.cxf.cxf-api - 2.6.2 | Invoking handleFault on > interceptor org.apache.cxf.ws.policy.PolicyInInterceptor@79b9950e > 17:16:29,993 | WARN | vice/SecureProxy | PhaseInterceptorChain > | 115 - org.apache.cxf.cxf-api - 2.6.2 | Interceptor for { > http://services.samples/xsd}SecureProxy has thrown exception, unwinding now > org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader. > at > org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInInterceptor.handleMessage(SAAJInInterceptor.java:139)[121:org.apache.cxf.cxf-rt-bindings-soap:2.6.2] > at > org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInInterceptor.handleMessage(SAAJInInterceptor.java:101)[121:org.apache.cxf.cxf-rt-bindings-soap:2.6.2] > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)[115:org.apache.cxf.cxf-api:2.6.2] > at > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)[115:org.apache.cxf.cxf-api:2.6.2] > at > org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)[122:org.apache.cxf.cxf-rt-transports-http:2.6.2] > at > org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)[122:org.apache.cxf.cxf-rt-transports-http:2.6.2] > at > org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:193)[122:org.apache.cxf.cxf-rt-transports-http:2.6.2] > at > org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:130)[122:org.apache.cxf.cxf-rt-transports-http:2.6.2] > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:221)[122:org.apache.cxf.cxf-rt-transports-http:2.6.2] > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:141)[122:org.apache.cxf.cxf-rt-transports-http:2.6.2] > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:713)[80:org.apache.geronimo.specs.geronimo-servlet_2.5_spec:1.1.2] > at > org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:197)[122:org.apache.cxf.cxf-rt-transports-http:2.6.2] > at > org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)[69:org.eclipse.jetty.servlet:7.5.4.v20111024] > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:480)[69:org.eclipse.jetty.servlet:7.5.4.v20111024] > at > org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)[85:org.ops4j.pax.web.pax-web-jetty:1.0.11] > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)[71:org.eclipse.jetty.server:7.5.4.v20111024] > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)[68:org.eclipse.jetty.security:7.5.4.v20111024] > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)[71:org.eclipse.jetty.server:7.5.4.v20111024] > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941)[71:org.eclipse.jetty.server:7.5.4.v20111024] > at > org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:117)[85:org.ops4j.pax.web.pax-web-jetty:1.0.11] > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)[69:org.eclipse.jetty.servlet:7.5.4.v20111024] > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)[71:org.eclipse.jetty.server:7.5.4.v20111024] > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)[71:org.eclipse.jetty.server:7.5.4.v20111024] > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)[71:org.eclipse.jetty.server:7.5.4.v20111024] > at > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)[71:org.eclipse.jetty.server:7.5.4.v20111024] > at > org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)[71:org.eclipse.jetty.server:7.5.4.v20111024] > at > org.eclipse.jetty.server.Server.handle(Server.java:345)[71:org.eclipse.jetty.server:7.5.4.v20111024] > at > org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)[71:org.eclipse.jetty.server:7.5.4.v20111024] > at > org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:936)[71:org.eclipse.jetty.server:7.5.4.v20111024] > at > org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:801)[72:org.eclipse.jetty.http:7.5.4.v20111024] > at > org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:224)[72:org.eclipse.jetty.http:7.5.4.v20111024] > at > org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)[71:org.eclipse.jetty.server:7.5.4.v20111024] > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)[67:org.eclipse.jetty.io:7 > .5.4.v20111024] > at > org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)[67:org.eclipse.jetty.io:7 > .5.4.v20111024] > at > org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)[75:org.eclipse.jetty.util:7.5.4.v20111024] > at > org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)[75:org.eclipse.jetty.util:7.5.4.v20111024] > at java.lang.Thread.run(Thread.java:680)[:1.6.0_35] > Caused by: javax.xml.soap.SOAPException: Unable to create message factory > for SOAP: Provider org.apache.axis2.saaj.MessageFactoryImpl not found > at > javax.xml.soap.MessageFactory.newInstance(MessageFactory.java:89)[54:org.apache.servicemix.specs.saaj-api-1.3:1.9.0] > at > org.apache.cxf.binding.soap.saaj.SAAJFactoryResolver.createMessageFactory(SAAJFactoryResolver.java:56)[121:org.apache.cxf.cxf-rt-bindings-soap:2.6.2] > at > org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInInterceptor.getFactory(SAAJInInterceptor.java:145)[121:org.apache.cxf.cxf-rt-bindings-soap:2.6.2] > at > org.apache.cxf.binding.soap.saaj.SAAJInInterceptor$SAAJPreInInterceptor.handleMessage(SAAJInInterceptor.java:127)[121:org.apache.cxf.cxf-rt-bindings-soap:2.6.2] > ... 36 more > > > When I remove the 'dependency="true"' statements from this feature, the > "wss4j" feature and all bundles are installed as expected and I can deploy > my service without this issue. > > Is there a documentation what 'dependency="true"' means? > > [1] > https://github.com/muellerc/esbperformance/tree/master/servicemix-osgi/secure-proxy > > Best, > Christian
