この節では、互換性に関連した次の問題について説明します。
Service Registry の本リリースは、独自のユーザー管理および認証メカニズムに依存しています。将来的な Registry のリリースでは、これは SAML ベースのメカニズム (ebXML Registry 標準で指定されている。このコンポーネントはこの標準の実装) に更新する予定になっています。
Service Registry 3.1 の次のバグが、互換性に関連しています。
問題の概要:配備済みの Service Registry 3.0 で Service Registry 3.1 管理ツールを使用すると、cp や rm などのコマンドで NullPointerException が発生します。
対処方法:Service Registry 3.1 管理ツールは Service Registry 3.1 でのみ使用し、Service Registry 3.0 では Service Registry 3.0 管理ツールを使用してください。
問題の概要:JAXR クライアントプログラムが JDK 1.6 環境で実行されている場合、または Service Registry が JDK 1.6 を実行しているシステムに配備されている場合は、プログラムがクエリーを実行したり操作を発行したりするとランタイムエラーが発生します。根本の問題は、Application Server が SOAP with Attachments API for Java (SAAJ) の Version 1.2 を使用しているにもかかわらず、JDK 1.6 が Version 1.3 を使用していることにあります。
対処方法:必要な回避方法には、クライアントシステムに対するものと、サーバーに対するものの 2 種類があります。
クライアントが JDK 1.6 を実行しており、サーバーが JDK 1.5 を実行している場合は、「クライアントシステムの回避方法を実行するには」の手順に従ってください。
クライアントが JDK 1.5 を実行しており、サーバーが JDK 1.6 を実行している場合は、「サーバーシステムの回避方法を実行するには」の手順に従ってください。
クライアントとサーバーの両方が JDK 1.6 を実行している場合は、両方の回避方法の手順に従ってください。
クライアントシステムの回避方法は、クライアントシステムが JDK 1.6 を実行している場合に必要です。この回避方法には、次の作業が含まれます。
SAAJ 1.3 JAR ファイルがまだ存在しない場合は、それらのファイルのクラスパスへの追加
クライアントプログラムの Ant ビルドファイルでの 4 つのシステムプロパティーの設定
クラスパスに次の JAR ファイルが含まれていることを確認します。
Solaris OS の場合:
/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>
build.xml ファイル内の <java> ターゲットに次の <sysproperty> タグを追加します。
<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"/>
サーバーシステムの回避方法には、次の作業が含まれます。
Application Server の lib ディレクトリへの SAAJ 1.3 JAR ファイルの配置
システムプロパティーを設定するための 2 つの JVM オプションの追加
Application Server の停止と再起動
Application Server の lib ディレクトリに移動します。
Solaris OS の場合: cd /opt/SUNWappserver/appserver/lib
Linux および HP-UX システムの場合: cd /opt/sun/appserver/lib
Application Server の lib ディレクトリ内の 2 つの SAAJ JAR ファイルのバックアップコピーを作成します。次に例を示します。
cp saaj-api.jar saaj-api.jar.v1.2 cp saaj-impl.jar saaj-impl.jar.v1.2 |
Application Server の lib ディレクトリに SAAJ 1.3 JAR ファイルをコピーします。
Solaris OS の場合:
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 . |
『Service Registry 3.1 管理ガイド』の「Application Server 管理コンソールを使用する」の説明に従って、Application Server の管理コンソールにログインします。
「設定」ノードを開きます。
サーバーノード server-config (Admin Config) を開きます。
「JVM 設定」をクリックします。
「JVM オプション」タブをクリックします。
「JVM オプションを追加」をクリックします。
テキストフィールドに、次の行を入力します。
-Djavax.xml.soap.MessageFactory=com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl |
「JVM オプションを追加」をもう一度クリックします。
テキストフィールドに、次の行を入力します。
-Djavax.xml.soap.MetaFactory=com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl |
「保存 (Save)」をクリックします。
『Service Registry 3.1 管理ガイド』の「レジストリ用 Application Server ドメインを停止および再起動する」にある説明に従います。
問題の概要:以前のバージョンの 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 ファイルを編集するには、次の手順に従います。
Service Registry のインストールディレクトリに移動します。
Solaris OS の場合: cd /opt/SUNWsoar/install
Linux および HP-UX システムの場合: cd /opt/sun/SUNWsoar/install
Registry の Application Server ドメインを停止します。
Ant-base/ant -f build-install.xml appserver.domain.stop
ディレクトリ RegistryDomain-base /domains/registry/applications/j2ee-modules/soar/WEB-INF/ に移動します。
テキストエディタで、ファイル web.xml を開きます。
<security-constraint> タグ内の、</web-resource-collection> タグのあとに、次の行を挿入します。
<auth-constraint> <role-name>have.client.cert</role-name> </auth-constraint>
</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>
web.xml ファイルを保存して閉じます。
セキュリティーポリシーファイルを編集して、ドメインを再起動するには、次の手順に従います。
次のディレクトリに移動します。
Solaris OS の場合: cd /var/opt/SUNWsoar/domains/registry/config
Linux および HP-UX システムの場合: cd /var/opt/sun/SUNWsoar/domains/registry/config
テキストエディタで、ファイル server.policy を開きます。
このファイルに次の許可を追加します。
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"; };
server.policy ファイルを保存して閉じます。
Registry の Application Server ドメインを再起動します。
Ant-base/ant -f build-install.xml appserver.domain.start
Web ブラウザを開き、URL http://localhost:6060/soar を表示します。ログインして発行できるようになっているはずです。
問題の概要:HP-UX システム上で以前のバージョンの Service Registry (Java ES 2005Q4 以降) をインストールして使用していた場合、Service Registry の Java ES 5 バージョンにアップグレードすると、HADB (High Availability Database) に問題があるというエラーメッセージとともにインストールが失敗します。問題は、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 バージョンに直接アップグレードする場合は、手順がより複雑になります。