加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

来自给定wsdl文件的“java form generator”

发布时间:2020-12-15 00:38:16 所属栏目:Java 来源:网络整理
导读:我正在尝试在 java中开发一个表单生成器,用户可以在其中编写一个wsdl url并获取ComboBox中Web服务支持的操作列表.当用户选择ComboBox中的一个项目时,他将看到使用wsdl url生成的表单字段. 我是网络服务技术的新手,在网上搜索网络服务解析器后,我决定使用轴库
我正在尝试在 java中开发一个表单生成器,用户可以在其中编写一个wsdl url并获取ComboBox中Web服务支持的操作列表.当用户选择ComboBox中的一个项目时,他将看到使用wsdl url生成的表单字段.

我是网络服务技术的新手,在网上搜索网络服务解析器后,我决定使用轴库.但我真的不知道我应该解析wsdl文档的哪一部分

我不是要创建Web服务的java类,我必须为任何wsdl url生成表单字段.

例如,这是一个提供9个操作的Web服务

http://services.aonaware.com/DictService/DictService.asmx

和wsdl文件在这里:

http://services.aonaware.com/DictService/DictService.asmx?WSDL

我需要知道应该解析wsdl文件的哪些部分,任何帮助将不胜感激.

解决方法

要开始使用WSDL并了解如何构建这样的文档,您应该查看一些文章,如 Understanding WSDL或 WSDL Tutorial或您可以在Google上找到的任何其他初学者资源.

现在,要以简化的方式回答您的问题,您必须从包含以下内容的portType元素开始:

An abstract set of operations supported by one or more endpoints (commonly known as an interface); operations are defined by an exchange of messages

例如,在您的情况下:

<wsdl:operation name="DictionaryList">
  <wsdl:documentation>Returns a list of available dictionaries</wsdl:documentation>
  <wsdl:input message="tns:DictionaryListSoapIn"/>
  <wsdl:output message="tns:DictionaryListSoapOut"/>
</wsdl:operation>

并且,对于每个操作,您将需要解析输入和输出消息,消息是:

A definition of an abstract message that may consist of multiple parts,each part may be of a different type.

这里,例如前一操作的输入消息是:

<wsdl:message name="DictionaryListSoapIn">
  <wsdl:part name="parameters" element="tns:DictionaryList"/>
</wsdl:message>

然后,要了解消息的内容,请查看类型:

A container for abstract type definitions defined using XML Schema

这里,DictionaryList元素被定义为一个空的compleType:

<s:element name="DictionaryList">
  <s:complexType/>
</s:element>

正如我所说,这实际上是一个非常简化的答案,因为WSDL不能用四个段落来概括,而且说实话,你要做的事情实际上并不是一项微不足道的任务.让我重新说一下:会有血!所以,即使这几行可以帮助你(很少)开始,我绝对不会从头开始这样的项目,而是使用现有的库或工具(如Xydra或Eclipse XML Forms Generator或……)将允许不重新发明轮子.

顺便说一句,我注意到你已经决定使用Axis并且你不想生成Java类,但我还是热烈地建议不要使用Axis.实际上,我使用捆绑在Java 6中的JAX-WS RI,它是一个更容易的API.为了以防万一,要生成Java类,只需执行:

$mkdir generated
$wsimport -d generated http://services.aonaware.com/DictService/DictService.asmx?WSDL

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读