I don't talk about patch (or if you see something missing), but just use the correct <configuration/> to the maven plugin.

Regards
JB

On 07/24/2015 04:08 PM, Benson Margulies wrote:
On Fri, Jul 24, 2015 at 10:03 AM, Jean-Baptiste Onofré <[email protected]> 
wrote:
Hi Benson,

as said earlier, if you want complete control, you should add option to the
features plugin (to exclude some dependencies for instance),

As in, offer a patch? OK, once I get a bit of the way out of the current swamp.



  or manage your
feature.xml by hand (by the game of transitive features).

Regards
JB

On 07/24/2015 04:01 PM, Benson Margulies wrote:

In an empty framework, there is nothing exporting that package.

Then,

Adding feature url mvn:org.apache.cxf.karaf/apache-cxf/3.1.1/xml/features
karaf@root()> feature:install cxf
karaf@root()> exports | grep javax.ws.rs
javax.ws.rs.client
                                  | 2.0.0            | 118 |
org.apache.servicemix.specs.jsr339-api-2.0
javax.ws.rs.container
                                  | 2.0.0            | 118 |
org.apache.servicemix.specs.jsr339-api-2.0
javax.ws.rs.core
                                  | 2.0.0            | 118 |
org.apache.servicemix.specs.jsr339-api-2.0
javax.ws.rs.ext
                                  | 2.0.0            | 118 |
org.apache.servicemix.specs.jsr339-api-2.0
javax.ws.rs
                                  | 2.0.0            | 118 |
org.apache.servicemix.specs.jsr339-api-2.0

I install my stuff, and now I've got:

karaf@root()> kar:install
file:/users/benson/x/anvils/kar/target/rosapi-endpoint.kar
karaf@root()> exports | grep javax.ws.rs
javax.ws.rs.client
                                  | 2.0.0            | 118 |
org.apache.servicemix.specs.jsr339-api-2.0
javax.ws.rs.client
                                  | 2.0.1            | 172 |
javax.ws.rs-api
javax.ws.rs.container
                                  | 2.0.0            | 118 |
org.apache.servicemix.specs.jsr339-api-2.0
javax.ws.rs.container
                                  | 2.0.1            | 172 |
javax.ws.rs-api
javax.ws.rs.core
                                  | 2.0.0            | 118 |
org.apache.servicemix.specs.jsr339-api-2.0
javax.ws.rs.core
                                  | 2.0.1            | 172 |
javax.ws.rs-api
javax.ws.rs.ext
                                  | 2.0.0            | 118 |
org.apache.servicemix.specs.jsr339-api-2.0
javax.ws.rs.ext
                                  | 2.0.1            | 172 |
javax.ws.rs-api
javax.ws.rs
                                  | 2.0.0            | 118 |
org.apache.servicemix.specs.jsr339-api-2.0
javax.ws.rs
                                  | 2.0.1            | 172 |
javax.ws.rs-api

The karaf-maven-plugin has helpfully added:

<bundle start-level="80">mvn:javax.ws.rs/javax.ws.rs-api/2.0.1</bundle>

as a bundle due to a transitive dependency.

I guess that I need to stop using the karaf-maven-plugin to gen my
feature.xml to get rid of this particular lovely muddle. By why does
the CXF feature set up this way?


On Fri, Jul 24, 2015 at 9:53 AM, Benson Margulies <[email protected]>
wrote:

this looks suspicious:

javax.ws.rs
                                  | 2.0.0            | 118 |
org.apache.servicemix.specs.jsr339-api-2.0
javax.ws.rs
                                  | 2.0.1            | 172 |
javax.ws.rs-api

The  question is: what do I do about it?


On Fri, Jul 24, 2015 at 9:48 AM, Benson Margulies <[email protected]>
wrote:

Dan,

When I completely cleaned out the container, rebuild my stuff out to a
KAR, and restarted, my service works, except when I try to click
through into the WADL, and I get the following.

I will try to recreate the problem with the annotations, if you would
tell me what to type at the karaf prompt to investigate the package as
you requested.


HTTP ERROR 500

Problem accessing /cxf/annotator. Reason:

      Server Error

Caused by:

