Hi @rkhapre, sorry for the frustration with using this plugin.
It is true that http plugin is too low-level for SOAP calls but as not specific plugin is available for that it should still be possible with perseverance.
Sorry that I cannot test it further but this should hopefully drive you towards a solution.
there is a specific config for the content_type
headers is a hash meaning there is a better way to write in the configuration, see below
this plugin does not support basic auth as-is, you need to supply the Authorization header manually
the form config is not what you want, writing a SOAP message require the message format with the message config, I do not recall how to write multiline string in config, so you may preferably inline your XML
to use event fields in the message you must use the logstash sprintf syntax ${fieldname}, in case of nested fields (objects) the syntax is ${"[outer][inner]"}
First of all thanks a lot for replying me on this post. Really appreciate for this
I tried what you have suggested here , but no luck.
For URL i want to know information that shall i use WSDL URL or endpoint url?
I tried with both, but now i am not getting any error message in the log file using --debug
After a certain step the logstash closes on its own
So basically its not fitting the purpose
Below is the header which work perfectly in SOAP UI
The plugin you points to is unusable, it should be reworked to fit logstash plugin architecture first.
What version of logstash are you using ?
From your soap-ui example I added the URL parameter in my previous post, can you be more specific about "I tried what you have suggested here , but no luck." In debug mode you should see logs from the http output plugin for success or failure normally
It is true that request that are responded with a 200 will not produce any log.
Can you try using a HTTP sniffer like wireshark or Fiddler to check what are the request/response that are send/received by logstash, it seems the only way
I tried this again after re writing the conf file from scratch
which is think more concrete based on your inputs
now i am getting this error
{:timestamp=>"2016-08-30T23:00:43.473000+0530", :message=>"[HTTP Output Failure] Encountered non-200 HTTP code 200", :response_code=>500, :url=>"https://xyz.com:443/acnUsersService/UserService", :event=>#<LogStash::Event:0x11992019 @metadata_accessors=#<LogStash::Util::Accessors:0x663dcd5b @store={}, @lut={}>, @cancelled=false, @data={"message"=>"New low cost houses for middle-class family.\nHouse according to average income salary\n", "@version"=>"1", "@timestamp"=>"2016-08-28T16:30:14.000Z", "received"=>"by 10.176.81.69 with HTTP; Sun, 28 Aug 2016 09:30:14 -0700", "date"=>"Sun, 28 Aug 2016 22:00:14 +0530", "from"=>"User Lake <Userlake@zzz.com>", "to"=>"User Lake <sdfg@zzz.com>", "message-id"=>"<CAHDMMzAXSmScA-L8qD+MTBA4MDO9YNTD+c+1jX=07xEx2GjWoA@mail.zzz.com>", "subject"=>"New Houses for Middle Classes", "mime-version"=>"1.0", "content-type"=>"multipart/alternative; boundary=001a114f37ea2401b5053b244355", "delivered-to"=>"sdfg@zzz.com"}, @metadata={}, @accessors=#<LogStash::Util::Accessors:0x3a1506a9 @store={"message"=>"New low cost houses for middle-class family.\nHouse according to average income salary\n", "@version"=>"1", "@timestamp"=>"2016-08-28T16:30:14.000Z", "received"=>"by 10.176.81.69 with HTTP; Sun, 28 Aug 2016 09:30:14 -0700", "date"=>"Sun, 28 Aug 2016 22:00:14 +0530", "from"=>"User Lake <sdfg@zzz.com>", "to"=>"User Lake <sdfg@zzz.com>",
Sadly the plugin logging is incomplete and will not give you the Soap Fault that is in the response body...
Do you have access to the SOAP server logs, otherwise you need Wireshark to know what is the content of this response
On the other hand, do you have several config files in your running logstash, because this event is clearly an event created by the imap input, and your config above only talk about reading a csv file.
So I suspect you have 2 differents config files. You must understand that all config files are concatenated into a single one to create a single pipeline, so all inputs sends to the single filtering pipeline and then go to all outputs. Unless you specify conditions with if statements, is it the case ?
Want to share a good news with you, i have cracked SOAP with http output plugin.
Thanks to you, who asked me to work on HTTP sniffer, that has helped me to crack this
I have used same stuff what you told above.
The reason i was not getting is the message command with single line xml and whitespaces means it will not work
I used Notepad++ to trim trailing white spaces and Join line feature of Notepad++ to make it perfect.
and used HTTP sniffer to monitor where it is going wrong
I think you can claim proudly that http output plugin is meant for SOAP
In my previous post, my input was csv file wherein i had 3 fields Name, Description, Age
After using SOAP end point with logstash http output plugin, i successfully posted the 3 fields
Now i want to retrieve same 3 fields from application and post it to Elastic Search for analysis
For this also i am planning to use SOAP Request. I have a endpoint url and findservice.
In Logstash my input will be HTTP input OR http_poller and output will be Elasticsearch index
It is working well in SOAP UI.
Below are the headers in SOAP U that i am gettingI, i am using find service to retrive the list of users
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.