0

Struts 2 を使用して、glassfish で webapp を実行しています。私の web.xml ファイルには、次のフィルターがあります。

StrutsPrepareFilterSiteMeshFilterStrutsExecuteFilter

それは正常に動作します。

問題は、ファイルのアップロードを行う必要があることです。何らかの理由で Tomcat では動作しますが、GlassFish ではアクションでファイルが null になります。

フィルターを次のように変更すると:

ActionContextCleanUpSiteMeshFilterFilterDispatcher

できます。事実はそれで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>

準備フィルターと実行フィルターを別々に使用すると、同じことが起こります。

4

2 に答える 2

0

問題が解決しました。Linux でのグラスフィッシュのアクセス許可に問題がありました。私はEclipseプラグインを使用してglassfishをインストールしました。Glassfish を root として手動でインストールし、サーバーを Eclipse に追加することで問題が解決しました。

于 2012-12-27T14:38:24.917 に答える