使用Java访问Web服务

使用Java访问Web服务,java,web-services,wsdl,Java,Web Services,Wsdl,如果这是重复的,我提前道歉,我已经搜索了几个小时,什么也找不到 我正试图连接到一个基于SOAP的web服务,该服务通过Java(特别是Tomcat)应用程序提供WSDL。我以前在.Net中做过这件事,这再简单不过了。我只需单击“AddWebReference”并将其指向WSDL,它就为我生成了所有存根和封送/解封送代码。我听说过XJC,这似乎很有希望,尽管我似乎找不到任何关于它的最新信息(一切都是从2002年开始的,似乎有很多断开的链接)。我找到了一个教程,其中他们手动生成了soapxml,但这

如果这是重复的,我提前道歉,我已经搜索了几个小时,什么也找不到

我正试图连接到一个基于SOAP的web服务,该服务通过Java(特别是Tomcat)应用程序提供WSDL。我以前在.Net中做过这件事,这再简单不过了。我只需单击“AddWebReference”并将其指向WSDL,它就为我生成了所有存根和封送/解封送代码。我听说过XJC,这似乎很有希望,尽管我似乎找不到任何关于它的最新信息(一切都是从2002年开始的,似乎有很多断开的链接)。我找到了一个教程,其中他们手动生成了soapxml,但这似乎比它需要的效率要低得多。XJC会做我想要的吗?(也就是说,生成类存根以及用于封送和解封送我的请求的代码)如果是这样,您能推荐一个教程/文档吗


提前谢谢

试试Java IDE,比如Eclipse。我所知道的所有工具都有您在VisualStudio中描述的Web服务工具。如果选择Eclipse,请确保使用EclipseIDEforJavaEE开发人员包。

Chris,首先尝试标准的JAX-WS。向下滚动以查看客户端:

我在Eclipse上运气很好。转到“新建”->“其他”。然后在“Web服务”中选择“Web服务客户端”。将滑块放在“DeployClient”上,并将其指向wsdl,它应该会生成可用的客户端代码

您还可以查看模块。这使得生成客户机变得非常简单


从JetBrains还将从WSDL为您生成一个客户端

您应该做的是使用JAX-WS实现。大多数IDE(Netbeans、Eclipse、IntelliJ IDEA)都有与您所使用的.Net类似的工具。您也可以从命令行执行此操作(就像.Net wsdl.exe版本一样)

如果您选择Netbeans,它将使用它附带的默认Jax-WS实现(Metro)。一个非常好的替代方案是ApacheCXF(http://cxf.apache.org/)

CXF提供了一个命令行工具wsdl2java,它的作用与您所说的完全相同,它为您提供的WSDL生成存根(Java类)。

正如jbx所述,JAX-WS实现是一个不错的选择。apachecxf的一个替代方案是

可能超出了范围,但是如果您使用Java并且对敏捷web开发感兴趣,(Groovy)可能会感兴趣。它让您可以编写旧式java代码或groovy代码,或者两者兼而有之,非常方便。它也有一些“神奇”的东西来帮助你


Grails可以与Apache CXF配合使用,但也有一些非常易于使用的库,如GroovyWS。

我实际上在使用spring之前找到了此文档,这似乎是一个自然的选择。然而,无论是以前还是现在,当我再次阅读它时,我似乎找不到任何关于生成存根客户机代码的内容。我继续让eclipse为我做了这件事,但我确信它就在那里,我只是睡眼惺忪……谢谢!