我正在努力开发一个Android应用程序。我需要使用Web服务。我有一个wsdl文件,但我想将其转换为java,以便我可以在我的Java程序中使用它的函数。 有没有办法将wsdl文件转换成Java?
答案 0 :(得分:26)
答案 1 :(得分:12)
只是为了从wsdl生成java类,我最好的工具是“cxf wsdl2java”。它非常简单易用。我发现在axis2中有一些数据类型的复杂性。 但遗憾的是,您不能在Android应用程序中使用这些客户端存根代码,因为编译时需要android environment doesn't allow the "java/javax" package name,除非您重命名包名称。
在android.jar中,所有用于Web服务消耗的javax。*源都不可用。为了解决这些问题,我为android开发了这个WS Client Generation Tool。
在后台,它使用“cxf wsdl2java”为你生成android平台的java客户端存根,并且我已经编写了一些消息来更智能地使用web服务。
只需提供wsdl文件位置,它将为您提供源代码和一些库。你必须把源和库放在你的项目中。你可以在我们的企业项目中以一种“方法调用方式”调用它,你不需要知道命名空间/肥皂动作等。例如,你有一个登录服务,你需要做什么是:
LoginService service = new LoginService ( );
Login login = service.getLoginPort ( );
LoginServiceResponse resp = login.login ( "someUser", "somePass" );
它完全开放且免费。
答案 2 :(得分:8)
jdk 6带有 wsimport ,可以用来从WSDL创建Java类。 它还创建了一个服务类。
http://docs.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html
答案 3 :(得分:5)
我创建了一个自动解析和连接到Web服务的好工具
http://www.wsdl2code.com/pages/Example.aspx
SampleService srv1 = new SampleService();
req = new Request();
req.companyId = "1";
req.userName = "userName";
req.password = "pas";
Response response = srv1.ServiceSample(req);
答案 4 :(得分:5)
假设您已安装 JAXB 转到以下目录 C:\ Program Files \ jaxb \ bin 在这里打开命令窗口
<强>&GT; xjc -wsdl http://localhost/mywsdl/MyDWsdl.wsdl C:\ Users \ myname \ Desktop
C:\ Users \ myname \ Desktop 是您可以根据自己的喜好更改的输出文件夹
http://localhost/mywsdl/MyDWsdl.wsdl 是WSDL的链接
答案 5 :(得分:4)
您可以使用之前Oscar建议的eclipse插件。或者,如果您是命令行人员,则可以从命令提示符处使用Apache Axis WSDL2Java工具。您可以在http://axis.apache.org/axis/java/reference.html#WSDL2JavaReference
找到更多详细信息答案 6 :(得分:2)
您可以使用WSDL2JAVA Codegen (或)您只需使用Eclipse IDE中提供的“ Web服务/ WebServiceClient ”向导即可。 打开IDE并按“Ctrl + N”,选择“ Web服务/ WebServiceClient ”,指定wsdl URL,输出文件夹并选择完成。
它会创建您需要的完整源文件。
答案 7 :(得分:2)
我有非常复杂的WCF Web服务,我尝试了一些不同的工具,但在大多数情况下我无法连接到我的Web服务。最后我用过这个:
这只是一个工具,可以生成无需任何更改即可运行的类!