You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hybris OCC接口报错:路径无对应资源问题求助

问题描述

通过ant extgen选择yocc模板生成了TestoccController控制器及extensioninfo.xml配置,项目编译运行正常,但调用接口/occ/v2/electronics/test123/get时返回错误:"There is no resource for path /occ/v2/electronics/test123/get",已执行ant clean all及清理IDE缓存,问题仍未解决。

控制器代码:

@Controller
@RequestMapping(value ="/{baseSiteId}/test123")
public class TestoccController {

    @Autowired
    private GetProductFacade productFacade;
    @RequestMapping(value = "/get",method = RequestMethod.GET)
    @ResponseBody
    public List<ProductDto> get(){
        return productFacade.getProducts();
    }
}

extensioninfo.xml配置:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved.
-->
<extensioninfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="extensioninfo.xsd">


    <extension abstractclassprefix="Generated" classprefix="Testocc" description="testocc extension"
               jaloLogicFree="true" managername="TestoccManager"
               managersuperclass="de.hybris.platform.jalo.extension.Extension" name="testocc">


        <!-- you should add all required extensions to this list, except platform extensions which are automatically required -->


        <requires-extension name="commercewebservices"/>


        <coremodule generated="true" manager="org.training.jalo.TestoccManager" packageroot="org.training"/>


    </extension>


</extensioninfo>
解决方案

1. 给extensioninfo.xml添加Web模块配置

OCC扩展属于Web模块,当前配置缺少webmodule声明,导致Spring配置无法被加载,控制器未被注册。在<extension>标签内添加webmodule配置:

<webmodule jspcompile="false" webroot="/occ"/>

修改后的extensioninfo.xml核心部分:

<extension ...>
    <requires-extension name="commercewebservices"/>
    <coremodule generated="true" manager="org.training.jalo.TestoccManager" packageroot="org.training"/>
    <webmodule jspcompile="false" webroot="/occ"/>
</extension>

2. 创建Spring组件扫描配置文件

在testocc/resource/META-INF目录下创建testocc-spring.xml,添加组件扫描规则,指向控制器所在的包(假设控制器在org.training.controller下,根据实际包路径调整):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context
                           http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="org.training.controller"/>
</beans>

3. 确认扩展已添加到localextensions.xml

检查项目的localextensions.xml文件,确保包含testocc扩展:

<extension name="testocc"/>

4. 重新构建并重启服务器

执行ant clean all重新构建项目,然后重启Hybris服务器,再次测试接口。

额外检查点

  • 确保GetProductFacade已被正确注册为Spring Bean(可通过添加@Component注解或在Spring配置文件中声明)
  • 验证控制器所在包路径与Spring扫描的包路径完全匹配

内容的提问来源于stack exchange,提问作者Carlos Eduardo Ilgenfritz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 07:27:52