无法访问Tomcat 7中的Web应用程序资源

时间:2012-10-08 16:22:00

标签: javascript spring-mvc spring-security tomcat7 javascriptmvc

我正在使用SpringMVC和JavascriptMVC制作一个示例Web应用程序,部署了Tomcat 7.我在我的应用程序中集成了Spring安全性和Spring MVC我得到了Mkyong的这篇文章的帮助 http://www.mkyong.com/spring-security/spring-security-form-login-using-database/ 现在我的应用程序在tomcat上部署时运行正常,但现在我想在我的应用程序中添加Client Side MVC,即JavascriptMVC,我想在我的应用程序中添加js文件等脚本资源。

以下是我的应用程序流程,用户使用

启动应用程序

“// localhost:8080 / SpringMVC(应用程序名称)/ welcome(/ welcome由控制器重定向到hello.jsp页面)”

这显示登录页面,一旦用户凭据写入,他就会进入hello.jsp页面。在这个页面中我添加了我的JacascriptMVC代码并在标签中引用了一个js文件,并且应用程序在我的浏览器本地运行良好但是当我在tomcat上部署它时它说资源不可访问404错误并且只显示基本的html,而不能访问js和css文件。

我尝试了很多方法来访问资源,比如

<script src='./WebContent/javascriptmvc/steal/steal.production.js'/>

<script src='WebContent/javascriptmvc/steal/steal.production.js'/>

<script src='/WebContent/javascriptmvc/steal/steal.production.js'/>
但都犯了同样的错误。

我的war文件的应用程序目录结构

-SpringMVC
  -WEB-INF
    -pages
    -hello.jsp
    -login.jsp 
  -META-INF
  -WebContent
    -javscriptmvc
      -steal
         -steal.production.js

任何帮助都将非常感谢,谢谢。 法赫德

2 个答案:

答案 0 :(得分:0)

您的Spring MVC调度程序servlet必须在/右侧 -

注册
<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping> 

如果是这样,也将<mvc:default-servlet-handler />添加到您的上下文中,这将调用静态资源到容器的默认servlet而不是Spring试图处理它

此外,请使用以下绝对路径引用您的资源:

<script src='${pageContext.request.contextPath}/WebContent/javascriptmvc/steal/steal.production.js'/>

答案 1 :(得分:0)

我得到了解决问题,感谢响应的人.... 我在servlet xml文件中添加了这段代码,

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:util="http://www.springframework.org/schema/util"   
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:oxm="http://www.springframework.org/schema/oxm"
       xsi:schemaLocation="http://www.springframework.org/schema/oxm    
    http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/util
    http://www.springframework.org/schema/util/spring-util-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="com.mkyong.common.controller" />
<mvc:annotation-driven />
<mvc:resources mapping="/resources/**" location="/resources/" />

然后在jsp文件中我添加了这个来加载js文件

<script type='text/javascript' src="${pageContext.request.contextPath}/resources/javascriptmvc/steal/steal.production.js"></script>

我也改变了目录strcuture

-webapps
    -WEB-INF
        -web.xml
        -mvc-dispatcher0servlet.xml
        -pages
            -hello.jsp
    -resources
        -javscriptmvc
            -steal
                -steal.production.js