1

Apache CXF を使用して REST Web サービスを実装しようとしていますが、サーバーからの応答としてオブジェクトのリストを返したいと考えています。そのため、一般的なエンティティを使用してサーバー上のリストをラップしましたが、ブラウザーからパスを入力するとすべて問題ありません。Jackson JAX-B を使用したため、オブジェクトの XML 表現を出力しますが、JAX-RS クライアントを使用しようとすると。例外が発生しています。

スレッド「メイン」での例外 javax.ws.rs.client.ResponseProcessingException: データの読み取りに問題があります。クラス XYZ、ContentType: /. at org.apache.cxf.jaxrs.impl.ResponseImpl.reportMessageHandlerProblem(ResponseImpl.java:433) at org.apache.cxf.jaxrs.impl.ResponseImpl.doReadEntity(ResponseImpl.java:378) at org.apache.cxf.jaxrs.impl.ResponseImpl.readEntity(ResponseImpl.java:325) at org.apache.cxf.jaxrs.impl.ResponseImpl.readEntity(ResponseImpl.java:313) at XYZ.ABC() at XYZ.ABC() Caused by: javax.ws.rs.core.NoContentException: Message body is empty at org.apache.cxf.jaxrs.provider.AbstractJAXBProvider.reportEmptyContentLength(AbstractJAXBProvider.java:276) at org.apache.cxf.jaxrs.provider.JAXBElementProvider.readFrom(JAXBElementProvider.java:166) at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBodyReader(JAXRSUtils.java:1325) at org.apache.cxf.jaxrs.impl.ResponseImpl.doReadEntity(ResponseImpl.java:369) ... 4 more

サーバーからデータを取得するために、次のクライアントコードを作成しました final Client client = ClientBuilder.newClient(); WebTarget webTarget = client.target(URI.create(PATH)); Response response = webTarget.request(MediaType.APPLICATION_XML).get(); List<ABC> obj = response.readEntity(new GenericType<List<ABC>> (ABC.class){});

しかし、それとは別に、CXFクライアントを実装してサーバーからデータを取得するために多くのコードを試しましたが、ほぼ常に同じ例外が発生しています。クライアントを実装するために JAXRSCLIENTFactory も試しましたが、同じ例外がありました。

4

1 に答える 1