[英]wsimport: class customization bindings when generating a Java SOAP client
[英]Issue with wsimport authentication when generating SOAP Java client
我使用以下命令為Java生成Web服務客戶端文件。
wsimport -keep http://test.com/test?wsdl -xauthfile auth.txt
以下是auth.txt
但是, password
具有特殊字符,如abcw@sdsds
。 所以我得到了錯誤的格式錯誤。 所以我已經編碼了像abcw%40sdsds
這樣的密碼。 但是,現在由於解析錯誤密碼而導致身份驗證錯誤。
有什么方法可以處理這種情況?
在線檢查后,我發現此錯誤實際上已在最新版本中修復。 但是我仍然遇到同樣的問題。 您可以參考以下鏈接以獲取有關該錯誤的信息。
https://github.com/javaee/metro-jax-ws/issues/1101
因此,我最終使用Java中的HTTP客戶端通過NTLM身份驗證提出了自定義HTTP請求。
String bodyAsString = ""; //Provide Input SOAP Message
CredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(AuthScope.ANY,
new NTCredentials("UserName", "Password", "Host", "Domain"));
HttpClient client = HttpClientBuilder.create().setDefaultCredentialsProvider(credsProvider).build();
HttpPost post = new HttpPost("URL"); //Provide Request URL
try
{
StringEntity input = new StringEntity(bodyAsString);
input.setContentType("text/xml; charset=utf-8");
post.setEntity(input);
post.setHeader("Content-type", "text/xml; charset=utf-8");
post.setHeader("SOAPAction", ""); //Provide Soap action
org.apache.http.HttpResponse response = client.execute(post);
HttpEntity responseEntity = response.getEntity();
if (responseEntity != null)
{
return EntityUtils.toString(responseEntity);
}
}
我從以下github鏈接https://github.com/sujithtw/soapwithntlm獲得了上述解決方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.