Struts 2 を使用して、glassfish で webapp を実行しています。私の web.xml ファイルには、次のフィルターがあります。
StrutsPrepareFilter
、
SiteMeshFilter
、
StrutsExecuteFilter
それは正常に動作します。
問題は、ファイルのアップロードを行う必要があることです。何らかの理由で Tomcat では動作しますが、GlassFish ではアクションでファイルが null になります。
フィルターを次のように変更すると:
ActionContextCleanUp
、
SiteMeshFilter
、
FilterDispatcher
できます。事実はそれでActionContextCleanUp
ありFilterDispatcher
、非推奨です。
だから私は2つの質問があります.glassfishファイルのアップロードの問題を知っている人はいますか?
ファイルが失われている場所を確認するためにフィルターをデバッグしようとしていますが、フィルターのどこにパラメーターがあるかわかりません。フィルターは、Tomcat でもパラメーターなしで httpservletrequest を受け取ります。
フィルターで送信されたパラメーターはどこにありますか?
同じ問題が発生しているテスト プロジェクトを作成しました。ファイルは一時フォルダーにアップロードされた後、失われます。
これが web.xml です。
<welcome-file-list>
<welcome-file>upload.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>exec</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>exec</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
準備フィルターと実行フィルターを別々に使用すると、同じことが起こります。