detergentex icon indicating copy to clipboard operation
detergentex copied to clipboard

Problem with erlsom parsing

Open KamilLelonek opened this issue 9 years ago • 5 comments

I get the following error:

iex(1)> Detergentex.call("http://webapi.allegro.pl/service.php?wsdl", "doQuerySysStatus", [])
** (throw) {:error, 'Struct doesn\'t match model: recordtype not expected: p:doQuerySysStatus'}
    (erlsom) src/erlsom_write.erl:357: :erlsom_write.findAlternative/4
    (erlsom) src/erlsom_write.erl:258: :erlsom_write.processSubType/5
    (erlsom) src/erlsom_write.erl:241: :erlsom_write.processElementValues/7
    (erlsom) src/erlsom_write.erl:132: :erlsom_write.struct2xml/6
    (erlsom) src/erlsom_write.erl:323: :erlsom_write.processAlternativeValue/8
    (erlsom) src/erlsom_write.erl:241: :erlsom_write.processElementValues/7
    (erlsom) src/erlsom_write.erl:116: :erlsom_write.struct2xml/6
    (erlsom) src/erlsom_write.erl:323: :erlsom_write.processAlternativeValue/8

even if I have this operation listed:

iex(2)> Detergentex.init_model("http://webapi.allegro.pl/service.php?wsdl")
{:wsdl,
 [
  {:operation, 'serviceService', 'servicePort', 'doQuerySysStatus',
   'serviceBinding', 'https://webapi.allegro.pl/service.php',
   '#doQuerySysStatus'},
  ...
 {:model,
  [{:type, :_document, :sequence,
    [{:el,
      [
       {:alt, :"p:doQuerySysStatusResponse", :"p:doQuerySysStatusResponse", [],
        1, 1, true, :undefined},
        ...
      ]
  }]}]}
 ]
 ...
}

What may be the reason?

KamilLelonek avatar Oct 12 '15 08:10 KamilLelonek

I've had some problems with erlsom and nested structures. I have tried sending tuples and maps but no success so far. Are you still experiencing these problems ?

r-icarus avatar Oct 26 '15 17:10 r-icarus

same problem here...I'm not able to make it work. Any suggestion?

matteosister avatar Nov 30 '15 00:11 matteosister

I'm experiencing the same issue. See the following Stack Overflow question for more information and a similar stack trace: Elixir call Axis2 Java SOAP Web Service with detergentex and detergent

sveinfid avatar Dec 15 '15 18:12 sveinfid

I just found something that might be helpful. http://erlang.org/pipermail/erlang-questions/2008-July/036759.html you might have to bypass detergentex and try it with :detergent first.

r-icarus avatar Dec 15 '15 23:12 r-icarus

@sveinfid I get somewhere different with this:

wsdl = :detergent.initModel('http://www.thomas-bayer.com/axis2/services/BLZService?wsdl','p')
:detergent.call(wsdl, 'getBank', [], '123')

But still missing something.

r-icarus avatar Dec 16 '15 01:12 r-icarus