春季3.1:获得

时间:2012-03-05 17:07:50

标签: java spring

我是Spring的新手。我正在学习Spring 3.1。我正在使用“Spring In Action,第3版......我找不到静态资源的问题。这本书没有多说,所以我想知道我是否能得到一些帮助。

  • 我的申请名称是“abc”
  • 网址类似于“https://blah.blah.blah/abc
  • 我在 WebLogic 9.2
  • 上运行“abc”
  • 我正在将“abc”部署为“abc.war”

我的“abc.war”里面的目录结构是

WEB-INF 
   classes
   lib
   web.xml
   webLogic.xml
   abc-servlet.xml
css
images
js
jsp
META-INF

在我的web.xml中,我的调度程序servlet定义如下:

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

  <servlet-mapping>
    <servlet-name>abc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

.....这是我的abc-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"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xsi:schemaLocation="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/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd">

  <context:component-scan base-package="org.company.abc.controllers" />

  <mvc:resources mapping = "/**" location = "/"/>
  <mvc:annotation-driven/>

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

</beans>

我已经尝试将我的静态资源放在我的webapp根目录下的“资源”目录下,但这没有任何区别(当我这样做时,我将标记更改为<mvc:resources mapping = "/resources/**" location = "/resources"/>)。

基本上,abc webapp没有找到任何静态资源。

它认为图片“header.png”在

- htts://blah.blah.blah/images/header.png

因此图像显示为空白,但是当我将此URL粘贴到浏览器中时,我可以获得图像

- htts://blah.blah.blah/**abc**/images/header.png

我还没有找到办法让Spring将“abc”粘贴到该URL中。

我是一个带有Spring的全新白色腰带,所以宝贝在帮助我解决这个问题时的建议不会被视为侮辱:)

提前感谢您提供任何帮助

史蒂夫

1 个答案:

答案 0 :(得分:0)

我在Tomcat 6中尝试过我的东西并且运行良好(这不是第一次在WebLogic,FWIW中更难)。

我谷歌周围发现了这个

http://forum.springsource.org/showthread.php?102166-mvc-resources-and-war-on-Weblogic/page2

解释WebLogic和Spring 3. *有未解决的问题。

作为Spring和WebLogic的新手,我并不了解其中的大部分内容。

我注意到我的所有静态内容都会映射到

  • https:/blah.blah.blah/abc/images/myimage.png

但春天会认为它是

  • https:/blah.blah.blah/images/myimage.png

所以,

  • 我将我的mvc标记设置为<mvc:resources mapping = "/resources/**" location = "/resources"/>
  • 然后在我使用spring的新文件中,我将路径更改为../abc/images/myimage.png

一切正常。遗留文件仍在使用遗留代码中的路径查找战争根目录下的静态资源和新的Spring文件(我正在逐步将abc从Servlet webapp转换为Spring webapp)将它们发现为ell。 / p>

它是一个黑客和它的原油,但它让我现在去了