-2

我在 Spring MVC 中遇到问题。我无法在服务器上将 JSP 作为视图运行...我上传了所有库,但在服务器上运行视图时出现以下错误:

2013 年 9 月 29 日上午 10:53:22 org.apache.catalina.core.AprLifecycleListener init INFO:在 java.library.path 上找不到基于 APR 的 Apache Tomcat Native 库,该库允许在生产环境中获得最佳性能>环境:C: \长路....

[SetContextPropertiesRule]{Context} 将属性 'source' 设置为 >'org.eclipse.jst.jee.server:SpringMVC' 没有找到匹配的属性。

网页.xml:

<web-app id="WebApp_ID" 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>HelloWeb</servlet-name>
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
     <servlet-name>HelloWeb</servlet-name>
     <url-pattern>/</url-pattern>
     </servlet-mapping>
</web-app>

HelloWeb-servlet.xml:

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

  <context:component-scan base-package="Controllers" />

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

</beans>

如下控制器名称是 HelloController.java

package Controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.ui.ModelMap;

 @Controller
 @RequestMapping("/hello")
 public class HelloController{

    @RequestMapping(method = RequestMethod.GET)
    public String printHello(ModelMap model) {
        model.addAttribute("message", "Hello Spring MVC Framework!");
        return "hello";
    }
 }

如下图一个视图名称是 hello.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
         <title>Hello World</title>
   </head>
   <body>
      <h2>${message}</h2>
   </body>
 </html>
4

1 回答 1

1

最有可能的解决方法:看起来您的web.xml<url-pattern>中需要 /* 或类似的(不仅仅是 /) 。<servlet-mapping>/hello 不会按原样转到 Spring DispatcherServlet。

APR 消息并不重要——它是一个性能警告,不会阻止您的应用程序运行。


警告:[SetPropertiesRule]{Server/Service/Engine/Host/Context} 将属性 'source' 设置为 'org.eclipse.jst.jee.server:SpringMVC' 没有找到匹配的属性。

这可能是也可能不是问题。请参阅:从 Eclipse 启动 Tomcat 时出现“SetPropertiesRule”警告消息

您的上下文是否无法加载?查找来自 Tomcat 的最终错误消息。严重错误会阻止上下文加载,整个 webapp 将无法运行。在上下文中尝试静态 index.html 页面,看看您是否可以查看它——静态页面/资源仅在上下文运行时提供。

如果上下文未加载,您将需要修复阻止它的问题。

如果上下文加载正常,则可能是您的应用程序中的 URL/配置问题

于 2013-09-29T10:49:15.453 回答