0

Junitクライアントを使用してJSONベースのWebサービスをテストしようとしています。no-arg default constructor' on my request object and its super class (AMessageStrategy). When I add theno-argデフォルトコンストラクターがないためにClientHandlerExceptionが発生しますto both of them the server throws a exception。タイプ[simpletype、class javax.xml.bind.JAXBElement]:`に適したコンストラクターが見つかりません。これで修正されました。

理想的には、私は持っている必要はありませんno-arg default constructor。問題は、それを回避する方法があるかどうかです。オブジェクトをjsonにシリアル化する必要があります。オブジェクトには、メッセージIDとメッセージデータの2つのメインフィールドがあります。メッセージデータはpojoです。

リクエストクラスに@XmlRootElementを追加しました(ただし、フィールドにアノテーションはありません)。

アドバイスしてください、私はちょっと立ち往生しています。そして、私はJavaEEの初心者です。これについてさらに情報が必要な場合はお知らせください。

com.sun.jersey.api.client.ClientHandlerException: javax.ws.rs.WebApplicationException: com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions
com.mcruiseon.common.message.request.RegistrationRequest does not have a no-arg default constructor.
    this problem is related to the following location:
        at com.mcruiseon.common.message.request.RegistrationRequest
com.mcruiseon.common.message.AMessageStrategy does not have a no-arg default constructor.
    this problem is related to the following location:
        at com.mcruiseon.common.message.AMessageStrategy
        at com.mcruiseon.common.message.request.RegistrationRequest

    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:151)
    at com.sun.jersey.api.client.Client.handle(Client.java:648)
    at com.sun.jersey.api.client.WebResource.handle(WebResource.java:680)
    at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
    at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:568)
    at test.carpool4all.Registration.testPost(Registration.java:74)
4

1 に答える 1

0

RegistrationRequestはPOJOではありません。理想的には、それが機能するためのPOJOである必要があります。

于 2012-10-23T20:13:31.577 に答える