如何从WSDL文件生成java类

时间:2011-08-03 00:01:32

标签: java android web-services wsdl

我正在努力开发一个Android应用程序。我需要使用Web服务。我有一个wsdl文件,但我想将其转换为java,以便我可以在我的Java程序中使用它的函数。 有没有办法将wsdl文件转换成Java?

8 个答案:

答案 0 :(得分:26)

是的,你可以使用:

Wsdl2java eclipse plugin

有了这一切,您需要的是提供wsdl,并且将自动为您生成Java类的客户端。

答案 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

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服务。最后我用过这个:

http://easywsdl.com/

这只是一个工具,可以生成无需任何更改即可运行的类!