cancel
Showing results for 
Search instead for 
Did you mean: 

Class Cast Exception in Destination Factory

0 Kudos

Hello all,

We currently want to use the Destination Factory API to access a backend system over the Hana Cloud Connector. Unfortunately we receive an exception we are currently not understanding:

2015 11 02 16:59:10#+00#ERROR#com.sap.csc.customer.poc.project.dcs.backend.odata.ODataClient##anonymous#Thread-7#na#customerprojectpocqafactory#customerpoc#web##Failed to create an HTTP client from the destination configuration name X_Gateway: Cannot cast class com.sap.core.connectivity.cloud.destinations.CloudDestinationFactory to interface com.sap.core.connectivity.api.DestinationFactory

java.lang.ClassCastException: Cannot cast class com.sap.core.connectivity.cloud.destinations.CloudDestinationFactory to interface com.sap.core.connectivity.api.DestinationFactory

    at com.sap.csc.customer.poc.project.dcs.backend.odata.ODataClient.getHttpClient(ODataClient.java:781)

    at com.sap.csc.customer.poc.project.dcs.backend.odata.ODataClient.readEdm(ODataClient.java:281)

    at com.sap.csc.customer.poc.project.dcs.backend.BackendConnectivity.testBackendConnectivity(BackendConnectivity.java:56)

    at com.sap.csc.customer.poc.project.dcs.backend.BackendConnectivity.<init>(BackendConnectivity.java:36)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)

    at java.lang.Class.newInstance(Class.java:392)

    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:116)

    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4919)

    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5517)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)

    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)

    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)

    at org.eclipse.gemini.web.tomcat.internal.TomcatServletContainer.startWebApplication(TomcatServletContainer.java:125)

    at org.eclipse.gemini.web.internal.StandardWebApplication.start(StandardWebApplication.java:109)

    at org.eclipse.gemini.web.extender.WebContainerBundleCustomizer.addingBundle(WebContainerBundleCustomizer.java:49)

    at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:482)

    at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:1)

    at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:262)

    at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:234)

    at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:457)

    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:847)

    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)

    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)

    at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1523)

    at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1459)

    at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1454)

    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:391)

    at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:299)

    at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:291)

    at com.sap.core.js.deployer.watchservice.WARDeployer.deployStartStep(WARDeployer.java:816)

    at com.sap.core.js.deployer.watchservice.WARDeployer.bulkDeploy(WARDeployer.java:731)

    at com.sap.core.js.deployer.watchservice.FileSystemEventsListener.triggerBulkDeployment(FileSystemEventsListener.java:118)

    at com.sap.core.js.deployer.watchservice.FileSystemEventsListener.onChange(FileSystemEventsListener.java:58)

    at org.eclipse.virgo.util.io.FileSystemChecker.notifyListeners(FileSystemChecker.java:245)

    at org.eclipse.virgo.util.io.FileSystemChecker.check(FileSystemChecker.java:166)

    at com.sap.core.js.deployer.watchservice.WatchTask.run(WatchTask.java:29)

    at java.lang.Thread.run(Thread.java:812)|

2015 11 02 16:59:10#+00#ERROR#com.sap.csc.customer.poc.project.dcs.backend.BackendConnectivity##anonymous#Thread-7#na#customerprojectpocqafactory#customerpoc#web##Failed to test odata

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)

    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1916)

    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:279)

    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:273)

    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1469)

    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:213)

    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:913)

    at sun.security.ssl.Handshaker.process_record(Handshaker.java:849)

    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1035)

    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1344)

    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1371)

    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)

    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:275)

    at org.apache.http.impl.conn.HttpClientConnectionOperator.upgrade(HttpClientConnectionOperator.java:169)

    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.upgrade(PoolingHttpClientConnectionManager.java:333)

    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:398)

    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219)

    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)

    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)

    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)

    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)

    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)

    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)

    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)

    at com.sap.csc.customer.poc.project.dcs.backend.odata.ODataClient.readEdm(ODataClient.java:281)

    at com.sap.csc.customer.poc.project.dcs.backend.BackendConnectivity.testBackendConnectivity(BackendConnectivity.java:56)

    at com.sap.csc.customer.poc.project.dcs.backend.BackendConnectivity.<init>(BackendConnectivity.java:36)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)

    at java.lang.Class.newInstance(Class.java:392)

    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:116)

    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4919)

    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5517)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)

    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)

    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)

    at org.eclipse.gemini.web.tomcat.internal.TomcatServletContainer.startWebApplication(TomcatServletContainer.java:125)

    at org.eclipse.gemini.web.internal.StandardWebApplication.start(StandardWebApplication.java:109)

    at org.eclipse.gemini.web.extender.WebContainerBundleCustomizer.addingBundle(WebContainerBundleCustomizer.java:49)

    at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:482)

    at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:1)

    at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:262)

    at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:234)

    at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:457)

    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:847)

    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)

    at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)

    at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEventPrivileged(Framework.java:1523)

    at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1459)

    at org.eclipse.osgi.framework.internal.core.Framework.publishBundleEvent(Framework.java:1454)

    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:391)

    at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:299)

    at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:291)

    at com.sap.core.js.deployer.watchservice.WARDeployer.deployStartStep(WARDeployer.java:816)

    at com.sap.core.js.deployer.watchservice.WARDeployer.bulkDeploy(WARDeployer.java:731)

    at com.sap.core.js.deployer.watchservice.FileSystemEventsListener.triggerBulkDeployment(FileSystemEventsListener.java:118)

    at com.sap.core.js.deployer.watchservice.FileSystemEventsListener.onChange(FileSystemEventsListener.java:58)

    at org.eclipse.virgo.util.io.FileSystemChecker.notifyListeners(FileSystemChecker.java:245)

    at org.eclipse.virgo.util.io.FileSystemChecker.check(FileSystemChecker.java:166)

    at com.sap.core.js.deployer.watchservice.WatchTask.run(WatchTask.java:29)

    at java.lang.Thread.run(Thread.java:812)

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)

    at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)

    at sun.security.validator.Validator.validate(Validator.java:260)

    at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)

    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)

    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)

    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1451)

    ... 59 more

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)

    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)

    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)

    ... 65 more

Do you guys have an idea?

Thank you very much and Best Regards

Philipp

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Philipp,

it seems that your application brings the HCP JAR files which contain the destination classes with itself. Hiowever, the are provided by default on all HCP runtimes automatically. This then causes such a ClassCastException at runtime.

Hope this helps.

Best regards, Timo

Answers (0)