Service Registry 3.1 版本說明

相容性問題

本小節說明與相容性相關的以下問題︰

即將不再支援的功能

使用者註冊機制

此 Service Registry 發行版本擁有自己的使用者管理和認證機制。計劃在將來的發行版本中將 Registry 更新為基於 SAML 的機制 (如 ebXML Registry 標準中所指定,此元件是該標準的實作)。

與相容性相關的錯誤

Service Registry 3.1 中的以下錯誤與相容性相關。

6422192︰透過 Service Registry 3.0 使用 Service Registry 3.1 Admin Tool 時,發生 NullPointerException

問題摘要︰如果您透過已部署的 Service Registry 3.0 使用 Service Registry 3.1 Admin Tool,則 cp rm 指令會導致 NullPointerException

解決方法:Service Registry 3.1 Admin Tool 只能用在 Service Registry 3.1 上;Service Registry 3.0 Admin Tool 只能用在 Service Registry 3.0 上。

6463868︰使用 JDK 1.6 的用戶端程式或伺服器導致錯誤

問題摘要︰如果在 JDK 1.6 環境中執行 JAXR 用戶端程式,或將 Service Registry 部署在執行 JDK 1.6 的系統上,當程式執行查詢或發佈作業時,便會發生執行階段錯誤。根本問題在於 JDK 1.6 使用 1.3 版本的 SOAP with Attachments API for Java (SAAJ),而 Application Server 使用 1.2 版本。

解決方法:需要兩種類型的解決方法,一種用於用戶端系統,另一種用於伺服器。

Procedure執行用戶端系統解決方法

如果用戶端系統執行的是 JDK 1.6,則需要使用用戶端系統解決方法。該解決方法涉及以下作業︰

  1. 請確保類別路徑中包含以下 JAR 檔案︰

    在 Solaris 作業系統上︰

    /usr/share/lib/saaj-api.jar
    /usr/share/lib/saaj-impl.jar

    在 Linux 和 HP-UX 系統上︰

    /opt/sun/share/lib/saaj-api.jar
    /opt/sun/share/lib/saaj-impl.jar

    例如,如果 Linux 系統的 Ant 目標包含以下設定,則類別路徑正確︰

    <path id="classpath">
      <fileset dir="/opt/sun/share/lib">
        <include name="*.jar"/>
      </fileset>
      ...
    </path>
  2. 將以下 <sysproperty> 標籤增加至 build.xml 檔案的 <java> 目標:

    <sysproperty key="javax.xml.soap.MessageFactory" 
       value="com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl"/>
    <sysproperty key="javax.xml.soap.MetaFactory" 
       value="com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl"/>
    <sysproperty key="javax.xml.soap.SOAPConnectionFactory" 
       value="com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnectionFactory"/>
    <sysproperty key="javax.xml.soap.SOAPFactory" 
       value="com.sun.xml.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl"/>

Procedure執行伺服器系統解決方法

伺服器系統解決方法涉及以下作業︰

  1. 變更至 Application Server lib 目錄。

    在 Solaris 作業系統上︰cd /opt/SUNWappserver/appserver/lib

    在 Linux 和 HP-UX 系統上︰cd /opt/sun/appserver/lib

  2. 在 Application Server lib 目錄中建立兩個 SAAJ JAR 檔案的備份副本。例如:


    cp saaj-api.jar saaj-api.jar.v1.2
    cp saaj-impl.jar saaj-impl.jar.v1.2
    
  3. 將 SAAJ 1.3 JAR 檔案複製到 Application Server lib 目錄。

    在 Solaris 作業系統上︰


    cp /usr/share/lib/saaj-api.jar .
    cp /usr/share/lib/saaj-impl.jar .
    

    在 Linux 和 HP-UX 系統上︰


    cp /opt/sun/share/lib/saaj-api.jar .
    cp /opt/sun/share/lib/saaj-impl.jar .
    
  4. 「Service Registry 3.1 Administration Guide」中的「To Use the Application Server Admin Console」所述,登入 Application Server Admin Console。

  5. 展開配置節點。

  6. 展開伺服器節點 server-config (Admin Config)

  7. 按一下 [JVM 設定]。

  8. 按一下 [JVM 選項] 標籤。

  9. 按一下 [增加 JVM 選項]。

  10. 在文字欄位,鍵入以下內容︰


    -Djavax.xml.soap.MessageFactory=com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl
    
  11. 再按一下 [增加 JVM 選項]。

  12. 在文字欄位,鍵入以下內容︰


    -Djavax.xml.soap.MetaFactory=com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl
    
  13. 按一下 [儲存]。

  14. 依照「Service Registry 3.1 Administration Guide」中的「To Stop and Restart the Application Server Domain for the Registry」中的說明進行操作。

