具有基本身份验证的wsimport不允许在用户名或密码中使用@

时间:2018-09-14 01:50:12

标签: web-services wsimport

问题:我正在尝试使用基本身份验证为Web服务调用wsimport工具。 不幸的是,我的密码中包含@ char。

我尝试了以下方法: 我创建了一个Authfile.txt,其中包含以下内容。 http://username:pass@word@hostname:port/ws/mywebservice?wsdl

注意:用户名和密码是访问Web服务的基本身份验证凭据。

然后使用以下选项运行了wsimport工具

wsimport -p com.example.ws -Xauthfile Authfile.txt -Xnocompile -keep -XadditionalHeaders -extension -B-XautoNameResolution http://hostname:port/ws/mywebservice?wsdl

wsimport工具将引发以下错误消息..... [错误]“ http://username:pass@word@hostname:port/ws/mywebservice?wsdl”不是有效的授权信息格式。格式为http [s]:// user:password @ host:port //

1 个答案:

答案 0 :(得分:0)

答案: 通过将@替换为%40来更改Authfile.txt文件的内容,如下所示:

http://username:pass%40word@hostname:port/ws/mywebservice?wsdl

然后我像以前一样运行wsimport

wsimport -p com.example.ws -Xauthfile Authfile.txt -Xnocompile -keep -XadditionalHeaders -extension -B-XautoNameResolution http://hostname:port/ws/mywebservice?wsdl

现在,它生成的Java文件没有错误。

我花了两个多小时来解决此问题。 希望这会有所帮助。