2016-03-18 16 views
1

私はBroadleaf eCommerceに組み込まれているREST APIを使用しようとしています。サイトの指示に/WEB-INF/applicationContext-rest-api.xmlへの参照を追加すると言いますが、web.xmlには/WEB-INF/applicationContext-rest-api.xmlは存在しません。 @phillipuniverseによってrenamed on January 14, 2015でした。現在のweb.xmlは、DemoSite has a referenceから新しいファイル名(applicationContext-rest-api-security.xml)までです。したがって、RESTを有効にするために何もする必要はないようです。デフォルトで有効になっています。Broadleaf REST APIを使用するにはどうすればよいですか?

私はそれらにアクセスしようとすると、しかし、私が手:

org.springframework.web.HttpMediaTypeNotSupportedException:コンテンツタイプ 'nullを' 私は本当にのContentを送っています

をサポートしていませんヘッダーを入力します。これはknown bug in Jacksonに基づく誤った例外と思われます。それは、直列化不可能な型と関係がある。

私は、ラッパークラスを修正する必要があると思います。彼らはシリアル化されるものです。 (右?)私は何かが間違っているか、またはそれがBroadleafCommerceのバグであるかどうかを調べるためにこれを判断しようとしています。

また、私はMavenで新しくなっているので、これを修正しようとする方法についてはわかりません。 DemoSiteは、リポジトリからBroadLeafCommerceを取得します。 BroadleafCommerceのローカルgitクローンを見るにはどうすればいいですか?あなたの問題を解決するために(私はこれは別の問題であると認識が、それは、私は問題の修正を考えることができる唯一の方法だから、それが関連しています)

答えて

1

2つの方法:

  1. のいずれかにContent-Type HTTPヘッダーを設定しますapplication/json(デフォルト)またはapplication/xml
  2. あなたヘクタールあれば、例えば@RequestBody

を持っているものを除き、すべてのエンドポイントからのすべてのconsumesを削除でアノテートエンドポイントVEの:

@RequestMapping(value = "/cart", produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE}, consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE}) public class CartEndpoint extends org.broadleafcommerce.core.web.api.endpoint.order.CartEndpoint

あなたがしていることを置き換えることができます。 @RequestMapping(value = "/cart", produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE}) public class CartEndpoint extends org.broadleafcommerce.core.web.api.endpoint.order.CartEndpoint

+0

私はContent-Typeヘッダを設定しています。エラーメッセージは誤解を招くことです。ジャクソンのバグについては上記のリンクを参照してください。 –

+0

@RequestMappingのすべての消費属性を削除しようとしましたか?私はかなりそれがジャクソンの解析のバグと関係がないと確信しています。どのエンドポイントで具体的にヒットしようとしていますか?デシリアライゼーションが実際に発生することを実際に期待しているのでしょうか? – phillipuniverse

+0

私は 'consumes = {MediaType.APPLICATION_JSON_VALUE、MediaType.APPLICATION_XML_VALUE}'を削除しました。 –

関連する問題