2013-02-06 14 views
7

WebSphereで動作するCWA 1.5からCWA 2011へのアップグレード後、クライアントで問題が発生しています。問題は、要求された任意のバイナリリソースが404を返すことである。要求が再送信されると(すなわち、ページがリフレッシュ/リロードされる)、ロードされる。Tridion CWA 2011バイナリリターン404リフレッシュするまで

私は自分の環境にアクセスできず、第三者経由ですべての設定ファイルを取得する必要があります。私はバイナリ上でこれ​​らの404を引き起こす可能性のあるものについて、誰かが頭の上に何か考えを持っているのだろうかと思っていましたか?

答えて

3

は、WebSphere 7の場合、デフォルトのサーブレットはのFileServletとして知られており、したがって、次の作業をする必要があります:あなたがTomcatの7(とTomcat 6の、おそらく最新バージョン)を使用している場合は

<servlet> 
<servlet-name>FileServlet</servlet-name> 
<servlet-class> 
com.ibm.ws.webcontainer.servlet.SimpleFileServlet 
</servlet-class> 
</servlet> 


<servlet-mapping> 
    <servlet-name>FileServlet</servlet-name> 
    <url-pattern>*.css</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>FileServlet</servlet-name> 
    <url-pattern>*.jpg</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>FileServlet</servlet-name> 
    <url-pattern>*.js</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>FileServlet</servlet-name> 
    <url-pattern>*.gif</url-pattern> 
</servlet-mapping> 
4

私がCWAを使用しているので、長い時間ですが、IIRC、それは要求に応じてディスクにバイナリをシリアル化し、そして今後の要求のためにそれらをキャッシュします。そのプロセスはちょうど時間がかかりすぎるように聞こえるので、バイナリの最初のリクエストが404になります。これまでWebSphereから聞いたことがありますが、古いCWAでも起こっていないと確信していますか?

問題が解決しない場合は、SDLカスタマーサポートにお問い合わせください。

12

Websphere 6.1以降、IBMはフィルタの動作を変更しました。呼び出し元のURLが実際にサーバーに存在しない場合、これらは実行されません。あなたはCWA対応のWebアプリケーションに期待するもの

これは、DBにまだある/somefile.pngの要求が(技術的に正しい)につながることを意味404が、完全ではありません。

ソリューションは、フィルタはサーブレットマッピングすることなく、要求に応じて呼び出すようにすることです、あなたは、WebSphere管理コンソールで次の操作を行うことができる必要があります:

  1. [サーバー]をクリックします - >サーバー・タイプ - >のWebSphere Applicationサーバー - > - > Webコンテナ設定] - > [Webコンテナ
  2. 追加設定の下では、カスタムプロパティページでカスタムプロパティ
  3. をクリックして新規作成]をクリックし、[プロパティ名として「com.ibm.ws.webcontainer.invokefilterscompatibility」と入力します値として「true」を返します。
  4. 更新を保存しcd_cwa_conf.xmlファイルでは、サーバ
3

を再起動して、あなたはまた、次のパラメータを追加することができます:クリスは、バイナリが要求された最初の時間を言ったように

<configuration> 
... 
    <!-- Number of seconds to wait for the default Servlet to pick up changes on the file-system --> 
    <file-synchronization delay="..." /> 
... 
</configuration> 

をファイルはシリアライズされ、ディスクにキャッシュされます。プロセスが長すぎる場合は、アプリケーション・サーバは、システムがファイルにアクセスする前に(つまり、指定された値)数秒間待ちます、このパラメータを404

を返します。

Tomcatサーバーで同じ問題が発生しましたが、これでpbが修正されました。

+0

もはやSeb :)この機能は、CWA 2011の最終コードでTDFから取り出されました。現在では、これを行う代わりに、DefaultServletをweb.xmlのURLパターンに明示的にマッピングしています。明らかに、404問題を修正しています。 ただし、上記の問題はその動作を参照していません。上記の問題は「リクエストごとに404を取得する」ことです。あなたと私が参照しているものは、「最初のリクエストでのみ404を取得しています」です。 –

+0

私はあまりにも質問の実際の意味で混乱していたので、私は別の答えを投稿しました... –

3

私は正確に質問が何であるかに少し混乱があると思います。だから、Nickはバイナリの最初のリクエストが404になることを説明しています。それ以降のリクエストは期待どおりにバイナリを提供します。したがって、エレナが与えた答えは実際にはこの問題の修正ではありませんが、実際にはWebSphereで具体的な設定があると言っているのは間違いありません。

デフォルトサーブレットに各URLパターンバイナリ型のweb.xmlファイルの明示的なマッピングを持っている「だけで最初の要求に404を得る」問題の答え。これはhttp://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_CWA_10/task_C1FECE85AD5E4F0BB3957C4516D7E2ACに記載されており、弾丸#6:

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.jpg</url-pattern> 
</servlet-mapping> 

ドキュメントの状態これは、JBoss、Tomcatを修正し、私もそれには、WebLogicを修正見てきました。私はそれもWebSphereを修正することを望む。お知らせください。

+0

を参照してください上記の制限はTomcat 7です。下の私の答えを参照してください。 –

1

ことに注意してください。 web.xmlファイルがマージされる方法には制限があります

私は正確な理由はわかりませんが、デフォルトのサーブレットにいくつかのマッピングを定義することはできません。このサーブレットのマッピング項目は1つだけです。

は多分これに関連して:ところでhttps://issues.apache.org/bugzilla/show_bug.cgi?id=50026

、あなたはまた、デフォルトのマッピングを再定義することによって、この制限を回避することができます。

例:以下は、Tomcat 7.0.33では動作しません。すべてのリソースに404エラーがあります。

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>/worldwide/binaries/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>/france/binaries/*</url-pattern> 
</servlet-mapping> 

次の作品は完全に

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>/worldwide/binaries/*</url-pattern> 
    <url-pattern>/france/binaries/*</url-pattern> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

それに役立つ願っています。

関連する問題