Hi Christian,
thank you for your reply and nice tutorials. I'm currently going through and learning Karaf. So far we were also working on a project with an ad-hoc container to which we should care to provide the things we need such as blueprint,jpa,wicket,jetty,etc... besides doing tweaks in the bundle start level so all in all I found that always painful. Karaf looks definitely promising

I'm now testing under Karaf 4.0.4. Are the endpoints still supported? I'm working with a very simple bundle with the following endpoint definition:

<endpoint-descriptions xmlns="http://www.osgi.org/xmlns/rsa/v1.0.0";>
  <endpoint-description>
    <property name="objectClass">
      <array>
        <value>org.test.sync.api.ISyncProvider</value>
      </array>
    </property>
    <property name="endpoint.id" value="http://localhost:9090/sync/"/>
    <property name="service.imported.configs" value="org.apache.cxf.ws"/>
  </endpoint-description>
</endpoint-descriptions>

Two containers with the following setup:

feature:repo-add cxf-dosgi 1.7.0
feature:install cxf-dosgi-discovery-distributed
feature:repo-add mvn:org.test/org.test.features/0.0.1-SNAPSHOT/xml
feature:install org.test.sync

The provider deploys successfully and I can access with the browser, but the client throws the following exception: I've seen sometimes before that exception in the ad-hoc container but not always so I couldn't manage to figure it out what was the reason. But now in Karaf it is always thrown so it must be either that I'm missing some feature to be installed or that definition should be done in a different way. Below the exception:

2016-02-03 14:45:15,273 | WARN | lixDispatchQueue | ServiceDecoratorImpl | 54 - cxf-dosgi-ri-dsw-cxf - 1.7.0 | Problem parsing: bundle://125.0:0/OSGI-INF/remote-service/remote-services.xml
javax.xml.bind.UnmarshalException
 - with linked exception:
[org.xml.sax.SAXParseException: cvc-elt.1.a: Cannot find the declaration of element 'endpoint-descriptions'.] at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:350)[:2.5.0] at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:578)[84:org.apache.servicemix.bundles.jaxb-impl:2.2.11.1] at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:264)[84:org.apache.servicemix.bundles.jaxb-impl:2.2.11.1] at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:236)[84:org.apache.servicemix.bundles.jaxb-impl:2.2.11.1] at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:291)[84:org.apache.servicemix.bundles.jaxb-impl:2.2.11.1] at org.apache.cxf.dosgi.dsw.decorator.DecorationParser.getDecorations(DecorationParser.java:71)[54:cxf-dosgi-ri-dsw-cxf:1.7.0] at org.apache.cxf.dosgi.dsw.decorator.ServiceDecoratorImpl.getDecorationElements(ServiceDecoratorImpl.java:78)[54:cxf-dosgi-ri-dsw-cxf:1.7.0] at org.apache.cxf.dosgi.dsw.decorator.ServiceDecoratorImpl.addDecorations(ServiceDecoratorImpl.java:52)[54:cxf-dosgi-ri-dsw-cxf:1.7.0] at org.apache.cxf.dosgi.dsw.decorator.ServiceDecoratorBundleListener.bundleChanged(ServiceDecoratorBundleListener.java:40)[54:cxf-dosgi-ri-dsw-cxf:1.7.0] at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:916)[org.apache.felix.framework-5.4.0.jar:] at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:835)[org.apache.felix.framework-5.4.0.jar:] at org.apache.felix.framework.util.EventDispatcher.run(EventDispatcher.java:1148)[org.apache.felix.framework-5.4.0.jar:] at org.apache.felix.framework.util.EventDispatcher.access$000(EventDispatcher.java:55)[org.apache.felix.framework-5.4.0.jar:] at org.apache.felix.framework.util.EventDispatcher$1.run(EventDispatcher.java:103)[org.apache.felix.framework-5.4.0.jar:]

Best
Pablo

On 02/02/2016 8:56 AM, Christian Schneider wrote:
The Greeter example on the website is quite old.

Can you also try with the karaf based example on my website?
http://www.liquid-reality.de/x/D4C

It is much easier to install and uses the newest cxf DOSGi 1.7.0.

Christian

On 01.02.2016 10:53, Pablo Gomez wrote:
Hello all,


I've discovered recently remote services and I'm amazed about how easy to use and powerfull seems to be. However, I'm currently facing a small issue which I don't know what the reason could be. I'm testing the greeter example in two containers, one of them provides the service whereas the other consumes it. One container runs on a VirtualBox linux machine while the other runs on a windows host. I've tested with the following settings, NAT, host-only and Bridged network. Bridged network works as expected so as to physical machines connected to the same LAN do. However, with the virtual machine configured as host-only setup, I'm not able to access to it with the OSGi consumer, the activator when calling super.addingService(reference) return null. Surprisingly,I can successfully access to the service with the browser though. I do not have a deep knowledge on networks so I can't see what I am missing here. Additionally, I had faced the same issue -being able to access with the browser but not with OSGi by running the two instances, consumer and provider in the same machine and OS. In this scenario, again I can consume the service with the browser but I get null in the osgi consumer activator so I can't manage to consume successfully the service. Do you guys have a hint that helps me to understand what's going here? I'd really like to understand why this happens.

Below the  Greeter activator that I'm using in the consumer:
public class Activator implements BundleActivator {

    private ServiceTracker tracker;


    public void start(final BundleContext bc) {
tracker = new ServiceTracker(bc, GreeterService.class.getName(), null) {
            @Override
            public Object addingService(ServiceReference reference) {

                Object service = super.addingService(reference);

                if (service instanceof GreeterService) {
                    useService((GreeterService) service);
                }
                return service;
            }
        };
        tracker.open();
    }


Thank you!

regards
Pablo



Reply via email to