当前位置: 首页 > 知识库问答 >
问题:

找不到页面。Spring MVC+Jetty

益银龙
2023-03-14

我试图用包含jsp和@Controller的Spring MVC启动Jetty。在启动jetty之后,如果我试图调用任何页面,我会得到每次警告。例如:

TTP://localhost:8080/GetMessageStats/

在名为“org.springframework.web.servlet.DispatcherServlet”的DispatcherServlet中找不到URI为[/resources/css/bootstrap.min.css]的HTTP请求的映射,在名为“org.springframework.web.servlet.DispatcherServlet-57ad85ed”的DispatcherServlet中找不到URI为[/resources/js/bootstrap.min.js]的HTTP请求的映射

web.xml

<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<display-name>Spring MVC Application</display-name>

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/cloud/*</url-pattern>
</servlet-mapping>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

mvc-dispatcher-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc.xsd">

<context:component-scan base-package="net.cloud.web.statistics"/>

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".jsp"/>
</bean>

<mvc:resources mapping="/resources/**" location="/resources/" />

<mvc:annotation-driven />

WebServer.Class

public class WebServer {
private static final Logger log = LoggerFactory.getLogger(WebServer.class);

private static final String CONTEXT_PATH = "/";
private Server httpServer;

@Value("${http_statistics_port}")
private Integer port;

@Value("${start_page_path}")
private String startPagePath;

public void init() {
    try {
        httpServer = new Server(port);
        httpServer.setHandler(getServletContextHandler());
        httpServer.setStopAtShutdown(true);

        httpServer.start();
        log.info("WebServer start ...");
        httpServer.join();

    } catch (Exception ex) {
        log.error("Exception in http server. Exception: {}", ex.getMessage());
    }

}

private static ServletContextHandler getServletContextHandler() throws IOException {
    WebAppContext contextHandler = new WebAppContext();
    contextHandler.setErrorHandler(null);
    contextHandler.setContextPath(CONTEXT_PATH);

    WebApplicationContext context = getContext();

    contextHandler.addServlet(new ServletHolder(new DispatcherServlet(context)), CONTEXT_PATH);
    contextHandler.addEventListener(new ContextLoaderListener(context));
    contextHandler.setResourceBase(new ClassPathResource("webapp").getURI().toString());
    contextHandler.setDescriptor("/webapp/WEB-INF/web.xml");
    return contextHandler;
}

private static WebApplicationContext getContext() {
    AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
    context.setConfigLocation("webapp/WEB-INF/");
    log.info("CONTEXT name {} locations {}", context.getDisplayName(), context.getConfigLocations());

    return context;
}
    @Controller
@RequestMapping("/getMessageStats")
public class GetMessageStatsController {

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String printWelcome(ModelMap model) {

        GetMessageStatsRPC rpc = new GetMessageStatsRPC();

        model.addAttribute("result", rpc.getResult());

        return "getMessageStats";
    }

    @RequestMapping(value = "/json", method = RequestMethod.GET)
    public @ResponseBody
    String generateJsonResponse() {

        GetMessageStatsRPC rpc = new GetMessageStatsRPC();

        return rpc.getResult().toString();
    }
}

共有1个答案

司徒阳曜
2023-03-14

首先,在部署应用程序时,它检查web.xml并获取

/*

然后初始化DispatcherServlet,并使用

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>

最后,在您的控制器中@requestmapping(“/GetMessageStats”)

因此,最终将应用程序启动为

http://localhost:8080/ProjectName/getMessageStats/

调用GetMessagesStatsController的printWelcome()和

 http://localhost:8080/ProjectName/getMessageStats/json
 类似资料:
  • 这是我在SpringMVC中使用Maven的第一个应用程序。下面是应用程序结构。 控制器代码: 当我点击index.jsp中的链接时,页面应该被遍历到helloworld.jsp

  • 我有以下错误 未找到页面(404)请求方法:GET请求URL:http://127.0.0.1:8000/使用Decoder.urls中定义的URLconf,Django尝试了这些URL模式,顺序如下:form.html[name='form1']hl7[name='hl7']空路径与这些都不匹配。您会看到这个错误,因为您的Django设置文件中有DEBUG=True。将其更改为False,Dja

  • 问题内容: 我有一个应用程序,它使用一个ng-view和多个控制器和视图。如果我浏览根目录,例如:www.domain.com,则一切正常。除非我按Ctrl +R(刷新),否则会显示404错误页面未找到。例如:刷新此页面给我错误。http://domain.com/item/1/。 但是,如果我使用hashbang访问页面,则它可以工作。例如:http://domain.com/#!/item/1

  • 我在服务器上上传了我的网站,我的网站运行良好。但我有个问题。 当我从路由转到路由时,组件也被加载了。但是当我复制我的组件url时,我得到了。 例如,当我复制/粘贴此url时: http://test.shadyab.com/offers/Arya-Ceremonial-Pool-VIP-off 我有一个。 我的路线: 我的应用程序。js: 即使用户想要刷新当前网页,也会收到404错误。 我的服务器

  • 我还添加了我的pom.xml 我创建了一个responseBody,然后Spring找到了上面写的内容。但当我试图找到一页时,Spring却找不到。Spring正在映射我的类..

  • 我正在维护一个使用iText 2.1.7创建PDF的web应用程序。我想获取现有PDF的内容,并将其放入PDF文档中,代码正在创建中。我有以下(编辑:更完整的代码): 这将引发一个错误来自 我怎么用错了?如何从现有文档中获取一个页面并放入当前文档中?请注意,我并不是在一个可以方便地将文件作为临时存储或其他东西写入的地方。