2016-06-23 5 views
1

Ich spiele mit Swagger auf Spring MVC, lokale Anlegestelle und aus irgendeinem Grund bekomme ich eine Null HttpServletRequest, was seltsam ist, um es gelinde auszudrücken. Hiernull HttpServletRequest

ist der volle Stack-Trace:

java.lang.IllegalArgumentException: HttpServletRequest must not be null 
    at org.springframework.util.Assert.notNull(Assert.java:115) 
    at org.springframework.http.server.ServletServerHttpRequest.<init>(ServletServerHttpRequest.java:72) 
    at org.springframework.web.servlet.support.ServletUriComponentsBuilder.initFromRequest(ServletUriComponentsBuilder.java:120) 
    at org.springframework.web.servlet.support.ServletUriComponentsBuilder.fromContextPath(ServletUriComponentsBuilder.java:74) 
    at org.springframework.web.servlet.support.ServletUriComponentsBuilder.fromServletMapping(ServletUriComponentsBuilder.java:88) 
    at springfox.documentation.swagger2.web.HostNameProvider.componentsFrom(HostNameProvider.java:35) 
    at springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(Swagger2Controller.java:84) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) 
    at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) 
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 

Warum sollte ich eine Null-HttpServletRequest in diesem Fall bekommen? Ich sende nur eine einfache Anfrage über einen Browser, nichts Besonderes.

EDIT 1 Ich habe seitdem versucht, die Maven Cargo-Plugin, mit integriertem Jetty, und es scheint zu funktionieren. Ich habe immer noch keine Ahnung, warum das Jetty-Plugin selbst diesen Fehler hat. Dies ist die Version, die für den Datensatz verwendet wird:

+0

Hallo! Bitte zeigen Sie Ihren UI-Code und lassen Sie mich wissen, Ihr Parameterwert ist null? – T8Z

+0

Es gibt keine Benutzeroberfläche. Ich starte die Webapp mit Maven Jetty Plugin und mache dann eine Anfrage über den Chrome Browser. Das ist es. – javamonkey79

+0

Sieht aus wie aufgrund der schlechten Konfiguration Frühling ist nicht in der Lage, sein Servlet zu finden (DispatcherServlet Maya) Dies verursacht ServletServerHttpRequest. fehlschlagen und daher erhalten Sie Assertion-Fehler. – amitmah

Antwort

0

Ok, also das Problem war die Version von Anlegesteg, die ich verwendete (6.1.26). Das Update auf 9.3.10.v20160621 oder das Cargo-Plugin mit 8+ Embedded Jetty löste das für mich. Ich bin mir nicht sicher, warum genau das das Problem war.

Verwandte Themen