Webサービス

この章は、Webサービスで送出する例外のメッセージと対処方法について説明します。

7. WebOTX Webサービス(JAX-WS)

7.1. Webサービス本体

7.1.1. 例外メッセージ

JAX-WSが出力するエラーメッセージと、その対処方法について説明します。

WSSERVLET11: failed to parse runtime descriptor: <detail>
[可変情報]
<detail> : エラーの詳細
[説明]
JAX-WSの配備記述子(nec-jaxws.xml)を読み込んだ時にエラーが発生した場合に出力されます。
[対処]
<defail>のエラーメッセージの内容を確認の上、ネームスペース記述や、要素の整合性など、配備記述子の内容を確認してください。
WSSERVLET16: missing context information
[説明]
Webサービスランタイムのサーブレット初期化時に、そのサーブレットからWebサービスのエンドポイント情報が見つからない場合に出力されます。
[対処]
JAX-WSの配備記述子(nec-jaxws.xml)の<endpoints>要素に<endpoint>要素が含まれるか確認してください。
WSSERVLET17: duplicate endpoint name
[説明]
JAX-WSの配備記述子(nec-jaxws.xml)に同じname属性をもつ複数のエンドポイント情報がある場合に出力されます。
[対処]
配備記述子の<endpoint>要素のname属性に重複がないか確認してください。
WSSERVLET26: duplicate URL pattern in endpoint:<endpoint_name>
[可変情報]
<endpoint_name> : エンドポイント名
[説明]
同じ名前のエンドポイントURLが登録された場合に出力されます。
[対処]
<endpoint_name>に出力されているエンドポイント名を確認の上、JAX-WSの配備記述子(nec-jaxws.xml)の<endpoint>要素のurl-pattern属性が重複していないか確認してください。
WSSERVLET27: unsupported implicit URL pattern in endpoint: <endpoint_name>
[可変情報]
<endpoint_name> : エンドポイント名
[説明]
エンドポイントURLが暗黙URL(URLに"*."を利用している)の場合に出力されます。暗黙URLはサポートしていません。
[対処]
<endpoint_name>に出力されているエンドポイント名を確認の上、JAX-WSの配備記述子(nec-jaxws.xml)の<endpoint>要素のurl-pattern属性の内容を確認してください。
WSSERVLET43: failed to instantiate service implementor for port <web_services_endpoint_class>
[可変情報]
<web_services_endpoint_class> : Webサービスエンドポイントクラス名
[説明]
<web_services_endpoint_class>で定義されているWebサービスエンドポイントクラスを生成するときに、コンストラクタにアクセスできなかった場合や、抽象クラス、インタフェースを指定していた場合などに出力されます。
[対処]
Webサービスエンドポイントクラスの実装を確認してください。
WSSERVLET50: caught throwable during servlet initialization: <detail>
[可変情報]
<detail> : エラーの詳細
[説明]
Webサービスランタイムのサーブレットの初期化時にエラーが発生した場合に出力されます。
[対処]
<defail>のエラーの内容を確認の上、配備記述子(nec-web.xml,nec-jaxws.xml,web.xml)が配備したwarファイルに含まれているか、またその配備記述子の記述が正しいか確認してください。

8. WebOTX Webサービス(JAX-RS)

8.1. Webサービス本体

8.1.1. 例外メッセージ

JAX-RSが出力するエラーメッセージと、その対処方法について説明します。

