Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hybris HAC更新方案_Hybris - Fatal编程技术网

Hybris HAC更新方案

Hybris HAC更新方案,hybris,Hybris,我在我的一个项目中编写了一个拦截器来拦截所有请求。因此,通常在spring项目中,我会进行正常的构建并启动服务器,我对拦截器所做的更改将开始反映。然而,hybris项目似乎并非如此。 我是否也需要在hybris hac中进行更新?如果我这样做了,那么在下面提到的可用选项中,我需要选择哪些选项以及原因。 1.更新运行系统 2.从数据库中清除hMC配置 3.创建基本数据 4.本地化类型 谢谢, Ashish假设您没有对任何基础数据对象(Jalo项)进行任何更改,那么您就不需要在hybris hAC中

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

谢谢,
Ashish

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


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

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

例如,查看加速器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>

...
...
因此,您可以使用您自己的实现使用别名覆盖此项,或者向列表中添加其他控制器处理程序


由于底层数据模型没有变化——这只是连接SpringMVC相关类——因此不需要更新系统或类似的东西。只需要一个“ant clean all”来重新编译以获取新的拦截器类,然后重新启动服务器以获取Spring CornFigulaton中的更改。

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

  • 更新正在运行的系统-hybris类型定义更改时需要。例如,更改文件
    -items.xml
  • 从数据库中清除
    hMC
    配置-如果您选择在数据库中保留并更改hMC配置。例如,更改文件
    hmc.xml
  • 创建基本数据-如果impex文件中的内容按照
    essentialdata*.impex
    的命名模式进行更改
  • 本地化类型-如果本地化的属性文件发生更改。例如,更改文件
    -locales\u en.properties

  • 它工作得非常好。谢谢你抽出时间。但是,我希望您能向我解释更多关于何时应该执行更新以及以下提到的要点1之间的区别。更新正在运行的系统2。从数据库3中清除hMC配置。创建基本数据如果您更改了扩展中的任何Jalo项目,或者添加了引入新Jalo项目的任何新扩展/附加组件,则需要进行更新。至于其他的问题,它们是不言自明的。这里有hybris提供的很好的文档-非常感谢mike。这当然很有帮助,效果很好,迈克。谢谢:)不过我还有一个疑问,我希望你不介意澄清一下,如果我只对一个项目(扩展)进行更改,那么有没有办法只构建那个特定的项目并替换jar(或jar中的那个特定文件),而不是在构建所有扩展时运行ant clean all。我想在这里节省一些时间。在所讨论的扩展上运行ant clean build是可以的。