ashwinkm / Boomerang-app-support

Boomerang is an unique app which allows you to work with both SOAP & REST based web services.
10 stars 0 forks source link

"Unexpected error occurred" when adding a service #50

Open zhengyq opened 7 years ago

zhengyq commented 7 years ago

image

Here's my wsdl file:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://request.facade.finscprod.com" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="http://api.facade.finscprod.com" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://api.facade.finscprod.com">
  <wsdl:types>
    <xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://request.facade.finscprod.com">
      <xsd:complexType name="TestRequest">
        <xsd:sequence>
          <xsd:element minOccurs="0" name="age" nillable="true" type="xsd:int" />
          <xsd:element minOccurs="0" name="gender" nillable="true" type="xsd:string" />
          <xsd:element minOccurs="0" name="name" nillable="true" type="xsd:string" />
        </xsd:sequence>
      </xsd:complexType>
    </xsd:schema>
    <xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://api.facade.finscprod.com">
      <xsd:element name="test">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="ns1:TestRequest" />
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="testResponse">
        <xsd:complexType />
      </xsd:element>
      <xsd:element name="testCustomValidator">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="ns1:TestRequest" />
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="testCustomValidatorResponse">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string" />
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="testResponse">
    <wsdl:part name="parameters" element="tns:testResponse" />
  </wsdl:message>
  <wsdl:message name="testCustomValidatorRequest">
    <wsdl:part name="parameters" element="tns:testCustomValidator" />
  </wsdl:message>
  <wsdl:message name="testRequest">
    <wsdl:part name="parameters" element="tns:test" />
  </wsdl:message>
  <wsdl:message name="testCustomValidatorResponse">
    <wsdl:part name="parameters" element="tns:testCustomValidatorResponse" />
  </wsdl:message>
  <wsdl:portType name="8080/services/testFacadePortType">
    <wsdl:operation name="test">
      <wsdl:input name="testRequest" message="tns:testRequest" />
      <wsdl:output name="testResponse" message="tns:testResponse" />
    </wsdl:operation>
    <wsdl:operation name="testCustomValidator">
      <wsdl:input name="testCustomValidatorRequest" message="tns:testCustomValidatorRequest" />
      <wsdl:output name="testCustomValidatorResponse" message="tns:testCustomValidatorResponse" />
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="8080/services/testFacadeHttpBinding" type="tns:8080/services/testFacadePortType">
    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="test">
      <wsdlsoap:operation soapAction="" />
      <wsdl:input name="testRequest">
        <wsdlsoap:body use="literal" />
      </wsdl:input>
      <wsdl:output name="testResponse">
        <wsdlsoap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="testCustomValidator">
      <wsdlsoap:operation soapAction="" />
      <wsdl:input name="testCustomValidatorRequest">
        <wsdlsoap:body use="literal" />
      </wsdl:input>
      <wsdl:output name="testCustomValidatorResponse">
        <wsdlsoap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="8080/services/testFacade">
    <wsdl:port name="8080/services/testFacadeHttpPort" binding="tns:8080/services/testFacadeHttpBinding">
      <wsdlsoap:address location="http://localhost:8080/services/testFacade" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

And I'm using Boomerang 3.3.6, Chrome 61.0.3163.100, mac OS Sierra 10.12.6

zhengyq commented 7 years ago

@ashwinkm Could you please take a look at this issue?

ashwinkm commented 7 years ago

Thank you for posting your WSDL file. I can reproduce this issue on my system. In your WSDL file, type names contains slash(/) in it, which Boomerang considers it as a xPath and tries to evaluate it. This causes the error.

type="tns:8080/services/testFacadePortType"

I am not sure whether it is valid to have slash character in a type name.! Can you please tell me what tool you used to generate this WSDL file?

zhengyq commented 7 years ago

@ashwinkm This wsdl file is generated by the framework I'm using in my company. I'm no sure about the details but I think it's using xfire, version 1.2.10_fix2

zhengyq commented 7 years ago

@ashwinkm Any solutions of this issue? Why Boomerang cares about the type name and tries to evaluate it?

ashwinkm commented 7 years ago

I am working on this issue. Fix will be released in next two days. Type name is required to find the schema details of an operation.

zhengyq commented 7 years ago

@ashwinkm Great! Thanks a lot!

ashwinkm commented 7 years ago

Partially fixed in v3.4.1. Need more test cases or WSDL.

ashwinkm commented 7 years ago

@zhengyq Can you please update your app and verify this issue? To update, please goto chrome://extensions/ , select 'Developer mode' check box and click 'Update extensions now' button

zhengyq commented 7 years ago

@ashwinkm Well...I cannot connect to the chrome web store these days, neither can i update Boomerang. So do you have the .crx file of the newest version of Boomerang?

ashwinkm commented 7 years ago

You can download it from here. Paid features are not available in this version. Please note that Chrome has stopped support for installing extensions from other sources . Chrome will automatically disable the extension on every launch.

zhengyq commented 7 years ago

@ashwinkm I've finally updated Boomerang and verified this issue on my system! Boomerang now works perfectly with my wsdl file! Great work and thanks a lot!