I think you have encountered a bug of the initial BaseX 10 release: We have upgraded to the new JDK HTTP Client API, and in some cases, headers were not correctly passed on to the server. The bug has recently been fixed in the latest snapshot. Could you give it a try? [1]
BaseX 10.1 will be released later this month. We apologize for the inconvenience, Christian
[1] https://files.basex.org/releases/
On Fri, Aug 12, 2022 at 9:24 PM ykhabins@bellsouth.net wrote:
Mr. Grün,
I followed your suggestion.
Here is my unsuccessful attempt.
The request is failing on SOAPAction that should be a SOAP operation.
Our Web Service has multiple operations.
let $uri := 'https://%E2%80%A6/%E2%80%9D
return http:send-request(
<http:request method="POST" href="{$uri}" timeout='120'>
<http:header name="SOAPAction" value="getArrestReportsForExport"/> <http:body media-type='application/xml'> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:miam="http://miamiarrest.ws.ts"> <soapenv:Header/> <soapenv:Body> <miam:getArrestReportsForExport> <miam:agencyId>000</miam:agencyId> <miam:passphrase> password </miam:passphrase> <miam:fromDate>2022-08-12T06:35:01</miam:fromDate> </miam:getArrestReportsForExport> </soapenv:Body> </soapenv:Envelope> </http:body>
</http:request>
)
Getting back the following error:
<faultstring>no SOAPAction header!</faultstring>
Here is full response:
<http:response xmlns:http="http://expath.org/ns/http-client" status="500" message="Internal Server Error"> <http:header name="connection" value="close"/> <http:header name="content-language" value="en-US"/> <http:header name="content-security-policy" value="default-src *; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; media-src *; img-src * data:"/> <http:header name="content-type" value="text/xml; charset=utf-8"/> <http:header name="date" value="Fri, 12 Aug 2022 18:57:02 GMT"/> <http:header name="set-cookie" value="NSC_bgpsnqse.njbnjebef.hpw_TTM=ffffffff09da352b45525d5f4f58455e445a4a42378b;expires=Fri, 12-Aug-2022 19:13:41 GMT;path=/;secure;httponly"/> <http:header name="strict-transport-security" value="max-age=31536000; includeSubDomains"/> <http:header name="transfer-encoding" value="chunked"/> <http:header name="x-content-type-options" value="nosniff"/> <http:header name="x-forwarded-for" value="10.5.34.112"/> <http:header name="x-frame-options" value="SAMEORIGIN"/> <http:header name="x-powered-by" value="Servlet/3.0"/> <http:header name="x-xss-protection" value="1; mode=block"/> <http:body media-type="text/xml"/> </http:response> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance%22%3E soapenv:Body soapenv:Fault <faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Client.NoSOAPAction</faultcode> <faultstring>no SOAPAction header!</faultstring>
<detail> <ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">s0144517</ns2:hostname> </detail> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope>
Regards, Yitzhak Khabinsky
From: Christian Grün christian.gruen@gmail.com Sent: Friday, August 12, 2022 11:56 AM To: Yitzhak Khabinsky ykhabins@bellsouth.net Cc: BaseX basex-talk@mailman.uni-konstanz.de Subject: Re: [basex-talk] BaseX 10.0 as a SOAP client
SOAP calls are nothing else than simple HTTP requests using the POST method and XML payloads. You can have a look at the following example [1]. You'll need to adjust the target URI and the body (the user/password attributes can possibly be dropped if the SOAP server does not require basic or digest authentication).
Hope this helps
Christian
[1] https://docs.basex.org/wiki/HTTP_Client_Module#POST_Request
ykhabins@bellsouth.net schrieb am Fr., 12. Aug. 2022, 17:48:
Mr. Grün,
The documentation is covering just the REST calls. I need to make SOAP call. It seems that it is not coverd in the HTTP_Client_Module documentation.
It is not clear how to specify an operation/method on a SOAP service.
Here is a sample of the request exposed via SoapUI. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:miam="http://miamiarrest.ws.ts%22%3E soapenv:Header/ soapenv:Body miam:getArrestReportsForExport miam:agencyId000</miam:agencyId> miam:passphrasepassword</miam:passphrase> miam:fromDate2022-08-02T06:35:01</miam:fromDate> </miam:getArrestReportsForExport> </soapenv:Body> </soapenv:Envelope>
Regards, Yitzhak Khabinsky
-----Original Message----- From: Christian Grün christian.gruen@gmail.com Sent: Friday, August 12, 2022 7:41 AM To: Yitzhak Khabinsky ykhabins@bellsouth.net Cc: BaseX basex-talk@mailman.uni-konstanz.de Subject: Re: [basex-talk] BaseX 10.0 as a SOAP client
Hi Yitzhak,
Is it possible to make calls to SOAP Web Service from the BaseX 10.0?
That’s no problem; you can use the HTTP Client Module for that [1].
Best, Christian