0

アプリ ([URL]) が応答しません。あなたのサイトで推奨される手順を実行しました。

この戦争をローカルの tc-server にデプロイしましたが、すべてがそこで機能しています (/people-server/rest/persons/)。[URL]/people-server/rest/persons/ から何らかの xml が返されることを期待しています。

お知らせ下さい

ダレン・レオン

4

3 に答える 3

5

アプリは実際にhttp:// [URL] / _ stax / statusに応答しています。これは、コンテナーがリクエストを適切に受信して処理できることを意味します。

アプリは/people-server/ rest / peoplesパスリクエストに対して404を返すため、これは、これらのリクエストを処理するためにコンテナによって現在ロードされているサーブレットがないことを意味します。アプリで実行時にサーブレットが構成されていない主な理由は2つあります。

  1. これらのリクエストを処理するためにサーブレットを使用してアプリを適切に構成していません(これは通常、WEB-INF / web.xmlのサーブレットおよびサーブレットパスエントリを介して行われます)。
  2. アプリの起動シーケンス中にエラーが発生し、コンテナーが構成済みのサーブレットをロードできなくなりました。

エラーがあるかどうかを判断するには、最初に確認する必要があるのはアプリのログです。エラーを投稿しなかったので、ログをすでにチェックしていて、エラーは見つからなかったと思います。

これにより、リクエストを処理するように構成されたサーブレットがないというシナリオが残ります。URLを確認したところ、プレフィックスが/ people-serverであることがわかりました。これは、ローカルに構成されたTCサーバーで使用しているコンテキストパスプレフィックスのように見えます。CloudBeesにデプロイされたアプリはルートコンテキストパスで実行されるため、次のURLを使用してみましたが、実際に応答していることがわかりました:[URL] / rest / people /

これは、/ rest / people /パスを処理するようにサーブレットが構成されていることを意味します。つまり、ローカル環境とデプロイされた環境で予想されるURLにわずかな違いがあります。

このサーブレットを/people-serverで使用できるようにする場合は、RESTサーブレットが使用するパスにこのプレフィックスを使用するようにweb.xmlを更新する必要があります。または、webappアーカイブに/people-serverのコンテキストパスを使用するapplication.xmlを使用してアプリをEARファイルとしてデプロイすることもできます。

于 2012-08-14T21:14:05.143 に答える
1

原則として、400 タイプのエラー (この場合は 404 など) は、ほぼ常にアプリの問題を示しており、通常はパス エラーとマッピングに関連しています。

500 型エラーは、アプリケーションに未処理のエラーがあることを意味します。これは次のとおりです。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

それらの原因としては、アプリケーションの起動が遅い場合や、アプリケーション (そのすべてのインスタンス) が非常に遅い (遅すぎる) 場合に 504 エラーが発生する短い期間がある場合があります。

継続的に 502 が発生する場合、これは場合によってはプラットフォームの問題を示している可能性があります (つまり、リクエストがアプリケーションに届いていないなど)。

アプリのログにエラーが表示されることがよくあります (bees app:tail がこれをストリーミングするか、コンソールを使用します)。

于 2012-08-14T23:00:11.957 に答える
0

アプリがJAX-RSを使用してjboss( "JavaEE 6 Webプロファイル")コンテナーで残りのコンテンツを提供する場合、この機能のコンテナーサポートを有効にする必要があります。このサーブレット宣言をweb.xmlに追加するだけです

<servlet>
    <servlet-name>jax-rs</servlet-name>
    <servlet-class>javax.ws.rs.core.Application</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>jax-rs</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

IDEはjavax.ws.rs.core.Applicationがサーブレットではないことを警告する場合があります。これは、実際にはJAX-RS APIからの奇妙な詳細ですが、使用する正しいクラスです。

于 2012-08-15T09:12:47.077 に答える