2015-04-23 1 views
1

Я работаю с Portal 8.0.0.1 на своей машине с Windows 7 и сделал следующие шаги для создания настраиваемой темы, основанной на теме портала 8.0. Я установил все свойства, которые, по моему мнению, необходимы, чтобы позволить мне вносить изменения в файлы html и JSP, которые затем могут быть распознаны порталом без перезапуска приложения темы или портала, но он не работает , Я пытаюсь понять, что я мог пропустить во время процесса настройки.Почему статические и динамические изменения ресурсов не отражены в настраиваемой теме портала 8.0?

Я последовал шаги, описанные в обоих местах здесь: http://www-10.lotus.com/ldd/portalwiki.nsf/dx/Deploying_and_developing_IBM_WebSphere_Portal_8_themes_A_step-by-step_guide

и здесь:

https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20Websphere%20Portal%208%20WIKI

Эти инструкции по существу, являются идентичными, но я не уверен, какой набор оригинала; Я также нашел PDF-файл с теми же инструкциями. Инструкции велики, имеют много подробных шагов, но мне не хватает в нескольких местах, которые меня подвергли сомнению целостность моей новой настраиваемой темы. В инструкциях предполагается 2 вещи, которые я не мог реализовать:

  1. Я использую RAD.

  2. Образец файла доступа XML для регистрации темы с помощью портала прилагается.

инструкции зависят от РАД за один основной шаг, который я не мог воспроизвести с Eclipse, - создание Ibm-веб-ext.xmi и IBM-веб-bnd.xmi файлов. Это файлы IBM, и только RAD их создаст. Мне пришлось найти копии этих файлов из других проектов и попытаться настроить их для проектов Static и Dynamic Eclipse, созданных в этих инструкциях. Я знаю, что файл ibm-web-ext.xmi является ключом к разрешению перезагрузки JSP через свойство reloadingEnabled, поэтому я обязательно включил это свойство в соответствии с инструкциями. В дополнении к этому установке инструкции, обратите внимание, что эта строка должна быть добавлена ​​в файл Default.jsp динамического проекта:

--%><r:param name="max-age" value="2"/> 

поэтому я сделал так, чтобы добавить эту строку.

Содержание КУГ-веб-bnd.xmi файл статического проекта является:

<?xml version="1.0" encoding="UTF-8"?> 
 
<webappbnd:WebAppBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappbnd="webappbnd.xmi" xmi:id="WebAppBinding_FpmTheme8Static" virtualHostName="default_host"> 
 
    <webapp href="WEB-INF/web.xml#WebApp_ID"/> 
 
</webappbnd:WebAppBinding>

и содержимое веб-IBM-ext.xmi файл статического проекта заключается в следующем:

<?xml version="1.0" encoding="UTF-8"?> 
 
<webappext:WebAppExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappext="webappext.xmi" xmi:id="WebAppExtension_FpmTheme8Static" reloadInterval="3" reloadingEnabled="true" additionalClassPath="" fileServingEnabled="true" directoryBrowsingEnabled="false" serveServletsByClassnameEnabled="false" preCompileJSPs="false"> 
 
    <webApp href="WEB-INF/web.xml#WebApp_ID"/> 
 
</webappext:WebAppExtension>

и содержимое веб-IBM-bnd.xmi файл динамического проекта заключается в следующем:

<?xml version="1.0" encoding="UTF-8"?> 
 
<webappbnd:WebAppBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappbnd="webappbnd.xmi" xmi:id="WebAppBinding_FpmTheme8Dynamic" virtualHostName="default_host"> 
 
    <webapp href="WEB-INF/web.xml#WebApp_ID"/> 
 
</webappbnd:WebAppBinding>

и содержание динамического проекта Ibm-веб-доб.XMI файл:

<?xml version="1.0" encoding="UTF-8"?> 
 
