Categories
SAP Customer Checkout

SAP Customer Checkout Error Message „Hardware keygeneration library not found“

Since SAP Customer Checkout 2.0 Feature Pack 08 all installations of your POS (Point of Sales) need an assignment of a License.

As I came across the issue that if you upgrade manually from an older version to a most recent version of SAP Customer Checkout (short: CCO) the licensing does not work like it should, i’ve analysed why. The Hardware Key in your CCO Installation stays empty and in the console you have following error message:

ERROR com.sap.scco.ap.license.HardwareKeyGeneratorFactory - Hardware key generation library not found
java.lang.UnsatisfiedLinkError: C:\SapCustomerCheckout\cco\lib\slicjlib.dll: Can't find dependent libraries
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2659)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
at java.base/java.lang.System.loadLibrary(System.java:1873)
at com.sap.scco.ap.license.HardwareKeyGeneratorFactory.createHardwareKeyGenerator(HardwareKeyGeneratorFactory.java:27)
at com.sap.scco.ap.pos.service.impl.LicensePosServiceImpl.(LicensePosServiceImpl.java:61)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at com.sap.scco.ap.pos.service.ServiceFactory.constructInstance(ServiceFactory.java:250)
at com.sap.scco.ap.pos.service.ServiceFactory.getOrCreateServiceInstance(ServiceFactory.java:206)
at com.sap.scco.ap.pos.service.ServiceFactory.getOrCreateServiceInstance(ServiceFactory.java:197)
at com.sap.scco.ap.pos.util.HouseKeeping.performLicenseCheck(HouseKeeping.java:131)
at com.sap.scco.ap.pos.util.HouseKeeping.tryCleanup(HouseKeeping.java:96)
at com.sap.scco.ap.pos.util.HouseKeeping.run(HouseKeeping.java:60)
at java.base/java.lang.Thread.run(Thread.java:829)

After some research (actually directly in some SAP Presentation: see here) I found out that due to manual upgrade of CCO some dependencies were not installed automatically. CCO needs Microsoft Visual C++ 2010 SP1 Redistributable Package (x64) to be installed that the slicjlib.dll in directory \cco\lib is working. If you install the Package (you can download it directly from microsoft.com) Hardware Key can be generated by CCO and so also licensing works like a charm.