Hi Team,
We are on UCCX 10.0 with JRE6
We have a custom Java class that was working on UCCX 11.5 with JRE 7.
The class makes a REST call with OAUTH to a cloud API
We tried to deploy it 10, but ran into limitation of no support for TLS 1.2.
We've found a workaround possibly with BouncyCastle library, but we are having trouble getting this to work.
We have the class loaded to UCCX, and it's external dependencies.
We've added them all to the classpath.
I think it may be something to do with the httpclient lib in the UCCX system itself, but really running out of ideas on how to troubleshoot and what is possible in UCCX to resolve it (or in our code).
It's seeming like a bit of a dead-end.
It complains about finding the socketfactory calss in httpclient, and also about the commons logging.
This is the exception thrown when we run it:
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n\tat java.lang.reflect.Method.invoke(Method.java:597)\n\tat sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:303)\n\tat sun.rmi.transport.Transport$1.run(Transport.java:159)\n\tat java.security.AccessController.doPrivileged(Native Method)\n\tat sun.rmi.transport.Transport.serviceCall(Transport.java:155)\n\tat sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)\n\tat sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n\tat sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)\n\tat java.lang.Thread.run(Thread.java:662)\nCaused by: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory\n\tat org.apache.http.conn.ssl.AbstractVerifier.<init>(AbstractVerifier.java:61)\n\tat org.apache.http.conn.ssl.AllowAllHostnameVerifier.<init>(AllowAllHostnameVerifier.java:44)\n\tat org.apache.http.conn.ssl.AllowAllHostnameVerifier.<clinit>(AllowAllHostnameVerifier.java:46)\n\tat org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:146)\n\tat impl.LivePersonUCCImpl.sendRequest(LivePersonUCCImpl.java:87)\n\tat impl.LivePersonUCCImpl.setupLivePerson(LivePersonUCCImpl.java:59)\n\t... 36 more\nCaused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory\n\tat java.net.URLClassLoader$1.run(URLClassLoader.java:202)\n\tat java.security.AccessController.doPrivileged(Native Method)\n\tat java.net.URLClassLoader.findClass(URLClassLoader.java:190)\n\tat java.lang.ClassLoader.loadClass(ClassLoader.java:306)\n\tat sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)\n\tat java.lang.ClassLoader.loadClass(ClassLoader.java:247)\n\t... 42 more\n"
This is the classpath in UCCX:
.
httpcore-4.4.10.jar
httpclient-4.5.6.jar
commons-code-1.8.jar
bctls-jdk15-18-1.64.jar
bcprov-jdk15to18-1.64.jar
signpost-core-1.2.1.2.jar
signpost-commonshttp4-1.2.1.2.jar
json-simple-1.1.1.jar
commons-logging-1.2.jar
MyCustomClass.jar
This class runs perfectly with JRE 1.6 off box (on linux)
It's compiled against the right version of Java to match the Cisco UCCX
Any ideas on how to proceed with some more troubleshooting would be greatly appreciated.
Cheers,
Tim