<webappext:WebAppExtension xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:webappext="webappext.xmi" xmi:id="WebAppExtension_FpmTheme8Dynamic" reloadInterval="3" reloadingEnabled="true" additionalClassPath="" fileServingEnabled="true" directoryBrowsingEnabled="false" serveServletsByClassnameEnabled="false" preCompileJSPs="false"> 
 
    <webApp href="WEB-INF/web.xml#WebApp_ID"/> 
 
</webappext:WebAppExtension>

ли те выглядят в силе? Существуют ли какие-либо другие местоположения, которые должны иметь некоторую конфигурацию, чтобы разрешить перезагрузку JSP?

Вторая проблема с инструкциями заключается в том, что образец файла доступа XML не был присоединен. Я создал один, как можно лучше, и это выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
 
<!-- IBM WebSphere Portal/8.0.0.1 build wp8001CF12_001_15 exported on Mon Apr 20 22:51:09 EDT 2015 from BF904V1/192.168.7.89 --> 
 
<request build="wp8001CF12_001_15" type="update" version="8.0.0.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PortalConfig_8.0.0.xsd"> 
 
    <portal action="locate"> 
 
     <skin action="update" active="true" context-root="/FpmTheme8" default="true" domain="rel" resourceroot="Hidden" type="default" uniquename="FpmThem8.Hidden"> 
 
      <localedata locale="en"> 
 
       <title>FPM Theme8 - Hidden</title> 
 
      </localedata> 
 
      <parameter name="com.ibm.portal.skintype" type="string" update="set"><![CDATA[template]]></parameter> 
 
      <parameter name="com.ibm.portal.skin.template.file.name.html" type="string" update="set"><![CDATA[skin.html]]></parameter> 
 
      <parameter name="com.ibm.portal.skin.template.ref" type="string" update="set"><![CDATA[war:FpmTheme8Static/themes/Portal8.0/skins/Hidden/]]></parameter> 
 
     </skin> 
 
     <skin action="update" active="true" context-root="/FpmTheme8" default="false" domain="rel" resourceroot="Standard" type="default" uniquename="FpmTheme8.Standard"> 
 
      <localedata locale="en"> 
 
       <title>FPM Theme8 - Standard</title> 
 
      </localedata> 
 
      <parameter name="com.ibm.portal.skintype" type="string" update="set"><![CDATA[template]]></parameter> 
 
      <parameter name="com.ibm.portal.skin.template.file.name.html" type="string" update="set"><![CDATA[skin.html]]></parameter> 
 
      <parameter name="com.ibm.portal.skin.template.ref" type="string" update="set"><![CDATA[war:FpmTheme8Static/themes/Portal8.0/skins/Standard/]]></parameter> 
 
     </skin> 
 
     <skin action="update" active="true" context-root="/FpmTheme8" default="false" domain="rel" resourceroot="NoSkin" type="default" uniquename="FpmTheme8.NoSkin"> 
 
      <localedata locale="en"> 
 
       <title>FPM Theme8 - No Skin</title> 
 
      </localedata> 
 
      <parameter name="com.ibm.portal.skintype" type="string" update="set"><![CDATA[template]]></parameter> 
 
      <parameter name="com.ibm.portal.skin.template.file.name.html" type="string" update="set"><![CDATA[skin.html]]></parameter> 
 
      <parameter name="com.ibm.portal.skin.template.ref" type="string" update="set"><![CDATA[war:FpmTheme8Static/themes/Portal8.0/skins/NoSkin/]]></parameter> 
 
     </skin> 
 
     <theme action="update" active="true" context-root="/FpmTheme8" default="false" domain="rel" resourceroot="dynamicSpots" uniquename="FpmTheme8"> 
 
      <localedata locale="en"> 
 
       <title>FPM THEME8</title> 
 
      </localedata> 
 
      <parameter name="com.ibm.portal.theme.dnd.sources" type="string" update="set"><![CDATA[ibmDndColumn:com.ibm.pb.dnd.layout.LayoutColumnSource:vertical,ibmDndRow:com.ibm.pb.dnd.layout.LayoutRowSource:horizontal]]></parameter> 
 
      <parameter name="ibm.portal.shelf.category.json.socialrendering" type="string" update="set"><![CDATA[system/SocialCategory.json,label:shelf_communicationsCategory]]></parameter> 
 
      <parameter name="com.ibm.portal.layout.template.href" type="string" update="set"><![CDATA[war:FpmTheme8Static/themes/Portal8.0/layout-templates/1Column/]]></parameter> 
 
      <parameter name="com.ibm.portal.theme.aggregationmodes" type="string" update="set"><![CDATA[ssa]]></parameter> 
 
      <parameter name="resourceaggregation.profile" type="string" update="set"><![CDATA[profiles/profile_full.json]]></parameter> 
 
      <parameter name="com.ibm.portal.theme.template.ref" type="string" update="set"><![CDATA[war:FpmTheme8Static/themes/Portal8.0/]]></parameter> 
 
     </theme> 
 
    </portal> 
 
    <status element="all" result="ok"/> 
 