java.lang.RuntimeException: java.lang.ClassNotFoundException:
org.glassfish.jersey.internal.RuntimeDelegateImpl not found by
javax.ws.rs-api [172]
at
javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:152)
at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:120)
at javax.ws.rs.core.MediaType.toString(MediaType.java:402)
at java.lang.String.valueOf(String.java:2847)
at java.lang.StringBuilder.append(StringBuilder.java:128)
at
org.apache.cxf.jaxrs.model.wadl.WadlGenerator.handleFormRepresentation(WadlGenerator.java:1064)
at
org.apache.cxf.jaxrs.model.wadl.WadlGenerator.handleOperation(WadlGenerator.java:579)
at
org.apache.cxf.jaxrs.model.wadl.WadlGenerator.handleResource(WadlGenerator.java:402)
at
org.apache.cxf.jaxrs.model.wadl.WadlGenerator.generateWADL(WadlGenerator.java:310)
at
org.apache.cxf.jaxrs.model.wadl.WadlGenerator.doFilter(WadlGenerator.java:237)
at
org.apache.cxf.jaxrs.model.wadl.WadlGenerator.filter(WadlGenerator.java:195

On Fri, Jul 24, 2015 at 9:41 AM, Daniel Kulp <[email protected]> wrote:

Can you check the list of bundles you have installed to see if there
are multiple bundles exporting the java.ws.rs package?   Maybe two different
versions of the jaxrs api?

Dan



On Jul 24, 2015, at 9:34 AM, Benson Margulies <[email protected]>
wrote:

Export-Package:
com.basistech.raas.annotatorservice;version="0.0.1";uses

:="com.basistech.rosette,com.basistech.rosette.dm,javax.ws.rs,org.apach

e.cxf.jaxrs.ext,org.apache.cxf.jaxrs.ext.multipart,org.osgi.framework",

com.basistech.raas.annotatorservice.config;version="0.0.1";uses:="com.f
asterxml.jackson.annotation"
Implementation-Title: rosapi-worker-service
Implementation-Vendor: Basis Technology Corp.
Implementation-Vendor-Id: com.basistech.ws
Implementation-Version: 0.0.1-SNAPSHOT
Import-Package:
com.basistech.rosette,com.basistech.rosette.dm;version="

[1.12,2)",com.basistech.rosette.dm.jackson;version="[1.12,2)",com.basis

tech.rosette.osgi;version="[1.0,2)",com.basistech.rosette.osgi.util;ver

sion="[1.0,2)",com.fasterxml.jackson.annotation;version="[2.4,3)",com.f

asterxml.jackson.core;version="[2.4,3)",com.fasterxml.jackson.databind;

version="[2.4,3)",com.fasterxml.jackson.dataformat.yaml;version="[2.4,3

)",com.google.common.collect;version="[16.0,17)",com.google.common.io;v

ersion="[16.0,17)",javax.ws.rs;version="[2.0,3)",org.apache.cxf.jaxrs.e

xt;version="[3.1,4)",org.apache.cxf.jaxrs.ext.multipart;version="[3.1,4

)",org.osgi.framework;version="[1.8,2)",org.osgi.service.blueprint;vers
ion="[1.0.0,2.0.0)"

On Fri, Jul 24, 2015 at 9:34 AM, Benson Margulies
<[email protected]> wrote:

It works *sometimes* and not others.

In the debugger, I see that the annotations themselves are Proxy
instances; I'm not sure if that's the source of the trouble.

Here is the relevant subset of the manifest:



On Fri, Jul 24, 2015 at 9:30 AM, Jean-Baptiste Onofré
<[email protected]> wrote:

Maybe your import is not correct. I guess that you correctly import
the
annotation bundle (and not re-export it). Correct ?

Regards
JB


On 07/24/2015 03:29 PM, Benson Margulies wrote:


Boy did I just get confused.

If you stop a bundle containing a CXF service, update it, and start
it, CXF will, for some reason, no longer see the annotation
classes,
and will decide that the service bean has no useful methods.

This is slightly annoying when debugging, but would be a big
problem
for live management.

Is there something I might be doing wrong to provoke this?


--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com


--
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com


--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com

--
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com

Reply via email to