(10)Dubbo2.6.x開発restスタイルインタフェースで出会ったピットのまとめ
前節ブログ『(9)Dubbo 2.6.x開発restスタイルのサービスインタフェース』ではrestサービスインタフェースの開発方法を紹介しましたが、この過程でいくつかの穴に遭遇しました.
1:サービス消費者呼び出し時報エラー(消費者も実際に呼び出しに成功した):java.lang.RuntimeException: RESTEASY004600: You must use at least one, but no more than one http method annotation on: public abstract java.lang.Long com.wkp.service.rest.UserService.addUser(com.wkp.model.User)
説明:これはrest関連のannotationラベルが実装クラスに追加されているため、rest関連の注釈をインタフェースに変更すれば解決できます.
2:消費者呼び出しに失敗し、サービスプロバイダがエラーを報告:org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: com.wkp.model.User of media type: application/json;charset=UTF-8
説明:これはDubboサービスプロバイダがrest関連のjson解析依存性に欠けているため、要求されたjsonパラメータを識別できず、サービスプロバイダがresteasy-jackson-provider依存性を追加すれば解決できる
xmlリクエストパラメータをサポートする場合はresteasy-jaxb-providerの依存も追加します
3:サービス消費者呼び出しエラー(消費者も実際に呼び出しに成功した):java.lang.IllegalStateException: Unsupported protocol rest in notified url: rest://169.254.68.252:8080/restApi/com.wkp.service.rest.UserService......
説明:これはDubbo消費者がrest依存を追加していないため、以下のpom依存を追加すればよい
はい、中の穴はしばらくここまで紹介して、もし新しい穴があれば、伝言を歓迎して補充します!
1:サービス消費者呼び出し時報エラー(消費者も実際に呼び出しに成功した):java.lang.RuntimeException: RESTEASY004600: You must use at least one, but no more than one http method annotation on: public abstract java.lang.Long com.wkp.service.rest.UserService.addUser(com.wkp.model.User)
説明:これはrest関連のannotationラベルが実装クラスに追加されているため、rest関連の注釈をインタフェースに変更すれば解決できます.
2:消費者呼び出しに失敗し、サービスプロバイダがエラーを報告:org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: com.wkp.model.User of media type: application/json;charset=UTF-8
説明:これはDubboサービスプロバイダがrest関連のjson解析依存性に欠けているため、要求されたjsonパラメータを識別できず、サービスプロバイダがresteasy-jackson-provider依存性を追加すれば解決できる
org.jboss.resteasy
resteasy-jackson-provider
3.0.19.Final
xmlリクエストパラメータをサポートする場合はresteasy-jaxb-providerの依存も追加します
org.jboss.resteasy
resteasy-jaxb-provider
3.0.19.Final
3:サービス消費者呼び出しエラー(消費者も実際に呼び出しに成功した):java.lang.IllegalStateException: Unsupported protocol rest in notified url: rest://169.254.68.252:8080/restApi/com.wkp.service.rest.UserService......
説明:これはDubbo消費者がrest依存を追加していないため、以下のpom依存を追加すればよい
org.jboss.resteasy
resteasy-jaxrs
3.0.19.Final
org.jboss.resteasy
resteasy-client
3.0.19.Final
はい、中の穴はしばらくここまで紹介して、もし新しい穴があれば、伝言を歓迎して補充します!