在jetty-maven-plugin中未调用Spring映射的servlet [英] Spring mapped servlet not called in jetty-maven-plugin

查看:145
本文介绍了在jetty-maven-plugin中未调用Spring映射的servlet的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

必须从迁移到.我可以看到使用jetty:run启动码头时已部署上下文,正在初始化应用程序,但未找到servlet.它可以与maven-jetty-plugin一起正常使用.

I had to migrate from maven-jetty-plugin to jetty-maven-plugin. I can see that the context is deployed when I start jetty with jetty:run, the app is being initialized but the servlet is not found. It works correctly with 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>

行家

        <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 404
Problem accessing /pos-json/handshake. Reason:   Not Found

码头

[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}

推荐答案

来自,以便您的maven插件定义应为:

From the documentation about the configuration of jetty-maven-plugin is seems that in contextPath they suggest that you probably (very vague I must admit) need to add leading forward-slash "/", so that your maven plugin definition should read:

    <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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