问题描述:https协议带证书的外网服务接入ESB,配置完成后,调用时报错:
[default][2017-08-03 14:38:13,508][ERROR][com.primeton.esb.http.transport.ESBServletHandler:322] Error occured when handle receive.
java.lang.NullPointerException
at org.eclipse.jetty.io.ByteArrayBuffer.<init>(ByteArrayBuffer.java:46)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:117)
at com.primeton.esb.http.transport.ESBServletHandler.receive(ESBServletHandler.java:313)
at com.primeton.esb.httpcomponent.server.jetty.JettyAsyncContextServlet.doHandleResume(JettyAsyncContextServlet.java:161)
at com.primeton.esb.httpcomponent.server.jetty.JettyAsyncContextServlet.service(JettyAsyncContextServlet.java:149)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handleAsync(Server.java:410)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:519)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:79)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:745)
java.lang.NullPointerException
at com.primeton.esb.interceptor.log.model.DefaultOutboundInterceptorLog.toBytes(DefaultOutboundInterceptorLog.java:181)
at com.primeton.esb.interceptor.log.writer.AbstractInterceptorLogWriter.writeData(AbstractInterceptorLogWriter.java:195)
at com.primeton.esb.interceptor.log.writer.AbstractInterceptorLogWriter.writeLines(AbstractInterceptorLogWriter.java:179)
at com.primeton.esb.interceptor.log.writer.BufferedInterceptorLogWriter.writeData(BufferedInterceptorLogWriter.java:71)
at com.primeton.esb.interceptor.log.writer.BufferedInterceptorLogWriter.run(BufferedInterceptorLogWriter.java:98)
at java.lang.Thread.run(Thread.java:745)
问题原因:由于证书不满足浏览器等客户端的解析标准,因此ESB解析后,通过浏览器无法访问,根据标准ssl证书的颁发者为域名,便于验证域名的所有权
解决方案:参考后面文件中的步骤重新生成证书再进行调用。https证书说明.pdf