我正在尝试使用Broadleaf电子商务中内置的REST API。他们网站上的说明会在/WEB-INF/applicationContext-rest-api.xml
中添加对web.xml
的引用,但/WEB-INF/applicationContext-rest-api.xml
不存在。 @phillipuniverse是renamed on January 14, 2015。从DemoSite has a reference到新文件名(web.xml
)的当前applicationContext-rest-api-security.xml
。因此,似乎无需执行任何操作来启用REST - 默认情况下它们已启用。
然而,当我尝试访问它们时,我得到:
org.springframework.web.HttpMediaTypeNotSupportedException:不支持内容类型'null'
我真的在发送Content-Type标头。这似乎是基于known bug in Jackson的不正确的例外。它与不可序列化的类型有关。
我认为这意味着需要修复包装类。它们是序列化的。 (对吗?)我试图弄清楚这是因为我做错了什么,或者是否是BroadleafCommerce中的一个错误。
另外,我对Maven有点新意,所以我不确定如何解决这个问题。 DemoSite从回购中提取BroadLeafCommerce。我怎么告诉它看看我当地的BroadleafCommerce git克隆? (我意识到这是一个不同的问题,但它是相关的,因为这是我能想到解决问题的唯一方法。)
答案 0 :(得分:1)
解决问题的两种方法:
Content-Type
HTTP标头设置为application/json
(默认值)或application/xml
consumes
,但具有@RequestBody
例如,如果您的端点注释为:
@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