ローカル wsdl ファイルを使用して CXF によって生成されたクライアントがあります。クライアントは正常に接続し、Web サーバーから予期される 401 エラーが発生します。
私が遭遇した問題は、クライアントでプリエンプティブ認証を適切に構成できないことです。
私は無駄に多くのことを試しました。Web 上の例の大部分は、単純な古い Java アプローチではなく、Spring に焦点を当てているようです。
クライアントの主要部分を含めています。誰かがこれをどのように構成する必要があるかの例を教えてくれれば、私はそれを感謝します. 私は空想的なものを探しているわけではないことに注意してください。サービスを認証して呼び出すことができれば十分です。
public final class ServiceNowSoap_ServiceNowSoap_Client {
private static final QName SERVICE_NAME = new QName(
"http://www.service-now.com/foo",
"ServiceNow_foo");
private ServiceNowSoap_ServiceNowSoap_Client() {
}
public static void main(String args[]) throws java.lang.Exception {
URL wsdlURL = ServiceNowCmdbCiComm.WSDL_LOCATION;
if (args.length > 0 && args[0] != null && !"".equals(args[0])) {
File wsdlFile = new File(args[0]);
try {
if (wsdlFile.exists()) {
wsdlURL = wsdlFile.toURI().toURL();
} else {
wsdlURL = new URL(args[0]);
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
ServiceNowFoo ss = new ServiceNowFoo(wsdlURL,
SERVICE_NAME);
ServiceNowSoap port = ss.getServiceNowSoap();
{
System.out.println("Invoking deleteRecord...");
java.lang.String _deleteRecord_sysId = "";
java.lang.String _deleteRecord__return = port
.deleteRecord(_deleteRecord_sysId);
System.out.println("deleteRecord.result=" + _deleteRecord__return);
}
System.exit(0);
}
}