![]() |
追风的小摩托 · New Factory Price ...· 2 周前 · |
![]() |
踏实的蟠桃 · Java菜鸟教程系列 学习笔记总结 ...· 1 月前 · |
![]() |
逆袭的黑框眼镜 · JaversException ...· 6 月前 · |
![]() |
精明的大海 · Laravel ...· 1 年前 · |
uri wsdl soap |
https://www.outsystems.com/forums/discussion/51484/os11-soap-error-the-provided-uri-scheme-https-is-invalid-expected-http/ |
![]() |
高大的小摩托
1 年前 |
![]() |
追风的小摩托 · New Factory Price Original Support 128 User ONU 1ge 10ge Pon Xgpon Mini Olt 1 Port Epon Gpon Olt - G 2 周前 |
Fixed it!
It all comes down to my targetNamespace ( targetNamespace="https://abc.co.uk" ). OutSystems was looking for elements prefixed with "https:", because of this targetNamespace.
I've changed it to " targetNamespace="abc.co.uk" and prefixed my elements with "abc:" and now it works!
It seems the http/https confusion was a red herring caused by the first few letters of my targetNamespace!
Thanks for your help! :)
Hi Mike, I'm also struggling with the same issue. Would you mind sharing the WSDL that works for you, so I can compare both versions and see how that applies to my WSDL.
Some questions:
You may also find these docs helpful:
https://success.outsystems.com/Documentation/11/Extensibility_and_Integration/SOAP/Troubleshoot_SOAP_Web_Services
Sorry, no I'm trying to consume a web service I've already created on our back-end platform.
The certificates seem to be in line. We did previously have an error message relating to certificates, but that's been fixed now.
We were consuming web services before the upgrade. We're in the middle of a project which makes heavy use of SOAP to transfer data between Out Systems and our back-end platform. We had already set up about 60 web services on OS10 and after upgrading they all still work. However if I rename an existing WSDL and try to consume it, it fails. We think this was down to the new SOAP 1.2 standard requiring some differences in the WSDL, so we've generated a fresh WSDL in Out Systems and tweaked it to create the above. This WSDL appears to work on Service Studio but, as mentioned, the web service then fails when we try to actually call it.
Our back-end requires us to use SOAP but for the sake of investigation, I've just tried consuming the (admittedly rather simple) REST API at https://www.gov.uk/bank-holidays.json and that has worked fine.
Mike,
Perhaps your exposed webservice does not have HTTP Security on ?
Hi Stefano,
Our back-end platform only accepts HTTPS connections. I've tried using HTTP to see what would happen and it gets rejected. So it's definitely requiring a secure connection.
Mike,
I get that your backend is not OS. I'm sorry i misunderstood.
Please check this:
https://success.outsystems.com/Documentation/11/Extensibility_and_Integration/SOAP/Consuming_SOAP_Web_Services/Configure_a_SOAP_Web_Service_at_Runtime
You might be able to make the right adjustments.
Thanks Stefano.
I've had a look through that page and the related pages but I've not found anything that helps. I'm not using username/password authentication, so that's just set to "(None)".
The endpoint is set to use https and is definitely correct, as I can copy and paste it into a different programme (I'm using SOAP UI to test these web services) and it works fine.
Then the only way to find the problem is to set your logging level high and check the Integrations log.
Good luck and please keep us posted on your progress.
Here's what I get in the integration error log:
The provided URI scheme 'https' is invalid; expected 'http'.
Parameter name: via
at System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via)
at System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via)
at System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannelCore(EndpointAddress remoteAddress, Uri via)
at System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via)
at System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via)
at System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via)
at System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via)
at System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via)
at System.ServiceModel.ClientBase`1.CreateChannel()
at System.ServiceModel.ClientBase`1.CreateChannelInternal()
at System.ServiceModel.ClientBase`1.get_Channel()
at ssAgentPortal_IS.ssProxy.WebServiceSoapClient.APGetDMCKeycodes(APGetDMCKeycodesRequest request)
at ssAgentPortal_IS.CcAPGetDMCKeycodes.ActionAPGetDMCKeycodes(HeContext heContext, ICcAPGetDMCKeycodesCallbacks _callbacks, String inParamGUID, String inParamSessionID, String inParamUserID, String inParamCompanyID, String inParamAccountNumber, RLDMC2List& outParamDMC)
Mike,
What do you mean with: "Here's a sanitised version of the WSDL I'm trying to use (based on one that was generated by Out Systems):"
How can you generate a wsdl with outsystems when you only consume it?
Hi Stefano,
I created a web service on Out Systems (expose) with all the same input and output parameters, then downloaded the WSDL and changed the endpoint to my actual web service's endpoint. This way I can be sure the WSDL is in a format that Out Systems likes.
This resolved my initial problem, which was Out Systems not importing the WSDL properly. It was creating an action with one input and one output parameter when there should have been multiple of each. My previous WSDL format was missing a lot of the namespaces included in this new version.
And soap ui also worked with this wsdl? Or did you use the original?
I think one of the https in your definition is not correct and should be http.
Perhaps it will help if you post your original wsdl, the one that didnt work in OS.
Fixed it!
It all comes down to my targetNamespace ( targetNamespace="https://abc.co.uk" ). OutSystems was looking for elements prefixed with "https:", because of this targetNamespace.
I've changed it to " targetNamespace="abc.co.uk" and prefixed my elements with "abc:" and now it works!
It seems the http/https confusion was a red herring caused by the first few letters of my targetNamespace!
Thanks for your help! :)
Fixed it!
It all comes down to my targetNamespace ( targetNamespace="https://abc.co.uk" ). OutSystems was looking for elements prefixed with "https:", because of this targetNamespace.
I've changed it to " targetNamespace="abc.co.uk" and prefixed my elements with "abc:" and now it works!
It seems the http/https confusion was a red herring caused by the first few letters of my targetNamespace!
Thanks for your help! :)
Hi Mike, I'm also struggling with the same issue. Would you mind sharing the WSDL that works for you, so I can compare both versions and see how that applies to my WSDL.