1

前の質問で、JBoss AS 7にSpringプロジェクトのソース(開発)ディレクトリからの静的ファイルを使用させることで、JS / CSSファイルを要求し、4時間のドキュメントを読んで実験した後、自分で問題を解決します。

しかし、Springがローカルファイルのシステムパス(開発ファイル)からJSPファイルを使用するように強制するSpring/Servletの内部に精通していません。私は試してみます:

<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から来ていると思います...

私の目標は、edit-deploy-testサイクルを短くすることです。

JRebel 、 DCEVM 、またはその他のソリューションを提案しないでください。正解です...

4

2 に答える 2

1

(Jboss AS 7 から) Tomcat 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がブラウザで更新されるようになりました。new .classinvokeを使用するためmvn compile

ブートストラップするには、 invoke を実行し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 に答える