Im creating an Android application that will use an ICE properties file. The file is being read in like this:
private SessionFactoryHelper factoryHelper;
private SessionHelper sessionHelper;
Ice.InitializationData initData = new Ice.InitializationData();
initData.properties = Ice.Util.createProperties();
initData.properties.load("/dev/ice.cfg");
factoryHelper = new SessionFactoryHelper(initData, this);
I am ussing Glacier2 and SSL so I have these properties set in my properties file:
IceSSL.DefaultDir=dev/ice_certs
IceSSL.Keystore=client.jks
I'm using a SessionFactoryHelper to connect to my Glacier2 router:
sessionHelper = factoryHelper.connect(uname, pass);
Problem is I can't get it to connect to the router, when I call connect on factoryHelper it throws:
Ice.PluginInitializationException
reason = "IceSSL: unable to load keystore:
client.jks"
I manually pushed all the certificates to the Android emulator using adb, and they exist under /dev/ice_certs because if I look on the file system on the Android emulator I can see the files. The permissions on the files are also correct.
Also I know the /dev/ice_certs mount is accessible because if I change the IceSSL.DefaultDir property to some garbage mount such as "/bogusmout/ice_certs" the exception thrown by the connect function changes to:
Ice.PluginInitializationException
reason = "IceSSL: keystore not found:
client.jks"
Which means that in the previous case the client.jks was being found but wasn't loadable for some reason.
Any ideas?
Thanks.

Reply With Quote