Развертывание внешних файлов WAR в SAP Hybris

(Я опубликовал эту статью 15 марта 2019 года в Linkedin)

В этой короткой статье я объясню, как развернуть внешние файлы войны в Hybris (мы сделали это, когда интегрировали веб-чат в магазин Hybris).

Во-первых, позвольте мне объяснить концепцию файлов localextension.xml и extensioninfo.xml.

расширениеinfo.xml.

Расширения в Hybris похожи на проекты в Java. Каждое расширение имеет функциональные возможности, собственную модель данных, конфигурации Spring, свойства и т. д. Каждое расширение должно иметь файл с именем extensioninfo.xml, где мы можем найти всю информацию о расширении, такую ​​как имя расширения, модуль расширения (ядро, веб или HMC). и зависимости от другого расширения.

Пример:

<extensioninfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="extensioninfo.xsd">
   <extension abstractclassprefix="Generated" classprefix="<CUSTOM>Facades" name="<CUSTOM>facades">
      <!-- you should add all required extensions to this list, except platform
         extensions which are automatically required -->
      <requires-extension name="acceleratorfacades" />
      <requires-extension name="<CUSTOM>ore" />
      <requires-extension name="<CUSTOM>crmintegration" />
      <requires-extension name="<CUSTOM>erpintegration" />
      <requires-extension name="sapordermgmtb2bfacades" />
      <requires-extension name="commercefacades" />
      <coremodule generated="true" manager="de.hybris.platform.jalo.extension.GenericManager"
               packageroot="com.<CUSTOM>.facades" />
   </extension>
</extensioninfo>

localextension.xml

Каждое активное расширение нашего проекта Hybris должно находиться в файле localextension.xml. Он содержит все расширения, которые наша конфигурация включает во время компиляции и выполнения.

Пример:

<hybrisconfig xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
           xsi:noNamespaceSchemaLocation='../bin/platform/resources/schemas/extensions.xsd'>
   <extensions>
      <extension name='mcc' />
      <extension name='commercesearchbackoffice' />
      <extension name='b2bcommercebackoffice' />
     <extension name='couponbackoffice' />
      <extension name='droolsruleengineservices' />
      <extension name='couponfacades' />
      <extension name='promotionenginesamplesaddon' />
      <extension name='accountsummaryaddon' />
      <extension name='secureportaladdon' />
   <extensions>
</hybrisconfig>

Развертывание внешних файлов войны

Чтобы развернуть внешние файлы войны, нам нужно добавить элемент webapp в localextensions.xml.

Внешние веб-приложения извлекаются и копируются в каталог ‹HYBRIS_BIN_DIR›/bin/custom.

Элемент веб-приложения может иметь один (контекст) или два (контекстный корень, путь) атрибута.

Пример с корневым контекстом

contextroot — это корневой каталог для веб-приложения.

путь — это путь к файлу войны или каталогу загруженного веб-приложения.

<extensions>
	
	<extension .../>
    <webapp contextroot="webchat" path="${HYBRIS_CONFIG_DIR}/path/webchat.war"/>
 </extensions>

Пример с контекстом

context — это путь к context.xml, описывающему webapp

<extensions>
	
	<extension .../>
<webapp context="/path/context.xml" /> </extensions>
 </extensions>

Пример context.xml:

<Context path="/webchat" docBase="/path/webchat.war" />

Поставьте лайк этому сообщению и подпишитесь на мой блог, если он будет вам полезен.