在jetty-maven-plugin中未调用Spring映射的servlet
我不得不迁移从maven-jetty-plugin
到jetty-maven-plugin
。我可以看到,当我从开始使用码头时jetty:run
,上下文已部署,该应用程序正在初始化,但未找到servlet。与可以正常使用maven-
jetty-plugin。
java
@RequestMapping(value = "/handshake", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")public void performHandShake(@org.springframework.web.bind.annotation.RequestBody String requestData, HttpServletResponse response) throws IOException {
web.xml
<servlet> <servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Marvin
<plugin> <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${maven-jetty-plugin.version}</version>
<configuration>
<webApp>
<contextPath>pos-json</contextPath>
</webApp>
<scanIntervalSeconds>0</scanIntervalSeconds>
浏览器位于http:// localhost:8080 /
No context on this server matched or handled this request.Contexts known to this server are:
pos-json ---> o.e.j.m.p.JettyWebAppContext@6c6366cf{pos-json,file:///C:/dev/projekty/pos-backend/src/main/webapp/,AVAILABLE}{file:///C:/dev/projekty/pos-backend/src/main/webapp/}
浏览器位于http:// localhost:8080 / pos-json /
handshake
HTTP ERROR 404Problem accessing /pos-json/handshake. Reason: Not Found
wharf
[INFO] Classes = C:\dev\projekty\pos-backend\target\classes[INFO] Context path = pos-json
[INFO] Tmp directory = C:\dev\projekty\pos-backend\target\tmp
[INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
[INFO] Web overrides = none
[INFO] web.xml file = file:///C:/dev/projekty/pos-backend/src/main/webapp/WEB-INF/web.xml
[INFO] Webapp directory = C:\dev\projekty\pos-backend\src\main\webapp
2017-10-20 14:21:17.907:INFO:oejs.Server:main: jetty-9.4.7.v20170914
2017-10-20 14:21:23.050:INFO:oeja.AnnotationConfiguration:main: Scanning elapsed time=4520ms
2017-10-20 14:21:23.486:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2017-10-20 14:21:23.486:INFO:oejs.session:main: No SessionScavenger set, using defaults
2017-10-20 14:21:23.490:INFO:oejs.session:main: Scavenging every 660000ms
2017-10-20 14:21:24.498:INFO:oejshC.pos_json:main: Initializing Spring FrameworkServlet 'dispatcher'
2017-10-20 14:21:39,828 INFO [main] o.s.w.s.m.m.a.RequestMappingHandlerMapping Mapped "{[/handshake],methods=[POST],produces=[application/json;charset=UTF-8]}" onto public void pos.backend.device.controller.DeviceJsonController.performHandShake(java.lang.String,javax.servlet.http.HttpServletResponse) throws java.io.IOException
2017-10-20 14:21:40,167 INFO [main] o.s.w.s.m.m.a.RequestMappingHandlerAdapter Looking for @ControllerAdvice: WebApplicationContext for namespace 'dispatcher-servlet': startup date [Fri Oct 20 14:21:24 CEST 2017]; root of context hierarchy
2017-10-20 14:21:40.783:INFO:oejsh.ContextHandler:main: Started o.e.j.m.p.JettyWebAppContext@6c6366cf{pos-json,file:///C:/dev/projekty/pos-backend/src/main/webapp/,AVAILABLE}{file:///C:/dev/projekty/pos-backend/src/main/webapp/}
2017-10-20 14:21:41.017:INFO:oejs.AbstractConnector:main: Started ServerConnector@179efe9a{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
回答:
从文档有关的配置jetty-maven-
plugin是似乎在contextPath
他们认为你 ( 非常模糊的,我必须承认
)需要补充领先的斜杠"/"
,让你的Maven插件定义应为:
<plugin> <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${maven-jetty-plugin.version}</version>
<configuration>
<webApp>
<contextPath>/pos-json</contextPath>
</webApp>
<scanIntervalSeconds>0</scanIntervalSeconds>
</configuration>
</plugin>
希望这可以帮助!
以上是 在jetty-maven-plugin中未调用Spring映射的servlet 的全部内容, 来源链接: utcz.com/qa/411473.html