2016-07-15 10 views
1
  1. を与えるStruts2の静的コンテンツは:
    RewriteEngine On ProxyPass/http://demo1.example.com:8080/myApp ProxyPassReverse/....(same url as above)
  2. 後は、web.xmlです:私は、Apacheと以下のように設定されている404

    <filter> 
        <filter-name>struts2</filter-name> 
        <filter- class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
    </filter> 
    <filter> 
        <filter-name>UrlFilter</filter-name> 
        <filter-class>com.rts.utils.UrlFilter</filter-class> 
    </filter> 
    <filter-mapping> 
        <filter-name>UrlFilter</filter-name> 
        <url-pattern>*.action</url-pattern> 
    </filter-mapping>  
    <filter-mapping> 
        <filter-name>struts2</filter-name> 
        <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    
  3. 私はURLからsubdomanを読み込み、フィルタをカスタマイズしました要求を設定します:

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
    HttpServletRequest httpReq = (HttpServletRequest) request; 
    if(httpReq.getServerName() != null && httpReq.getServerName().indexOf(".") != -1) { 
         request.setAttribute("subdomain",...); 
         chain.doFilter(request, response); 
        } 
        } 
    
  4. 私はストラット2.3.8、Tomcat 6 & JDK 1.6を使用しています。 webapps/myAppの下に私のアプリケーションを配備しました。私は、アプリケーションにログインすると

私は、URL以下のための404を見ることができますし、私のページが正しくロードされていません。

http://example.com/myApp/struts/js/base/jquery-1.8.3.js 

が、私は与えずに(直接ブラウザで)上記のURLをしよう」 myApp」には、以下のように私はこれはStruts2のは右のcontextPathで静的なコンテンツを生成していないことを意味スクリプト

http://example.com/struts/js/base/jquery-1.8.3.js 

を取得していますか?

+0

:私は、問題を修正し、私のjspでのコードの下に追加しましたか?コードの関連部分をコピーできますか? – yeppe

+0

@yeppe返信いただきありがとうございます。はいサブドメイン名を読み取るための別のカスタマイズされたフィルタがあります。 ' \t UrlFilter \t <フィルタクラス> com.rts.utils.UrlFilter <のfilter-mapping> \t:そのためのコードを以下に示します UrlFilter \t * .action ' – Raju

+0

編集あなたの質問とあなたが何のweb.xml /アプリケーション/などから – yeppe

答えて

0

最後に私はこの問題の解決策を見つけました。私はここに投稿したかったので、誰かを助けるかもしれません。

<sj:head />このトリックはタグで、静的コンテンツをjarファイルからコピーするのに役立ちます。我々はROOTとしてアプリケーションを配布する場合

は、私達はちょうど私たちがWebアプリケーションに/て、myAppに、<sj:head/>コピーコンテンツをMyApp]を展開する場合、これは<context>/struts/...

にコンテンツをコピーします<sj:head/>を追加する必要がありますが、ためのフレームワークを検索"/ struts/.."は利用できません。

解決策:<sj:head>タグには「scriptPath」という属性があり、コンテンツをコピーする場所をフレームで指示します。あなたが他のフィルタを持っているん

<sj:head compressed="false" scriptPath="/struts/"/>

関連する問題