wsimport具有特殊字符和Xauthfile

时间:2014-12-05 15:12:35

标签: web-services ssl soapui wsimport xauth

我面临的问题是这个人在这里:

  

wsimport Xauthfile error

由于他没有给出反馈,我是新来的,不能问他是否解决了他的问题我正在提出一个新问题。

我正在使用ubuntu并安装了java oracle的JDK7。

我正在使用第三方网络服务。 Web服务的密码(... GT @#ED ...)的字符与de -Xauthfile语法(http [s]:// user:password @ host:port //)冲突,因为“@ ”。点(...)代表我的其余密码。

这是我正在运行的命令:

wsimport -p loa -Xauthfile "path_to_auth.txt" https://myWS?wsdl

在我的auth.txt文件中,我有:

https://user:...GT@#ED...@myWS?wsdl

作为回报获得

parsing WSDL...    
[ERROR] Server returned HTTP response code: 401 for URL: https://myWS?wsdl,  
"https://myWS?wsdl" needs authorization, please provide authorization file with
read access at /home/user_name/.metro/auth or use -Xauthfile to give the 
authorization file and on each line provide authorization information using this 
format : http[s]://user:password@host:port//<url-path>

我在网上搜索,但没有成功。

当我尝试使用SoapUI导入WS时,就像在这个tutorial中我得到了一个

[ERROR] sun.security.validator.ValidatorException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid 
certification path to requested target

我不知道在哪里为SoapUI指定ssl文件。我试过

  

偏好设置 - &gt; SSL设置

但没有幸运。

就是这样。我会帮助你。

修改

好的,所以我通过授权,使用HTML URL Encoding Reference更改字符,但现在我收到以下错误

[ERROR] Server redirected too many  times (20),  "https://ws?wsdl" needs 
authorization, please provide authorization file with read access at /home/user
/.metro/auth or use -Xauthfile to give the authorization file and on each line 
provide authorization information using this format : 
http[s]://user:password@host:port//<url-path>

2 个答案:

答案 0 :(得分:0)

我使用的是Apache axis2而不是wsimport。首先,这个问题对我来说是发生了,我写了一个bash脚本,它起作用了。

#!/bin/bash
/axis2-1.7.9/bin/wsdl2java.sh -uri http://username:password@domain/x?wsdl 

我还通过“ URL编码”(例如下面)使用编码密码和用户名:

@#%g3E99! -(URL编码)->%40%23%25g3E99%21

答案 1 :(得分:-1)

首先创建auth.txt文件,您需要在其中放置以下内容并将其保存在C盘中:

http://username:password@localhost:port/wsdlurl

现在运行以下命令:

wsimport -Xauthfile C:\auth.txt -keep http://example.com/test?wsdl 

这对我有用。