on ‎2020 Mar 27 9:18 AM
Dear Experts,
When I tried to call Remote Function Module on S/4 HANA using SAP Cloud SDK for Java, following exception occurs.
java.lang.ClassNotFoundException: com.sap.conn.jco.JCoException
The application is deployed on SAP Cloud Platform CF application run time.
Does anybody know how to deal with this issue?
The code is as following.
package com.sap.cloud.sdk;
import com.google.gson.Gson;
import com.sap.cloud.sdk.cloudplatform.connectivity.*;
import com.sap.cloud.sdk.s4hana.connectivity.exception.RequestExecutionException;
import com.sap.cloud.sdk.s4hana.connectivity.rfc.RfmRequest;
import com.sap.cloud.sdk.s4hana.connectivity.rfc.RfmRequestResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/bapi")
public class BapiServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final Logger logger = LoggerFactory.getLogger(BapiServlet.class);
private static final Destination destinationRfc =
DestinationAccessor.getDestination("Erp1809rfc");
@Override
protected void doGet(final HttpServletRequest request, final HttpServletResponse response)
throws IOException {
logger.info("Start get method: " + request.getRequestURI());
Iterable names = destinationRfc.getPropertyNames();
logger.info(new Gson().toJson(names));
try {
final RfmRequestResult rfmTest = new RfmRequest("RFCPING")
.execute(destinationRfc);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(new Gson().toJson(rfmTest));
} catch (RequestExecutionException e) {
e.printStackTrace();
}
}
}
The log is as following.
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT [CONTAINER] a].[localhost].[/].[com.sap.cloud.sdk.BapiServlet] SEVERE Servlet.service() for servlet [com.sap.cloud.sdk.BapiServlet] in context with path [] threw exception
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT com.sap.cloud.sdk.cloudplatform.exception.ShouldNotHappenException: com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextExecutionException: javax.servlet.ServletException: Servlet execution threw an exception
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.cloudplatform.servlet.RequestAccessorFilter.doFilter(RequestAccessorFilter.java:74)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.cloudplatform.security.servlet.HttpCachingHeaderFilter.doFilter(HttpCachingHeaderFilter.java:83)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.cloudplatform.security.servlet.HttpSecurityHeadersFilter.doFilter(HttpSecurityHeadersFilter.java:41)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.filters.RestCsrfPreventionFilter.doFilter(RestCsrfPreventionFilter.java:116)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.cloudfoundry.router.ClientCertificateMapper.doFilter(ClientCertificateMapper.java:79)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:747)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at java.lang.Thread.run(Thread.java:748)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT Caused by: com.sap.cloud.sdk.cloudplatform.thread.exception.ThreadContextExecutionException: javax.servlet.ServletException: Servlet execution threw an exception
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.cloudplatform.thread.AbstractThreadContextExecutor.execute(AbstractThreadContextExecutor.java:325)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.cloudplatform.servlet.RequestAccessorFilter.doFilter(RequestAccessorFilter.java:71)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT ... 32 more
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT Caused by: javax.servlet.ServletException: Servlet execution threw an exception
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:238)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.cloudplatform.servlet.RequestAccessorFilter.lambda$doFilter$1(RequestAccessorFilter.java:71)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.cloudplatform.thread.AbstractThreadContextExecutor.lambda$execute$0(AbstractThreadContextExecutor.java:317)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.cloudplatform.thread.ThreadContextCallable.call(ThreadContextCallable.java:247)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.cloudplatform.thread.AbstractThreadContextExecutor.execute(AbstractThreadContextExecutor.java:319)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT ... 33 more
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT Caused by: java.lang.NoClassDefFoundError: com/sap/conn/jco/JCoException
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.s4hana.connectivity.rfc.RfmTransactionFactory.createJCoTransaction(RfmTransactionFactory.java:32)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.s4hana.connectivity.rfc.AbstractTransactionFactory.createTransaction(AbstractTransactionFactory.java:39)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.s4hana.connectivity.rfc.RemoteFunctionRequestExecutor.execute(RemoteFunctionRequestExecutor.java:41)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.s4hana.connectivity.rfc.RfmRequest.execute(RfmRequest.java:102)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at com.sap.cloud.sdk.BapiServlet.doGet(BapiServlet.java:47)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT ... 41 more
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT Caused by: java.lang.ClassNotFoundException: com.sap.conn.jco.JCoException
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
2020-03-27T17:40:00.72+0900 [APP/PROC/WEB/0] OUT ... 49 more
Regards,
Yohei
Request clarification before answering.
Hi Kavitha-san,
Thank you for helpful advises.
I use the sap_java_buildpack and don't use spring-boot.
Today or tomorrow, I'm going to check ivan.mirisola's proposal.
Regards,
Yohei
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Kavitha-san,
Here is my manifest.yml and other files.
https://github.com/YoheiFukuhara/cloud-sdk-test/blob/master/manifest.yml
Regards,
Yohei
Hi Yohei,
Apologies for the delay in getting back to you. We couldn't find any issues with your manifest.yml file. As the issue doesn't seem to be Cloud SDK related, I would suggest you to raise this issue with the Java connector team.You may contact them here or raise a BCP incident under the component BC-MID-CON-JCO.
Regards,
Kavitha
| User | Count |
|---|---|
| 15 | |
| 9 | |
| 6 | |
| 5 | |
| 4 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.