Hybris HAC更新场景

时间:2015-11-25 14:19:02

标签: hybris

我在我的一个项目中编写了一个拦截器来拦截所有请求。因此,通常在spring项目中,我将进行正常构建并启动服务器,并且与拦截器相关的更改将开始反映。然而,hybris项目似乎并非如此。 我是否还需要在hybris hac中进行更新?如果我这样做,那么下面提到的选项中我需要选择哪些选项以及为什么。 1.更新运行系统 2.从数据库中清除hMC配置 3.创建基本数据 4.本地化类型

谢谢, 阿希什

3 个答案:

答案 0 :(得分:2)

要回答问题的第二部分,我列出了选择每种选项的至少一个原因。希望这会有所帮助。

  1. 更新运行系统 - 当hybris类型定义更改时需要。例如,更改文件<extnesion-name>-items.xml
  2. 的内容
  3. 清除数据库中的hMC配置 - 如果您已选择在数据库中保留hmc配置并进行更改。例如,更改文件hmc.xml
  4. 中的内容
  5. 创建基本数据 - 如果impex文件中的内容发生更改,其后面是essentialdata*.impex的命名模式。
  6. 本地化类型 - 如果本地化的属性文件发生更改。例如,更改文件<extension-name>-locales_en.properties
  7. 中的内容

答案 1 :(得分:1)

假设您没有对任何基础数据对象(Jalo项目)进行任何更改,那么您将无需在hybris hAC中运行更新。

您应该能够进行更改,从平台运行ant clean all然后启动hybris ECP实例,您的更改将会显示。

答案 2 :(得分:0)

如果这是一个普通的Spring MVC拦截器,那么它应该可以正常工作。 您是否在您正在使用的店面扩展中检查了弹簧配置?

例如,看一下加速器Spring MVC配置文件:

hybris/bin/ext-template/yacceleratorstorefront/web/webroot/WEB-INF/config/spring-mvc-config.xml

这里有一些开箱即用的例子:

<mvc:interceptors>
    <ref bean="beforeControllerHandlerInterceptor" />
    <ref bean="beforeViewHandlerInterceptor" />
    <ref bean="csrfHandlerInterceptor" />
</mvc:interceptors>

作为示例,控制器处理程序拦截器之前的默认值定义为:

<!-- Interceptor that runs once per request and before the controller handler method is called -->
    <alias name="defaultBeforeControllerHandlerInterceptor" alias="beforeControllerHandlerInterceptor" />
    <bean id="defaultBeforeControllerHandlerInterceptor" class="de.hybris.platform.yacceleratorstorefront.interceptors.BeforeControllerHandlerInterceptor" >
        <property name="beforeControllerHandlers">
            <ref bean="beforeControllerHandlersList" /> 
        </property>
    </bean>

引用:

<alias name="defaultBeforeControllerHandlersList" alias="beforeControllerHandlersList" />
<util:list id="defaultBeforeControllerHandlersList" >
    <!-- List of handlers to run -->
    <bean class="de.hybris.platform.yacceleratorstorefront.interceptors.beforecontroller.SecurityUserCheckBeforeControllerHandler" />
    <bean class="de.hybris.platform.yacceleratorstorefront.interceptors.beforecontroller.RequireHardLoginBeforeControllerHandler" >
            <property name="userService" ref="userService"/>
            <property name="redirectStrategy" ref="redirectStrategy"/>
       ...

    </bean>
    <bean class="de.hybris.platform.yacceleratorstorefront.interceptors.beforecontroller.DeviceDetectionBeforeControllerHandler" />

...

</util:list>

因此,你可以使用带有自己实现的别名覆盖它,或者在列表中添加其他控制器处理程序。

由于底层数据模型没有变化 - 这只是连接Spring MVC相关类 - 不需要更新系统或类似的东西。只是一个干净的所有&#39;重新编译以获取新的拦截器类,并重新启动服务器以获取Spring cornfiguraton中的更改。