Cache 2016.2.1 Using java library jcifs-ng for access to Windows Shares from ObjectScript

Hello everybody,

My question would be, how is the recommended way to access Windows shares, also in view of future demads. Of course, I'm also happy about an explanation or code snippet of how the library, which is mentioned in the following , can be used under cache.

The classic jcifs library is easy to use, also with Cache, but as microsoft ceases support for smb1, we are currently looking for alternatives. jcifs-ng is such a library, which we took a closer look at. In java code a jcifs-ng file operation looks like this:

CIFSContext baseCtx = new BaseContext(new PropertyConfiguration(System.getProperties()));
NtlmPasswordAuthenticator creds = new NtlmPasswordAuthenticator(smbDomain,smbUser,smbPass);
CIFSContext ct = baseCtx.withCredentials(creds);
SmbResource sr = ct.get(smbConnect);

// do something with the SmbRessource which can be either a file or a directory

In contrast to the old jcifs library, interfaces are used, e.g. with CIFSContext. I don't know if this is the reason, but it seems to cause problems using the JavaGateway Wizard and the wrapper classes it creates. Creating an empty Properties hashmap and instatiating an NtlmPasswordAuthenticator works fine but when calling the method baseCtx.withCredentials(creds), which result-type is an abstract CIFSContext, the csession runs into an exception.

Thank you very much,

Martin Staudigel

  • 0
  • 0
  • 249
  • 2
  • 0


What platform are you running Cache on? And what Cache version? Can't you access the Windows fileshares directly from ObjectScript without needing to call out through the Java gateway?

It's Ensemble 2016.2.1.803.0 on SLES 12 SP3

There is the possibility to mount shares into the filesystem, but if this fails, it may go unnoticed because an empty directory remains. I don't know any other way to address a Windows share from an ObjectScript class than via the Java gateway, but that doesn't mean it doesn't exist. Every hint is appreciated.