6475651︰Application Server 升級後無法登入 Java ES 2005Q4 Service Registry

問題摘要︰如果您曾經安裝並使用舊版 Service Registry (從 Java ES 2005Q4),而現在升級至 Application Server 的 Java ES 5 版本,卻沒有升級至 Service Registry 的 Java ES 5 版本,則當您試圖使用先前透過 Web 主控台建立的憑證時,會導致登入失敗。

解決方法:編輯 web.xml 檔案以及 Service Registry 的安全性策略檔案。

    若要停止 Registry 的 Application Server 網域並編輯 web.xml 檔案,請執行以下步驟:

  1. 變更為 Service Registry 安裝目錄︰

    在 Solaris 作業系統上︰cd /opt/SUNWsoar/install

    在 Linux 和 HP-UX 系統上︰cd /opt/sun/SUNWsoar/install

  2. 停止 Registry 的 Application Server 網域︰

    Ant-base/ant -f build-install.xml appserver.domain.stop

  3. 變更為目錄 RegistryDomain-base /domains/registry/applications/j2ee-modules/soar/WEB-INF/

  4. 在文字編輯器中開啟檔案 web.xml

  5. </web-resource-collection> 標籤後的 <security-constraint> 標籤內插入以下內容︰

    <auth-constraint>
      <role-name>have.client.cert</role-name>
    </auth-constraint>
  6. </security-constraints> 標籤後,插入以下內容︰

    <error-page>
      <error-code>400</error-code>
      <location>/registry/thin/AuthenticateError.jsp</location>
    </error-page>
    <security-role>
      <description>all subjects who have client certificates</description>
      <role-name>have.client.cert</role-name>
    </security-role>
  7. 儲存並關閉 web.xml 檔案。

    若要編輯安全性策略檔案並重新啟動網域,請執行以下步驟︰

  1. 變更至以下目錄︰

    在 Solaris 作業系統上︰cd /var/opt/SUNWsoar/domains/registry/config

    在 Linux 和 HP-UX 系統上︰cd /var/opt/sun/SUNWsoar/domains/registry/config

  2. 在文字編輯器中開啟檔案 server.policy

  3. 將以下授權增加至此檔案:

    grant codeBase "file:${com.sun.aas.instanceRoot}/applications/j2ee-modules/soar/WEB-INF/lib/-"{
           permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
    };
    
    grant codeBase "file:${com.sun.aas.instanceRoot}/generated/jsp/j2ee-modules/soar/-" {
          permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
    };
  4. 儲存並關閉 server.policy 檔案。

  5. 重新啟動 Registry 的 Application Server 網域︰

    Ant-base/ant -f build-install.xml appserver.domain.start

  6. 開啟您的 Web 瀏覽器,然後請至 URL http://localhost:6060/soar。現在您可以執行登入與發佈作業。

6491246:在 HP-UX 平台上升級失敗

問題摘要︰如果您曾經在 HP-UX 系統上安裝並使用舊版的 Service Registry (從 Java ES 2005Q4),而現在升級至 Service Registry 的 Java ES 5 版本,則無法進行安裝,並顯示 HADB (高可用性資料庫) 發生問題的錯誤訊息。問題在於 HADB 套裝軟體先前安裝在 Java ES 5 安裝程式視為非預設的位置。

如果解除安裝 Application Server 的 Java ES 2005Q4 版本,然後安裝 Service Registry 和 Application Server 的 Java ES 5 版本,也會發生此問題。

解決方法:如果解除安裝 Application Server,則必須在重新安裝之前,先移除 sun-hadb 套裝軟體。

如果是直接從 Service Registry 的 Java ES 2005Q4 版本升級至 Java ES 5 版本,步驟將更為繁複:

  1. 移除 sun-hadb 套裝軟體。

  2. 安裝 Service Registry 和 Application Server 的 Java ES 5 版本。

  3. 編輯 /opt/sun/appserver/config/asenv.conf 檔案,如下所示:

    • 將下行

      AS_ANT="/opt/sun/share/lib/ant/bin"

      變更為

      AS_ANT="/opt/sun/bin"
    • 將下行

      AS_ANT_LIB="/opt/sun/share/lib/ant/lib"

      變更為

      AS_ANT_LIB="/opt/sun/share/lib"
    • 增加下列兩行:

      AS_DERBY_INSTALL="/opt/sun/javadb"
      AS_MFWK_HOME=/opt/sun/mfwk/share
  4. /opt/sun/appserver/lib 目錄中,建立名稱為 endorsed 的子目錄。

  5. /opt/sun/javadb/lib/derby.jar 檔案複製到 /opt/sun/appserver/lib/endorsed 目錄中。