A (sub-)resource method,<method_info>, should have only one HTTP method designator. It currently has the following designators defined:<method_id>
[ログレベル]
INFO
[可変情報]
<method_info> : リソースメソッドのアクセス修飾子、戻り値の型、メソッド名
<method_id> : 使用しているメソッド識別子。例えば、@GETとPOSTを指定した場合の内容は[@jakarta.ws.rs.GET(), jakarta.ws.rs.POST()]になる。
[説明]
1つのリソースメソッドに、2つ以上のHTTPメソッド識別子が使用されています。
[対処]
リソースメソッドにはHTTPメソッド識別子を1つだけ使用してください。
Mapped exception to response: 405
jakarta.ws.rs.WebApplicationException
[ログレベル]
INFO
[説明]
以下のいずれかになります。
(1)HTTPリクエストに対し、ディスパッチするリソースメソッドが一つも存在しない
(2)リソースメソッドに定義する@HttpMethodアノテーションに指定するメソッド名がGET、POST、PUT、DELETE、HEAD、OPTIONS以外である
(3)HTTPリクエストに対し、リクエストメソッドはリソースメソッドで定義されていない、または一致していない
[対処]
(1)リソースメソッドを追加してください。
(2)@HttpMethodアノテーションに指定するメソッド名をGET、POST、PUT、DELETE、HEAD、OPTIONSのいずれかに修正してください。
(3)HTTPリクエストに対し、リクエストメソッドはリソースメソッドで定義されているか、または一致しているか確認ください。
A resource method,<method_info>, MUST be public scoped otherwise the method is ignored
[ログレベル]
INFO
[可変情報]
<method_info> : リソースメソッドのアクセス修飾子、戻り値の型、メソッド名
[説明]
リソースメソッドはpublic以外のメソッドです。
[対処]
リソースメソッドをpublicメソッドに変更してください。
Producing media type conflict. The resource methods<method_info> can not produce the same media type
[ログレベル]
INFO
[可変情報]
<method_info> : リソースメソッドのアクセス修飾子、戻り値の型、メソッド名
[説明]
2つ以上のリソースメソッドまたはサブリソースメソッドのリクエストメソッドの識別子、パス、MIMEメディアタイプなどが同じです。
[対処]
リソースメソッドまたはサブリソースメソッドのリクエストメソッドの識別子、パス、MIMEメディアタイプのいずれかを他のリソースメソッド(サブリソースメソッド)と違うものに変更してください。
The RuntimeException could not be mapped to a response, re-throwing to the HTTP container
com.nec.webotx.jersey.spi.inject.Errors$ErrorMessagesException
[ログレベル]
INFO
[説明]
2つ以上のリソースメソッドまたはサブリソースメソッドのリクエストメソッドの識別子、パス、MIMEメディアタイプなどが同じです。
[対処]
リソースメソッドまたはサブリソースメソッドのリクエストメソッドの識別子、パス、MIMEメディアタイプのいずれかを他のリソースメソッド(サブリソースメソッド)と違うものに変更してください。
Mapped exception to response: 415 (Unsupported Media Type)
jakarta.ws.rs.WebApplicationException
[ログレベル]
INFO
[説明]
HTTPリクエストのContent-Typeヘッダが、どのConsumesアノテーションにも一致していません。
[対処]
HTTPリクエストのContent-Typeヘッダに一致するConsumesアノテーションがあるか確認ください。
jakarta.ws.rs.WebApplicationException:java.lang.IllegalArgumentException: Error parsing media type<media_type>
[ログレベル]
INFO
[可変情報]
<media_type> : 受信メッセージのメディアタイプ
[説明]
受信メッセージのメディアタイプのフォーマットは正しくありません。
[対処]
受信メッセージのメディアタイプのフォーマットか正しいか確認ください。
No provider classes found.
[ログレベル]
INFO
[説明]
以下のいずれかになります。
(1)@Consumesあるいは@Producesアノテーションに設定した値において、フォーマットが正しくないMIMEメディアタイプを設定している。
(2)リソースロケータのパラメータのうち、@DefaultValueアノテーションで指定しているデフォルト値の型は、該当パラメータの型と一致していない。
[対処]
(1)@Consumesあるいは@Producesアノテーションに設定した値において、フォーマットが正しいMIMEメディアタイプに変更ください。
(2)@DefaultValueアノテーションで指定しているデフォルト値の型は、該当パラメータの型と一致させてください。
Mapped exception to response: 406 (Not Acceptable)
jakarta.ws.rs.WebApplicationException
[ログレベル]
INFO
[説明]
リソースが設定した@ProducesアノテーションのメディアタイプはHTTPリクエストのAcceptヘッダの値と一致していません。
[対処]
リソースが設定した@ProducesアノテーションのメディアタイプはHTTPリクエストのAcceptヘッダの値と一致させてください。
The media type format is error:<media_type>
[ログレベル]
INFO
[可変情報]
<media_type> : 受信メッセージのメディアタイプ
[説明]
@Producesアノテーションに設定する値に正しくないMIMEメディアタイプを設定しています。
[対処]
@Producesアノテーションに設定する値のフォーマットが正しいか確認ください。
A (sub-)resource method,<method_info>, should have only one HTTP method designator. It currently has the following designators defined: ,<method_designator>
[ログレベル]
INFO
[可変情報]
<method_info> : リソースメソッドのアクセス修飾子、戻り値の型、メソッド名
<method_designator> : HTTPメソッドの識別子
[説明]
1つのリソースメソッドに対し、2つ以上のリクエストメソッド識別子を使用しています。
[対処]
リクエストメソッド識別子は1つだけにしてください。
jersey.api.NotFoundException: null for uri:<uri>
[ログレベル]
INFO
[可変情報]
<uri> : HTTPリクエストのURI
[説明]
HTTPリクエストに対し、リクエストメソッドはリソース?メソッドで定義されていない、または一致していません。
[対処]
HTTPリクエストに対し、リクエストメソッドはリソース?メソッドで定義されているか、または一致しているか確認ください。
A sub-resource locator, <locator_info>, can not have an entity parameter. Try to move the parameter to the corresponding resource method
[ログレベル]
INFO
[可変情報]
<locator_info> : サブリソースロケータのアクセス修飾子、戻り値の型、メソッド名
[説明]
サブリソースロケータのパラメータとしてエンティティパラメータを使用しています。
[対処]
サブリソースロケータのパラメータとしてエンティティパラメータは使用できません。パラメータの削除あるいはアノテーションパラメータを変更してください。
A sub-resource locator,<locator_info>, MUST be public scoped otherwise the method is ignored
[ログレベル]
INFO
[可変情報]
<locator_info> : サブリソースロケータのアクセス修飾子、戻り値の型、メソッド名
[説明]
サブリソースロケータはpublic以外のメソッドです。
[対処]
サブリソースロケータをpublicメソッドに変更してください。
A sub-resource locator, <locator_info>, MUST return a non-void type.
[ログレベル]
INFO
[可変情報]
<locator_info> : サブリソースロケータのアクセス修飾子、戻り値の型、メソッド名
[説明]
サブリソースロケータの戻り値の型がvoidです。
[対処]
サブリソースロケータの戻り値の型をvoid以外に変更してください。
com.nec.webotx.jersey.api.NotFoundException: null for uri:<uri>
[ログレベル]
INFO
[可変情報]
<uri> : HTTPリクエストのURI
[説明]
サブリソースロケータの戻り値はnullです。
[対処]
サブリソースロケータの戻り値はnullにできません。null以外を返却するようにしてください。
A HTTP GET method,<method_info>MUST return a non-void type.
[ログレベル]
INFO
[可変情報]
<method_info> : リソースメソッドのアクセス修飾子、戻り値の型、メソッド名
[説明]
httpメソッドがGETの場合、戻り値の型は「void」以外でなければなりません。
[対処]
戻り値の型を「void」以外に変更してください。