</request>

Я помню, как в более ранних установках я уже установлено свойство «resourceaggregation.development.mode» (ресурса WP ConfigService поставщик среды) до true, как указано перед копированием статических ресурсов из темы Portal 8.0, так что это единственная другая конфигурация, которая, как я думаю, может быть удаленно связана с этой проблемой.

Я уже назначил эту тему для некоторых страниц, и они выглядят так, как будто они ведут себя правильно. Я не вижу никаких функциональных или поведенческих проблем при использовании этой новой настраиваемой темы, но я просто не могу заставить перезагрузку JSP работать по мере необходимости.

Есть ли у вас какие-либо предположения относительно того, на что я должен обратить внимание, чтобы отладить это?

Спасибо за ваше время.

ответ

0

Я отправил этот же вопрос в IBM, открыв с ними билет PMR. Я отправил им упакованный EAR-файл для просмотра. Они развернули этот файл EAR в своей среде Portal8.0.0.1/CF16, но не смогли воспроизвести проблему, но когда они развернули его в своей среде Portal8.0.0.1/CF12, они увидели ту же проблему. Их предложение состояло в том, чтобы перейти с CF12 на CF16. Сейчас обновление не является вариантом для нашего проекта, поэтому я рассмотрел альтернативный вариант попытки развернуть пользовательскую тему как один файл WAR в надежде на это. Я основал свою попытку по инструкциям в http://www-10.lotus.com/ldd/portalwiki.nsf/dx/Create_a_custom_theme_without_WebDAV_with_8.0 и в конечном итоге смог развернуть новую настраиваемую тему в одном файле WAR, а затем перезагрузка JSP работала как для статических, так и для динамических ресурсов. Это не идеальное решение, которое я искал, поскольку IBM рекомендовала решение EAR продвигаться с CF16, но в настоящее время оно работает для меня.

0

Я нашел решение для портала 8.5, я надеюсь, что это поможет кому-то, кто достигает здесь. В моем случае я пытался перезагрузить jsps в теме без развертывания. @okorng файлы вроде нормально, но вы пропустите СПЯ-атрибуты:

<jsp-attribute name="reloadEnabled" value="true"/> 
<jsp-attribute name="reloadInterval" value="3"/> 

Я использую XML вместо XMI, но вы можете увидеть пример здесь: https://www-01.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.base.doc/ae/tweb_jspengine.html

Это мой последний IBM-веб-ext.xml (в динамической и статической proyects):

<?xml version="1.0" encoding="UTF-8"?> 
<web-ext 
    xmlns="http://websphere.ibm.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_1.xsd" 
    version="1.1"> 

    <jsp-attribute name="reloadEnabled" value="true"/> 
    <jsp-attribute name="reloadInterval" value="3"/> 

    <reload-interval value="3"/> 
    <context-root uri="/wps/XXX_Theme" /> 
    <enable-directory-browsing value="false"/> 
    <enable-file-serving value="true"/> 
    <enable-reloading value="true"/> 
    <enable-serving-servlets-by-class-name value="false" /> 
</web-ext> 

Be carefoul, reloadInterval обязательно имеет то же значение, что перезагружать интервал или тема не будет развернута :)

Смежные вопросы