Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] Problem using multiple services from single server

Hi Scott,


Am 10.03.2015 um 17:43 schrieb Scott Lewis:
I think that the problem might be this:
    <property name="endpoint.service.id" value-type="Long" value="0"
i tried using different service id's, but discovered that that does not seem to work at all.

After trial and error (with just importing one service on client for sake of reducing problems), my current state is that:
- service id 0 seems to generally work - service is discovered and works
- service id 2(in my case) works, as on server side the requested service is registered as com.godyo.service.IService1.proxy@xxxxxxxxxxxxxxx.remoteservice.RemoteServiceID[containerID=StringID[ecftcp://peter-desktop:8889/server];containerRelativeID=2] - I think because of the containerRelativeID=2
- all other service id's (eg. 1) does not work and end up in the following error message:

RemoteReferenceNotFoundException[targetID=StringID[ecftcp://peter-desktop:8889/server], idFilter=[StringID[ecftcp://peter-desktop:8889/server]], interfaces=[com.godyo.service.IService1], rsFilter=(&(ecf.rsvc.id=1))]
    at org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.importService(RemoteServiceAdmin.java:2097)
    at org.eclipse.ecf.osgi.services.remoteserviceadmin.RemoteServiceAdmin.importService(RemoteServiceAdmin.java:422)
    at org.eclipse.ecf.osgi.services.remoteserviceadmin.AbstractTopologyManager.handleECFEndpointAdded(AbstractTopologyManager.java:251)
    at org.eclipse.ecf.internal.osgi.services.distribution.BasicTopologyManagerImpl.endpointAdded(BasicTopologyManagerImpl.java:115)
    at org.eclipse.ecf.osgi.services.remoteserviceadmin.EndpointDescriptionLocator$1.dispatchEvent(EndpointDescriptionLocator.java:156)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

I Think because of the service filter ecf.rsvc.id=1

So overall using different serviceID's leads to this general import error, which prevents me from using it and still leaves me with the problem of importing multiple services which may be caused by using serviceID 0.

My environment:
- ECF version 3.7 (i'm currently bound to eclipse indigo 3.7 RCP)

This is now a pretty old version of ECF...particularly wrt to the RSA impl.    There was a bug recently discovered, fixed and deployed in 3.9.3 WRT the processing of multiple edef files

https://bugs.eclipse.org/bugs/show_bug.cgi?id=461348
Thanks for the hint, but I'm using the

Service-Component: OSGI-INF/*.xml

syntax, so that won't hit me ;)
Realistically, it might become difficult/impossible to support ECF 3.7 on Indigo for much longer...and I *believe* that ECF 3.9.3 will run on everything back to Kepler (although I admit I haven't tested on Kepler yet...I will do so/help do so, however, if that is necessary.  Please let me know).  The dependency here is on the use of the OSGI Wiring API (required for compliance with modern versions of OSGi RSA spec), which I *think* only appeared in Kepler version of Equinox (can't remember what number version of Equinox that was right now).
Of course thats a problem. I tried upgrading to the latest version, but as you already statet, there is a dependency to a core equinox.osgi package version 1.7 whereas eclipse indigo only has version 1.6 available.

An upgrade of our RCP app to Eclipse 4 is planned, but currently not in work. I case we would need a fix in ECF 3.7 I would consider patching/building it myself ....

Thanks for your hints!

Best Regards, Peter

Back to the top