Hi,
I need to bring up a issue that was already discussed
earlier, eg.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=419744
and here
http://dev.eclipse.org/mhonarc/lists/ecf-dev/msg08047.html
The issue is, that in our setup, the service matching is not
working when accessing the remote server using a different
hostname than the machine uses itself (a little hard to
express as non native speaker ;) see ENDPOINT definition
below)
Scott's last comment on the problem was to get more
information about our use case and environment so I'll try to
provide the required information
* we have a lot of clients using remote services from one
application server
* we use the ecf generic provider.
* the remote service "discovery" is done by generating an
EndpointDescription on client side, as all clients know by
configuration which server to speak to. We use something like
this to define the service endpoint:
props.put(ENDPOINT_ID, "ecftcp://" + host + ":8889/server");
where host is the hostname or IP address under which the
client can access the remote server - which is not necessarily
the hostname or IP which is configured at the server itself
(which is exactly the issue). So eg. the server is exporting
the service under endpoint
ecftcp://myhostname.company.local:8889/server
whereas the client needs to access the server eg. by using
ecftcp://otherhostname.public.net:8889/server or by
ecftcp://192.168.0.100:8889/server
as endpoint id.
and even case sensitivity does matter: Some Windows machines
(for whatever reason) have hostnames like
MYHOSTNAME.company.local. Clients then are required to use the
exact hostname with the correct upper/lowercase to access the
server.
* the remote services are imported on client side via
remoteServiceAdmin.importService(endpointDescription);
* the remote services are exported on server side using DS
with additional properties, like:
@Component(immediate = true, property = {
"service.exported.interfaces=*",
"service.exported.configs=ecf.generic.server",
"ecf.generic.server.port=8889" })
public class MyserviceService implements IMyService {
* on server side we have a custom implementation of
IHostContainerSelector which allows us to override
protected IRemoteServiceContainer createRSContainer
to add a custom RegistrySharedObject which customizes error
handling ("exception to String serialization")
That's it i think.
So getting rid of the hostname part in the endpoint
description and/or when matching would probably solve the
problem...
Thanks for any hints on this issue!