2015-04-23 30 views
1

我正在使用Windows 7計算機上的Portal 8.0.0.1,並已按照步驟創建基於Portal 8.0主題的自定義主題。我已經設置了我認爲需要的所有屬性,以便對HTML和JSP文件進行編輯,然後可以通過門戶進行識別,而無需重新啓動主題應用程序或門戶,但它不起作用。我試圖瞭解我在定製過程中可能錯過了什麼。爲什麼靜態和動態資源更改未反映在自定義Portal 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文件。這些指示非常好,有很多詳細的步驟,但缺乏幾個地方,我質疑我的新定製主題的完整性。這些指令假設我不知道的兩件事:

  1. 我正在使用RAD。

  2. 附加了用於向門戶註冊主題的示例XML訪問文件。

的指令依賴於RAD的,我不能與Eclipse重現一個主要步驟 - 創建IBM的web-ext.xmi文件和IBM的web-bnd.xmi文件。這些是IBM文件,只有RAD會創建它們。我必須從其他項目中找到這些文件的副本,並嘗試對這些說明中創建的靜態和動態Eclipse項目進行定製。我知道ibm-web-ext.xmi文件是允許通過「reloadingEnabled」屬性重新加載JSP的關鍵,因此我確保按照指示啓用該屬性。此外,設置的說明指出,該行需要被添加到動態項目的Default.jsp文件:

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

所以我做了一定要添加該行。

靜態項目的IBM的web-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-web-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的web-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的Web-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_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的資源環境提供者)按照指示在從Portal 8.0主題複製靜態資源之前指示爲true - 這是我認爲可能與此問題有關的唯一其他配置。

我已經將這個自定義主題分配給了一些頁面,而且看起來他們的行爲是正確的。我沒有看到使用這個新的自定義主題的任何功能或行爲問題,但我根本無法根據需要使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

我發現了Portal 8.5的解決方案,我希望它能幫助到達此處的人。在我的情況下,我試圖在未部署的情況下重新加載主題中的jsps。 @okorng文件看起來不錯,但你錯過了JSP的屬性:

<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的Web-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> 

要carefoul,reloadInterval必須有刷新間隔或主題不會被部署:)

相同的值