如何使用Java访问.wsdl
文件中的公开方法?另外,编写Java客户端和使用Web服务涉及哪些步骤?如何编写Java客户端来访问WSDL文件?
回答
我建议从Eclipse Java EE中的Web Service Explorer开始。这使您可以调查给定WSDL的任何Web服务。
将WSDL转换为Java的指令取决于您要使用的Web服务库。如果使用Java 6,则会建立Metro栈。
您将需要从WSDL文件生成Java代理。您可以使用Apche CXF或Apache Axis/Axis2来生成Java代理/ Java客户端。
在Java 6中,您也可以生成Java客户端。在JDK/bin上有wsimport来生成Web服务客户端或在Axis中,有WSDL2Java,它执行与wsimport相同的操作。
除了The Elite Gentleman's answer,这里是我的步骤,我成功地用来生成类是能够使用Web服务: 命令:
wsimport -Xnocompile -keep -b binding.xml wsdlFile.wsdl
说明:
- '-Xnocompile' 禁止显示.class文件的生成
- '-keep'确保生成的Java文件不会被删除(默认情况下,只保留.class文件)
- '-b'指定绑定配置文件。这是必要的! (见下)
我有问题,Java类包含JAXBElement<Type>
包装类。 因此,而不是类型String
的类成员,我会得到类型JAXBElement<String>
,这是可怕的使用。随着-b
开关wsimport
及以下binding.xml
文件,你会得到正确的类型:
<jaxb:bindings version="2.0"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jaxb:bindings>
<jaxb:globalBindings generateElementProperty="false" />
</jaxb:bindings>
</jaxb:bindings>
我希望这有助于。 wsimport
然后生成您需要的所有类以及包含所有Web服务方法的方法的类。
默认情况下,这些方法没有读取超时(在请求时会说出网络问题...),请参阅here,以了解当时的问题。
我会看看让你的IDE自动生成一切。
在NetBeans中,步骤是:
右击你的项目,单击 “添加Web服务客户端”,进入WDSL URL,然后单击Finish。
这将自动为您创建Java代理。
要在代码中实现客户端,请将所需方法(位于项目中的Web服务引用中)拖放到代码中。
+1我刚要推荐它。在这种情况下,NetBeans使它变得微不足道。 – Rekin 2010-08-18 19:23:17
soapUI是允许您轻松进入WSDL/SOAP世界的软件之一。您可以生成带有测试值的SOAP请求以发送到服务器。您还可以看到服务器的SOAP响应。这将让你更多地理解WSDL/SOAP。要从wsdl生成java代码,请参阅上面的建议。
使用wsimport -keep
这将给你所有的类。然后编写一个不同的服务类并复制生成的服务类中的所有方法。将你自己的服务类传递给wsgen -keep -p
。它会给你需要的包装类(jax-ws),你将从你的委托调用方法返回。
使用IDE时,这很简单。让我们以netbeans为例。
- 来打开NetBeans
- 通过点击文件中创建一个新的项目,并选择新的项目
- 下选择应用类别下和Java的应用程序的一个java
- 右键点击你新建的项目,并选择新的选择web 服务客户端。
NetBeans将要求一个WSDL和客户端位置
[WSDL和客户端的位置] [1]
[1]: https://i.stack.imgur.com/yWQZv.png
选择WSDL和输入网址的WSDL位置的
点击完成,将为您创建所有方法
您在这里的任务是调用方法并传递参数
- 1. wsdl客户端java
- 2. java访问客户端文件系统
- 3. C#中的SOAP客户端无法访问WSDL文件
- 4. WSDL客户端问题,PHP
- 5. 是否可以编写Java客户端来访问Tensorflow服务器?
- 6. 远程文件访问客户端
- 7. Sharepoint 2007客户端访问文件
- 8. 访问客户端文件系统
- 9. 使用Java编写FTP客户端6
- 10. 来自WSDL的Spring-ws客户端
- 11. WSDL到Java - 客户端创建错误
- 12. 如何编写Google Wave富客户端?
- 13. 如何编写perforce客户端规范?
- 14. 客户端访问AS400 Java包装
- 15. 为什么.java文件(servlet)无法访问客户端?
- 16. 如何部署客户端服务WSDL
- 17. 如何测试SOAP(wsdl)客户端?
- 18. 如何从.net中的WSDL文件生成客户端?
- 19. C#客户端如何调用wsdl文件
- 20. 如何访问客户端头请求
- 21. Zeep的Python SOAP客户端 - 访问密码保护wsdl
- 22. 在CXF动态客户端上加载WSDL之前访问HttpConduit
- 23. 如何编写PHP代码来评估客户端IP?
- 24. 从CLI客户端编写GUI客户端的任何建议?
- 25. 如何在java中编写HTTPS Web服务客户端?
- 26. 基于maven中的wsdl文件生成wsdl文件和webservice客户端
- 27. ActiveMQ STOMP客户端访问
- 28. 仅客户端Dropbox访问
- 29. 客户端CAPI访问
- 30. 如何访问(编译时间)配置变量客户端?
如何使用wsipmort.exe文件? – sarah 2010-08-16 11:52:00
点击'wsimport'上的链接,并提供解决方案。 – 2010-08-16 12:11:27