3

Weblogic ClusterにデプロイされたJavaアプリケーションは、次の2つのWebサービスを呼び出します。

•HTTPSを介して(インターネット上にある外部アプリケーションに)SOAPクライアント要求を送信します。(Axis1.4を介して作成されたJavaクラス)

•その後、HTTPを介して内部アプリケーション(LANに接続されている他のノードに存在)にSOAPクライアント要求を送信します。(JAX-WS:Jdeveloperウィザードで作成されたJavaクラス)

最初のWSに到達するには、次のコードを使用してWebサービスクライアントのhttpsプロキシ設定を設定する必要があります。

System.setProperty("https.proxyHost", myProxyIP);  
System.setProperty("https.proxyPort", myProxyPort);  

一方、2番目のWebサービスは、ネットワーク上ですでに到達可能であるため、このプロキシ設定は必要ありません。

私の問題は次のとおりです。

最初のサービス(プロキシ設定のあるサービス)を呼び出してから他のサービスを呼び出すと、直前にシステムプロパティからプロキシ設定を削除した場合でも、Axisクライアントは同じプロキシ設定でこれらのサービスを呼び出そうとします。書き込みによって2nsWSを呼び出しようとしています

 System.setProperty("http.proxySet", "false");  
    System.getProperties().remove("http.proxyHost");  
    System.getProperties().remove("http.proxyPort");  
    AxisProperties.setProperty("http.proxyHost", null);  
    AxisProperties.setProperty("http.proxyPort", null);

私はどこかでnonProxyHostsを使用するために読んでいますが、書くべきかどうか混乱しています

System.setProperty("https.nonProxyHosts","secws.secondwsint.com");

また

System.setProperty("http.nonProxyHosts","secws.secondwsint.com");

http ot https、バイパスする必要があるのはHTTPであり、プロキシを設定しているのはHTTPSであるためです。

私もブログの1つを読みました:

AxisProperties.setProperty("https.proxyHost", "bla1.bla1"); 
AxisProperties.setProperty("https.proxyPort", "8080"); 
AxisProperties.setProperty("https.nonProxyHosts", "secws.secondwsint.com"); 

しかし、https.nonProxyHostsまたはhttp.nonProxyHostsを使用するように再び混乱しました

Javaプログラムで使用することをお勧めするのはどれですか、System.setPropertyまたはAxisProperties.setProperty重要なことに、そのコードラインを作成するためにhttp ot httpsを使用する必要があります。また、他の方法はありますか?

4

1 に答える 1

5

両方を使用できます。ただし、System.setProperty() は VM 内の他の HTTP 関連 Java 関数にも影響しますが、AxisProperties は Axis WS クライアントにのみ影響します。そこで、AxisProperties.setProperty() を選択します。

http プロキシ パラメータのキャッシング メカニズムに関する Axis の問題にバグがあります。基本的に、実装は古いプロキシ設定をキャッシュし、新しい設定を読み取りません。したがって、AxisProperties.setProperty()メソッドを使用しても、まだ機能しません。JIRA は影響を受けるバージョン番号を提供していないため、Axis 1.4 に適用されるかどうかはわかりません。

また、内部 WS は HTTPS ではなく HTTP を使用するため、http.nonProxyHosts を設定する必要があると思います。しかし、別の投稿で、両方を設定しても機能しないと述べました。今でもそうですか?

于 2013-02-26T21:20:31.637 に答える