1

在之前的问题中,强制 JBoss AS 7 使用 Spring 项目中源(开发)目录中的静态文件,我要求提供 JS/CSS 文件,经过 4 小时的文档阅读和试验,我自己解决了问题。

但是我不熟悉 Spring/Servlet 内部来强制 Spring使用本地文件系统路径(开发文件)中的 JSP 文件。我尝试:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="file:/home/user/devel/app/src/main/webapp/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
</bean>

但是当我访问应用程序页面时出现错误:

HTTP Status 404 - /app/file:/home/user/devel/app/src/main/webapp/WEB-INF/jsp/index.jsp

我认为不知何故来自ServletContext.getRealPath ...

我的目标是缩短编辑-部署-测试周期。

请不要建议JRebelDCEVM或其他解决方案。直接回答就好了...

4

2 回答 2

1

切换到 Tomcat 7(从 Jboss AS 7)后,我配置上下文/opt/apache-tomcat-7.0.40/conf/Catalina/localhost/CTXNAME.xml

<Context docBase="/home/user/devel/proj-dev/src/main/webapp"
         reloadable="true">
    <Resources className="org.apache.naming.resources.VirtualDirContext"
               extraResourcePaths="/WEB-INF/classes=/home/user/devel/proj-dev/target/classes,/WEB-INF/lib=/home/user/devel/proj-dev/target/proj/WEB-INF/lib"/>
    <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
            virtualClasspath="/home/user/devel/proj-dev/target/classes;/home/user/devel/proj-dev/target/proj/WEB-INF/lib"/>
    <JarScanner scanAllDirectories="true"/>
</Context>

根据:

现在 JS/CSS/JSP 文件F5在浏览器中更新。为了使用新的.class调用mvn compile

引导调用mvn package. 上下文名称来自.xml文件名。

于 2014-02-18T09:45:01.950 回答
-1
<bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
              <property name="prefix"> 
                    <value>/WEB-INF/jsp/</value>
              </property>
              <property name="suffix">
                 <value>.jsp</value>
              </property>
</bean>

在前缀中,您必须只给出以 /WEB-INF/ 开头的相对路径

于 2013-04-24T17:06:35.347 回答