如何在waqs中发布soap web service

来源:互联网 发布:归并排序java运用 编辑:程序博客网 时间:2024/06/06 09:26

一、首先创建一个wsdl文件


1、打开eclipse开发工具,创建一个的java工程



2、在工程中创建一个wsdl文件


3、更改红圈内的属性地址为:
http://localhost:8080/om-waqs/ExcuteTransSoap?trans=waqs-plugins\waqs-integration\service\soap\action.ktr,这个地址是这个web service的处理地址,后面会讲如何创建这个KTR


4、根据实际业务,继续定义input,output的消息结构,此处请查看相关资料。至此,wsdl就定义完成了,保存此文件,留在后面使用。



二、创建一个waqs的soap的wsdl服务

1、打开om-spoon,创建一个服务转换,起名为wsdl.ktr,并创建以下三个步骤,第一步为起始生成记录,注意限制只有1条数据。


2、创建一个javascirpt节点

//定义一个xml对象soap
var soap=new XML();

//将wsdl内容赋给soap
soap=<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.example.org/testwsdl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="testwsdl" targetNamespace="http://www.example.org/testwsdl/">
<wsdl:types>
<xsd:schema targetNamespace="http://www.example.org/testwsdl/">
<xsd:element name="NewOperation">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="NewOperationResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="out" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="NewOperationRequest">
<wsdl:part element="tns:NewOperation" name="parameters"/>
</wsdl:message>
<wsdl:message name="NewOperationResponse">
<wsdl:part element="tns:NewOperationResponse" name="parameters"/>
</wsdl:message>
<wsdl:portType name="testwsdl">
<wsdl:operation name="NewOperation">
<wsdl:input message="tns:NewOperationRequest"/>
<wsdl:output message="tns:NewOperationResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="testwsdlSOAP" type="tns:testwsdl">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="NewOperation">
<soap:operation soapAction="http://www.example.org/testwsdl/NewOperation"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="testwsdl">
<wsdl:port binding="tns:testwsdlSOAP" name="testwsdlSOAP">
<soap:address location="http://localhost:8080/om-waqs/ExcuteTransSoap?trans=waqs-plugins\waqs-integration\service\soap\action.ktr"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>;

//将soap转为字符串输出



var soapstr = soap.toXMLString();
将soapstr串输出:



3、创建文本输出节点,选择servlet选择框



三、创建soap处理服务,起名为action.ktr,即第一部份中,http://localhost:8080/om-waqs/ExcuteTransSoap?trans=waqs-plugins\waqs-integration\service\soap\action.ktr,这个地址对应的服务,实际的执行处理服务

1、创建获取变量步骤,定义一个转换内字段为soap,变值名必须为${soap},此处是waqs平台由ExcuteTransSoap中定义的名称,不能改变



2、创建处理soap请求的javascript步骤




3、创建返回响应的javascript步骤



4、创建文本输出响应,将组拼的responseXML串返回



注:waqs平台暂时没有对wsdl的输入输出结构的解析能力,这里需要借助第三方工具,对荐soapUI来实现:

1、创建一个soapUI工程




2、输入wsdl文件地址,选中红框的选项
wsdl地址中,不能使用\,必须通过urlEncode转义成%5C,示例:
http://localhost:8080/om-waqs/ExcuteTransSoap?trans=waqs-plugins%5Cwaqs-integration%5Cservice%5Csoap%5Cwsdl.ktr




3、点击request1和response1可得到请求及响应的消息结构


0 0
原创粉丝点击