私のプロジェクトでは、xfire を Web サービス クライアント API として使用しています。私のプロジェクトはレガシー サーブレット/JSP です。XFire Eclipse プラグインを使用して、クライアント スタブを生成しました。
Web サービスは SLL (HTTPS) に移行しました。XFire で SSL 経由で Web サービスを利用する簡単な方法はありますか。
http://docs.codehaus.org/display/XFIRE/HTTP+Transportでいくつかのコードを見つけました。そこにも戸惑いがあります。アルファ版を使用する動機がnot-so-common-ssl
あり、本番環境で使用するのに十分安定しているかどうかはわかりません.
// Technique similar to http://juliusdavies.ca/commons- ssl/TrustExample.java.html
HttpSecureProtocol protocolSocketFactory = new HttpSecureProtocol();
// "/thecertificate.cer" can be PEM or DER (raw ASN.1). Can even be several PEM certificates in one file.
TrustMaterial trustMaterial = new TrustMaterial(getClass().getResource("/thecertificate.cer"));
// We can use setTrustMaterial() instead of addTrustMaterial() if we want to remove
// HttpSecureProtocol's default trust of TrustMaterial.CACERTS.
protocolSocketFactory.addTrustMaterial(trustMaterial);
// Maybe we want to turn off CN validation (not recommended!):
protocolSocketFactory.setCheckHostname(false);
Protocol protocol = new Protocol("https", (ProtocolSocketFactory) protocolSocketFactory, 8443);
Protocol.registerProtocol("https", protocol);
上記は、プロトコル ファクトリを作成し、それを Apache HTTPclient api に登録する方法です。しかし、id は、生成されたスタブをさらにどうするかを示していません。
追加情報があればお気軽にお尋ねください。
他の Web サービス クライアント API に移行することはできないため、これはオプションではありません。