GMU エラー: javax.ws.rs.ProcessingException: Already connected
search cancel

GMU エラー: javax.ws.rs.ProcessingException: Already connected

book

Article ID: 276723

calendar_today

Updated On:

Products

CA API Gateway

Issue/Introduction

GMU  (Gateway Migration Utility) で、異なる Gateway クラスターの両方で migrateIn オプションを使用して実行すると以下のエラーが発生するようになりました。

実行したコマンド:

GatewayMigrationUtility-1.5.00-479> GatewayMigrationUtility.bat migrateIn --argFile Stage.properties --bundle XXXX.xml --test

応答結果:

Warning: TLS hostname verification has been disabled
Warning: TLS server certificate check has been disabled
Running......
Execution failed.
Reason: Unable to establish trust with the Gateway. To resolve, either:
• Establish server trust and try again (more info: search "establish server trust" in the Gateway do cumentation), OR
• Re-run command with the "--trustCertificate" parameter to bypass trust requirement.

And please note the excerpt from GMU log -
Apr 12, 2018 9:11:13 PM com.ca.gateway.rest.commandline.command.GatewayCommand setClientConfig WARNING: TLS hostname verification has been disabled
Apr 12, 2018 9:11:13 PM com.ca.gateway.rest.commandline.command.GatewayCommand setClientConfig WARNING: TLS server certificate check has been disabled
Apr 12, 2018 9:11:13 PM com.ca.gateway.rest.commandline.command.Command runCommand INFO: Running Command: migrateIn
Apr 12, 2018 9:11:16 PM com.ca.gateway.rest.commandline.command.Command runCommand
WARNING: Error executing command
javax.ws.rs.ProcessingException: Already connected
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:236)
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:655)
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:652)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:422)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:652)
at com.ca.gateway.rest.api.GatewayManagementGatewayClient$IP10Bundle.putXml(Unknown Source)
at com.ca.gateway.rest.api.resource.impl.BundleResource.importBundle(Unknown Source)
at com.ca.gateway.rest.commandline.command.MigrateInCommand.a(Unknown Source)
at com.ca.gateway.rest.commandline.command.MigrateInCommand.run(Unknown Source)
at com.ca.gateway.rest.commandline.command.GatewayCommand.run(Unknown Source)
at com.ca.gateway.rest.commandline.command.Command.runCommand(Unknown Source)
at com.ca.gateway.rest.commandline.Main.main(Unknown Source)
Caused by: java.lang.IllegalStateException: Already connected
at sun.net.www.protocol.http.HttpURLConnection.setRequestProperty(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.setRequestProperty(Unknown Source)
at org.glassfish.jersey.client.HttpUrlConnector.setOutboundHeaders(HttpUrlConnector.java:292)
at org.glassfish.jersey.client.HttpUrlConnector.access$100(HttpUrlConnector.java:83)
at org.glassfish.jersey.client.HttpUrlConnector$3.getOutputStream(HttpUrlConnector.java:266)
at org.glassfish.jersey.message.internal.CommittingOutputStream.commitStream(CommittingOutputStream.java:200)
at org.glassfish.jersey.message.internal.CommittingOutputStream.commitStream(CommittingOutputStream.java:194)
at org.glassfish.jersey.message.internal.CommittingOutputStream.commit(CommittingOutputStream.java:262)
at org.glassfish.jersey.message.internal.OutboundMessageContext.commitStream(OutboundMessageContext.java:812)
at org.glassfish.jersey.client.ClientRequest.writeEntity(ClientRequest.java:526)
at org.glassfish.jersey.client.HttpUrlConnector._apply(HttpUrlConnector.java:270)
at org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:182)
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:227)
... 14 more

Environment

Component: API Gateway

Cause

この "javax.ws.rs.ProcessingException: Already Connected" エラーは、trustCertificate パラメータと trustHostname パラメータを使用している場合でも、GMU でこれまでに報告のあったエラーです。

このエラーが表示される原因としては、以下のようなケースがあります。

  • ターゲット Gateway の名前解決するための DNS の問題 (GMU を実行しているマシンのローカル ホスト ファイルにエントリを追加することで解決)。
  • GMU と Gateway 間のファイアウォールの問題。
  • Gateway ポート 8443 が特定の IP からのトラフィックに制限されていました。
  • GMU が接続していた問題のポートに間違った証明書が関連付けられていました。「trustCertificate」オプションを使用すると、GMU が実行されているマシンがローカル ストアでサーバー証明書を信頼する必要がなくなります。ただし、Gateway によって提示される証明書は、その Gateway にとって正確である必要があります(たとえば、証明書が www.example.com のものであるが、Gateway のホスト名が mydoc.example.com である場合、問題が生じます)。

Resolution

GMU プロパティ ファイルで IP アドレスの代わりにホスト名を使用することで問題が解決しました。

Additional Information

[英文文書] javax.ws.rs.ProcessingExceptio Already connected