Wednesday, 14 August 2013

Not RESTing on my laurels - IBM BPM Standard 7.5.1.1 and the ubiquitous localhost

I hit another localhost issue with Process Admin: -


when I clicked into the Process Inspector UI: -


which returned: -


Here's the detailed exception: -

com.google.gwt.http.client.RequestException: javax.servlet.ServletException: com.ibm.processinspector.rest.ProcessAdminRestException: Error communicating with server at com.ibm.processinspector.server.handlers.ProcessInstanceSearchHandler.handleRequest(ProcessInstanceSearchHandler.java:292) at com.ibm.processinspector.server.BPMInspectorRestFacade.doGet(BPMInspectorRestFacade.java:109) at javax.servlet.http.HttpServlet.service(HttpServlet.java:718) at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1658) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1598) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:149) at com.lombardisoftware.servlet.SetUserTimeZoneFilter.doFilter(SetUserTimeZoneFilter.java:41) at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:125) at com.lombardisoftware.servlet.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:35) at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:125) at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:80) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:935) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:503) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:181) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3954) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:942) at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:186) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:453) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:306) at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83) at com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1784) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1646)Caused by: com.ibm.processinspector.rest.ProcessAdminRestException: Error communicating with server at com.ibm.processinspector.rest.ProcessAdminRestClient.doGetQuery(ProcessAdminRestClient.java:209) at com.ibm.processinspector.rest.ProcessAdminRestClient.doQuery(ProcessAdminRestClient.java:237) at com.ibm.processinspector.rest.ProcessInstanceSearchAPIImpl.getInstanceCount(ProcessInstanceSearchAPIImpl.java:169) at com.ibm.processinspector.rest.ProcessInstanceSearchAPIImpl.getInstanceStatusSummary(ProcessInstanceSearchAPIImpl.java:114) at com.ibm.processinspector.server.handlers.ProcessInstanceSearchHandler.createCounts(ProcessInstanceSearchHandler.java:73) at com.ibm.processinspector.server.handlers.ProcessInstanceSearchHandler.handleRequest(ProcessInstanceSearchHandler.java:281) ... 35 moreCaused by: javax.net.ssl.SSLException: hostname in certificate didn't match: <rhel6.uk.ibm.com> != <localhost> at org.apache.commons.httpclient.protocol.AbstractVerifier.verify(Unknown Source) at org.apache.commons.httpclient.protocol.BrowserCompatHostnameVerifier.verify(Unknown Source) at org.apache.commons.httpclient.protocol.AbstractVerifier.verify(Unknown Source) at org.apache.commons.httpclient.protocol.AbstractVerifier.verify(Unknown Source) at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(Unknown Source) at org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory.createSocket(Unknown Source) at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707) at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387) at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323) at com.ibm.processinspector.rest.ProcessAdminRestClient.doGetQuery(ProcessAdminRestClient.java:193) ... 40 moreError 500: javax.servlet.ServletException: javax.servlet.ServletException: com.ibm.processinspector.rest.ProcessAdminRestException: Error communicating with server

Again, here's the reason why: -

WAS Console ( ISC ) > Services > REST services > REST service providers

I changed the Host name or virtual host in a load-balanced environment from: -

localhost

to: -



Note - this needs to be done for BOTH REST endpoints: -

and restarted my AppTarget cluster.

Job done :-)

For the record, the five REST endpoints are summarised here: -




No comments:

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...