Forum Discussion
Hey SteveGregory
Answers to. your prompts:
1. it was a typo (difficult to type on my phone)
3. yeah sorry i wasn't clear - I just meant whether the schema content was actually embedded within your .wsdl or whether the schema content was saved in a separate .xsd
4.1 - what I meant by "supported protocol" was http or https. From what you've said you need to hit the webservice using https - so this is what I meant by the supported protocol. regarding changing <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> to <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/https"/>, yeah - that http is actually a folder in the path, so changing that isnt gonna work - but I understand why you give it a shot. Unfortunately switching http to https sounds straightforward, but I dont think it's a case of just adding an 's' in a couple of places in the .wsdl. When I originally read about this a while back I think you actually have to rebuild some part of your code to support accepting the https rather than http - hence the reason why I mentioned in my initial post that it sounds the easiest option, but I've got no idea how to do it.
4.2 - ok - so embedding the content rather than separate instances of the schemas is a non-starter
4.3 - so you've nowhere you could store the xsd yourself. also I appreciate your comment about not wanting multiple tech/req sources to maintain, but sometimes that this consideration can be overridden by necessity, however if you've got nowhere you can save the thing that kinda settles that option then
I dont actually understand what you meant in your follow up post here -->
SteveGregory wrote: I could ask our clients to manually download the WSDL file and the XSD (or I could just provide these files to them in an e-mail) and then create their SoapUI test projects from the local copies, but of course it's preferable ifI could get the New SOAP Project From WSDL feature in SoapUI to behave as expected so clients can set up SoapUI projects, or get WSDL and schema updates in existing projects, on their own.
It's a 3rd party webservice right.....I assumed that you would be testing a 3rd parties webservice - is that not right? Why would your 'clients' be testing it?
Worst case - you dont actually need the .wsdl nor the .xsds - they just save you a little time, effort and headache - it's still straightforward to create a SOAP project without the .wsdl/xsd's - you just need to be provided the details of the webservice and payload and create the project, the APIs and the tests manually.
Cheers,
Rich
Sorry, Rich. I was trying to avoid unnecessary details so the problem was clear, but it seems I withheld too much.
My organization hosts many web services. Rather than having to e-mail the WSDLs and XSDs to those who want to build clients for these services, we enabled the "?wsdl" feature within those services so all folks need is the web service endpoint and then they can pull down the necessary information themselves; however, since the server enforces https, people reported they were unable to create SoapUI projects as I've described, so I tried it myself and confirmed the issue.
Once they have the XSD(s) (via e-mail or whatever), they are able to build their web service clients and they work fine. But while building these clients, it's common for people to use SoapUI for comprehension and troubleshooting. And SoapUI's New SOAP Project functionality can't create a new project based on a WSDL URL using the https protocol, as it tries to load the associated XSDs using the http protocol and fails. Perhaps this is just a SoapUI bug, but if there's a SoapUI setting that will get around it, or if there's some change I can make to the WSDLs that will make SoapUI behave, I'd like to know.
The particular web service I tested just has the 1 related XSD file, and as shown previously, the include location in the WSDL is just the XSD's filename, as the XSD and the WSDL are in the same folder, so there are no absolute URLs (with protocol, etc.) in the WSDL (other than all the namespaces, which don't count). That leads me to believe it might be a SoapUI bug, but if it is, my Google searches haven't found anyone else mentioning it.
I messaging you cos you're SmartBear and I didn't know what else to do. I mistakenly hit the 'Solved' button and I need to undo the selection. Could you assist please?
no need to apologise - my brain is tiny so I need all the help I can get!
Total guess here, but I don't think it's a SoapUI issue - I think it's probably a SOAP/wsdl and I dont think there's a SoapUI setting to sort either, cos
1. lots of people have had this issue with various tools/software types - not just SoapUI.
2. from my reading if you need to change the protocol, it's not just a .wsdl edit, it appears you need to rebuild the webservice code to support that change
3. I dont think it's a question of SoapUI not able to create a new project based on a wsdl available via https, I think it's a case of its trying to call the .xsd detail when loading the .wsdl, but the code and the .wsdl wasn't explicitly built considering https
Yep gotcha - I saw straight away it's using relative paths and the .xsd is in same location as .wsdl
in your current situation I dont think there's an easy way around it then - at least I've run out of ideas....sorry I couldn't be of more help!
Cheers,
Rich
- SteveGregory4 years agoOccasional Contributor
In my (perhaps meager) understanding, the protocol is just a matter of endpoint and what the server allows.
Our dev boxes use http and don't support https while our Production environment requires https and doesn't support http.
The WSDL and XSD files are not modified between environments.
This likely works because all our paths in our WSDL and XSD files are relative.
Thanks for trying, richie. I really appreciate the effort.
The discussion at least made me think through some possibilities.