首页 > 解决方案 > 具有基本身份验证的 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//

标签: web-serviceswsimport

解决方案


答:通过将@替换为 %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文件。

我花了几个多小时试图解决这个问题。希望这可以帮助。


推荐阅读