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!