Hi all,
I'm trying to access an internal web service over SSL from my JSP DynPage application in our 7.3 portal, and I keep getting an error:
java.lang.NullPointerException: while trying to invoke the method java.io.ByteArrayOutputStream.toByteArray() of an object loaded from field
org.w3c.www.protocol.http.HttpURLConnection.output of an object loaded from local variable '<0>'#
Our Basis team has loaded the security certificate for this system into our portal keystore. I'm pretty sure this has to do with the way that I'm setting up my keystore code, because when I code it to use the 'all trusting trust manager', it works. Here's my code:
public void getUserInfo() throws Exception {
URL url;
HttpURLConnection connection = null;
MobileUserBean returnMobileUserBean = new MobileUserBean();
try {
String targetUrl = "https://myserver.domain.com:443/users/myuser@mydomain.com";
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(null, null);
SecureConnectionFactory factory = new SecureConnectionFactory(keyStore, null);
connection = factory.createURLConnection(targetUrl);
connection.setRequestMethod("GET");
connection.setUseCaches(false);
connection.setDoInput(true);
connection.setDoOutput(true);
InputStream is = connection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
StringBuffer response = new StringBuffer();
while((line = rd.readLine()) != null) {
response.append(line);
response.append('\r');
}
rd.close();
System.out.println("rc = " + connection.getResponseCode());
System.out.println("response = " + response.toString());
} catch (Exception e) {
System.out.println ("Exception!!!");
e.printStackTrace();
throw e;
} finally {
if(connection != null) {
connection.disconnect();
}
}
}
Here is the full stack trace of the error:
java.lang.NullPointerException: while trying to invoke the method java.io.ByteArrayOutputStream.toByteArray() of an object loaded from field org.w3c.www.protocol.http.HttpURLConnection.output of an object loaded from local variable '<0>'#
at org.w3c.www.protocol.http.HttpURLConnection.connect(Unknown Source)#
at com.sap.engine.httpdsrclient.protocols.instrumented.https.DSRHttpsURLConnection.connect(DSRHttpsURLConnection.java:77)#
at org.w3c.www.protocol.http.HttpURLConnection.a(Unknown Source)#
at org.w3c.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)#
at com.sap.engine.httpdsrclient.protocols.instrumented.https.DSRHttpsURLConnection.getInputStream(DSRHttpsURLConnection.java:104)#
at com.graybar.portal.mobileuseradm.query.ActiveDirectoryDAO.getUserInfo(ActiveDirectoryDAO.java:91)#
at com.graybar.portal.mobileuseradm.ProcessRequest.process(ProcessRequest.java:170)#
at com.graybar.portal.mobileuseradm.MobileUserAdm$MobileUserAdmDynPage.onGoToMobileUserDetail(MobileUserAdm.java:1486)#
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)#
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)#
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)#
at java.lang.reflect.Method.invoke(Method.java:597)#
at com.sapportals.htmlb.page.DynPage.doProcessCurrentEvent(DynPage.java:173)#
at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:106)#
at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:134)#
at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:213)#
at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:129)#
at com.sap.portal.prt.core.RequestDispatcherFactory$PortalComponentRequestDispatcher$5.service(RequestDispatcherFactory.java:308)#
at com.sap.engine.services.servlets_jsp.server.deploy.impl.module.IRequestDispatcherImpl.dispatch(IRequestDispatcherImpl.java:270)#
at com.sap.portal.prt.core.RequestDispatcherFactory$PortalComponentRequestDispatcher.service(RequestDispatcherFactory.java:298)#
at com.sap.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:229)#
at com.sap.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:107)#
at com.sap.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:141)#
at com.sap.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:206)#
at com.sapportals.portal.navigation.workAreaiView.doContent(workAreaiView.java:296)#
at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:213)#
at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:129)#
at com.sap.portal.prt.core.RequestDispatcherFactory$PortalComponentRequestDispatcher$5.service(RequestDispatcherFactory.java:308)#
at com.sap.engine.services.servlets_jsp.server.deploy.impl.module.IRequestDispatcherImpl.dispatch(IRequestDispatcherImpl.java:270)#
at com.sap.portal.prt.core.RequestDispatcherFactory$PortalComponentRequestDispatcher.service(RequestDispatcherFactory.java:298)#
at com.sap.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:229)#
at com.sap.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:107)#
at com.sap.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:141)#
at com.sap.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:206)#
at com.sap.portal.prt.pom.PortalNode.service(PortalNode.java:588)#
at com.sap.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:233)#
at com.sap.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:107)#
at com.sap.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:141)#
at com.sap.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:520)#
at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:202)#
at com.sap.portal.prt.dispatcher.DispatcherServlet.service(DispatcherServlet.java:132)#
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)#
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.runServlet(FilterChainImpl.java:202)#
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:103)#
at com.sap.portal.http.EnrichNavRequestFilter.doFilter(EnrichNavRequestFilter.java:49)#
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:79)#
at com.sap.portal.http.EnrichNavRequestFilter.doFilter(EnrichNavRequestFilter.java:49)#
at com.sap.engine.services.servlets_jsp.server.runtime.FilterChainImpl.doFilter(FilterChainImpl.java:79)#
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:432)#
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:210)#
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:441)#
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:430)#
at com.sap.engine.services.servlets_jsp.filters.DSRWebContainerFilter.process(DSRWebContainerFilter.java:38)#
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)#
at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:81)#
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)#
at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:278)#
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)#
at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:81)#
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)#
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)#
at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)#
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)#
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)#
at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)#
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)#
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)#
at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)#
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)#
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)#
at com.sap.engine.services.httpserver.filters.SessionSizeFilter.process(SessionSizeFilter.java:26)#
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)#
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)#
at com.sap.engine.services.httpserver.filters.MemoryStatisticFilter.process(MemoryStatisticFilter.java:57)#
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)#
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)#
at com.sap.engine.services.httpserver.filters.DSRHttpFilter.process(DSRHttpFilter.java:43)#
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)#
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:78)#
at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:475)#
at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.process(Processor.java:269)#
at com.sap.engine.services.httpserver.server.rcm.RequestProcessorThread.run(RequestProcessorThread.java:56)#
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:122)#
at com.sap.engine.core.thread.execution.Executable.run(Executable.java:101)#
at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:328)#
Can anyone help me out with this?
Thanks!
-Stephen Spalding