使用apachecxf、soapUI(或Eclipse)和Fiddler创建客户机

使用apachecxf、soapUI(或Eclipse)和Fiddler创建客户机,eclipse,cxf,soapui,fiddler,wsdl2java,Eclipse,Cxf,Soapui,Fiddler,Wsdl2java,我的目标是使用ApacheCXF创建web服务的客户机,该客户机位于主机()中,我只能通过putty隧道到达 L8400 -> serverOutOfThisWorld:443 我在主机中添加了以下内容: localhost serverOutOfThisWorld 这样我就可以把我的浏览器 https://serverOutOfThisWorld:8400/Bus/SomeWebService?wsdl 现在,我可以从web浏览器毫无问题地访问此wsdl。但此WSDL有一些指向此

我的目标是使用ApacheCXF创建web服务的客户机,该客户机位于主机()中,我只能通过putty隧道到达

L8400 -> serverOutOfThisWorld:443
我在主机中添加了以下内容:

 localhost serverOutOfThisWorld
这样我就可以把我的浏览器

https://serverOutOfThisWorld:8400/Bus/SomeWebService?wsdl
现在,我可以从web浏览器毫无问题地访问此wsdl。但此WSDL有一些指向此web的导入,例如:

 <xsd:import namespace="http://inter.es/scsp/esquemas/datos" 
        schemaLocation="https://serverOutOfThisWorld/scehma/data.xml"/>
 <xsd:import ....
似乎在cmd/wsdl2Java中没有使用fiddler


另一个选项是对eclipse进行同样的尝试。。但最后,eclipse还使用wsd2java来创建客户机。我能做什么

这可能不是对你问题的直接回答。让我试着解释一下我在这种情况下会做什么

我只是将所有Wsdl和xsd文件下载到同一个目录,而不是使用代理和重定向。之后,我用简单的文件名更新所有导入语句。由于所有文件都在同一个目录中,所以我只在import语句中使用名称,不需要其他路径定义

如果我想使用SoapUI,我只需要使用我的WSDL版本,然后根据需要将端点更新为真实的端点(在您的情况下,这将是fiddler地址)


如果我想生成java客户机,我只需使用带有
wsdl2java
的命令行即可。同样,在使用此客户端时,我会相应地覆盖其连接地址。

这可能不是对您问题的直接回答。让我试着解释一下我在这种情况下会做什么

我只是将所有Wsdl和xsd文件下载到同一个目录,而不是使用代理和重定向。之后,我用简单的文件名更新所有导入语句。由于所有文件都在同一个目录中,所以我只在import语句中使用名称,不需要其他路径定义

如果我想使用SoapUI,我只需要使用我的WSDL版本,然后根据需要将端点更新为真实的端点(在您的情况下,这将是fiddler地址)


如果我想生成java客户机,我只需使用带有
wsdl2java
的命令行即可。同样,在使用该客户端时,我会相应地覆盖它的连接地址。

最后,我设法实现了这一点。您必须编辑wsdl2java(.bat或sh)并设置选项以使代理在Fiddler中工作:

"%JAVA_HOME%\bin\java" -Xmx128M -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8888

现在我有了另一个问题(使用相同的类名),但这是另一个问题(可能通过绑定名称或其他方式解决)。

最后,我设法解决了这个问题。您必须编辑wsdl2java(.bat或sh)并设置选项以使代理在Fiddler中工作:

"%JAVA_HOME%\bin\java" -Xmx128M -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8888 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8888

现在我有了另一个问题(使用相同的类名),但这是另一个问题(可能通过绑定名称或其他方式解决)。

我是wsdl和定义方面的新手,我不确定是否要在生成的类中更改端点。另外,在命令行中使用wsd2java和wsdl local时,我遇到了很多错误(元素类别具有相同的名称,等等),尽管它可能与awsdl lcal/remote无关。在这一点上,我试图接近服务器上的WSDL定义。另外,我不能有一个固定的端点,因为我们有3个环境(Test、Pre和Pro),无论如何,感谢您的评论,这将是我的最后一个项目:)我是wsdl和定义方面的新手,我不确定是否要在生成的类别中更改端点。另外,在命令行中使用wsd2java和wsdl local时,我遇到了很多错误(元素类别具有相同的名称,等等),尽管它可能与awsdl lcal/remote无关。在这一点上,我试图接近服务器上的WSDL定义。另外,我不能有一个固定的端点,因为我们有3个环境(Test、Pre和Pro),无论如何,感谢您的评论,这将是我的最后一个项目:)