关于前端:SAP-Commerce-Cloud-OCC-API-UnknownResourceError-错误

32次阅读

共计 1557 个字符,预计需要花费 4 分钟才能阅读完成。

谬误音讯:

{
    "errors": [
        {
            "message": "There is no resource for path /occ/v2/powertools/xxx/",
            "type": "UnknownResourceError"
        }
    ]
}

能够应用 @SecurePortalUnauthenticatedAccess 绕过 Authorization check.

这个注解的帮忙文档在 SAP 官网 上能找到。

Commerce Cloud 引入了一个名为 SecurePortalUnauthenticatedAccess 的正文来放弃 OCC 端点列表的公开。还能够将正文增加到您认为应该公开拜访的端点。

OCC 不应用会话。这意味着能够(并且应该)疏忽 JSESSIONID cookie。为了从特定用户拜访资源,须要遵循上面形容的 URL 约定:

https://localhost:9002/rest/v2/{baseSiteID}/users/{userID}/...

非法的 user id:

  • anonymous
    Anonymous user.
  • ${uid}:ID of the registered user.

例子:GET https://localhost:9002/rest/v2/wsTest/users/[email protected]/addresses

缓存位于一个或多个 Web 服务器(也称为原始服务器)和一个或多个客户端之间,并监督申请的到来,保留响应的正本,例如 HTML 页面、图像和文件。而后,如果对同一 URL 收回另一个申请,它能够应用收集到的响应之一,而不是再次向源服务器申请它。上面形容了如何在 OCC 中应用缓存。它提供了无关客户端缓存和服务器端缓存的详细信息。

webservicescommons 扩大定义了 @CacheControl 正文,可用于生成 Cache-Control Header 作为响应。如果要为特定办法或整个控制器启用客户端缓存,只需应用 @CacheControl 对其进行正文并指定适当的指令。能够在 ProductsController.java 类中留神到正文用法示例:

@RequestMapping(value = "/{productCode}", method = RequestMethod.GET)
    @CacheControl(directive = CacheControlDirective.PRIVATE, maxAge = 120)
    @ResponseBody
    public ProductWsDTO getProductByCode(@PathVariable final String productCode,
            @RequestParam(defaultValue = DEFAULT_FIELD_SET) final String fields)
    {...}

留神:因为 Cache-Control 注解仅实用于 GET 和 HEAD 办法,因而不会影响任何其余申请办法。

仅当将 CacheControlHandlerInterceptor 增加到 mvc 拦截器时,@CacheControl 正文才无效。

<mvc:interceptors>
        <bean class="de.hybris.platform.webservicescommons.interceptors.CacheControlHandlerInterceptor"/>
    </mvc:interceptors>

Spring 缓存配置能够在以下文件中找到:ycommercewebservices/web/webroot/WEB-INF/config/cache-config-spring.xml。

必须启用缓存性能。能够应用 <cache:annotation-driven> 元素来实现。此元素还容许定义将用于缓存的默认密钥生成器和缓存管理器。

正文完
 0