How can I resolve the binding failed error in doing wsdl2java - web-services

I am trying to (re)generate code again from a preexisting WSDL. I am not able to use wsimport as it is giving binding failed error. So I tried WSDL validator from CXF. It gives this error. Please see below for my WSDL.
WSDLValidator Error :
Summary: Failures: 1, Warnings: 0
<<< ERROR!
Part <scheduledJob> in Message <{http://webservices.jobs.batch.prompt.com/}ImmJobWSIF_getScheduledJobResponse> referenced Type <{http://webservices.jobs.batch.prompt.com/}ScheduledJob> can not be found in the schemas
Here is the WSDL. Inline schema looks good comparing to some online schemas. I have no clue.
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="ImmJobWS"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
targetNamespace="http://webservices.jobs.batch.prompt.com/"
xmlns:tns="http://webservices.jobs.batch.prompt.com/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<types>
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://webservices.jobs.batch.prompt.com/"
xmlns="http://webservices.jobs.batch.prompt.com/">
<xsd:element name="ScheduledJob">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="jobId" type="xsd:int"/>
<xsd:element name="jobName" type="xsd:string"/>
<xsd:element name="jobCategoryName" type="xsd:string"/>
<xsd:element name="jobClassName" type="xsd:string"/>
<xsd:element name="jobStatus" type="xsd:string"/>
<xsd:element name="nextExecutionDate" type="xsd:dateTime"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<message name="ImmJobWSIF_getScheduledJob">
<part name="job_id" type="xsd:int"/>
<part name="user_ident" type="xsd:string"/>
</message>
<message name="ImmJobWSIF_getScheduledJobResponse">
<part name="scheduledJob" type="tns:ScheduledJob"/>
</message>
<message name="ImmJobWSIF_startSched">
<part name="user_ident" type="xsd:string"/>
</message>
<message name="ImmJobWSIF_startSchedResponse">
<part name="result" type="xsd:string"/>
</message>
<message name="ImmJobWSIF_stopSched">
<part name="user_ident" type="xsd:string"/>
</message>
<message name="ImmJobWSIF_stopSchedResponse">
<part name="result" type="xsd:string"/>
</message>
<portType name="ImmJobWSIF">
<operation name="getScheduledJob" parameterOrder="job_id user_ident">
<input message="tns:ImmJobWSIF_getScheduledJob"/>
<output message="tns:ImmJobWSIF_getScheduledJobResponse"/>
</operation>
<operation name="startSched" parameterOrder="user_ident">
<input message="tns:ImmJobWSIF_startSched"/>
<output message="tns:ImmJobWSIF_startSchedResponse"/>
</operation>
<operation name="stopSched" parameterOrder="user_ident">
<input message="tns:ImmJobWSIF_stopSched"/>
<output message="tns:ImmJobWSIF_stopSchedResponse"/>
</operation>
</portType>
<binding name="ImmJobWSIFBinding" type="tns:ImmJobWSIF">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="rpc" />
<operation name="getScheduledJob">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" namespace="http://webservices.jobs.batch.prompt.com/" />
</input>
<output>
<soap:body use="literal" namespace="http://webservices.jobs.batch.prompt.com/" />
</output>
</operation>
<operation name="startSched">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" namespace="http://webservices.jobs.batch.prompt.com/" />
</input>
<output>
<soap:body use="literal" namespace="http://webservices.jobs.batch.prompt.com/" />
</output>
</operation>
<operation name="stopSched">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" namespace="http://webservices.jobs.batch.prompt.com/" />
</input>
<output>
<soap:body use="literal" namespace="http://webservices.jobs.batch.prompt.com/" />
</output>
</operation>
</binding>
<service name="ImmJobWS">
<port name="ImmJobWSIFPort" binding="tns:ImmJobWSIFBinding">
<soap:address location="http://vm-prover.maleri.com:8782/projImmJobs/ImmJobWS"/>
</port>
</service>
</definitions>

Related

Only "hello" function working in my WSDL

Setting up a webservice on my Symfony server, I follow this guide:
https://symfony.com/doc/current/controller/soap_web_service.html
Example given is working well, with this hello fonction:
public function hello($name)
{
return 'Hello, '.$name;
}
So I've tried to complete this webservice with this bye function:
public function bye($name)
{
return 'Goodbye, '.$name;
}
And here is my wsdl:
<?xml version="1.0" encoding="ISO-8859-1"?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="urn:arnleadservicewsdl"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="urn:helloservicewsdl">
<types>
<xsd:schema targetNamespace="urn:hellowsdl">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
</xsd:schema>
</types>
<message name="helloRequest">
<part name="name" type="xsd:string" />
</message>
<message name="helloResponse">
<part name="return" type="xsd:string" />
</message>
<message name="byeRequest">
<part name="name" type="xsd:string" />
</message>
<message name="byeResponse">
<part name="return" type="xsd:string" />
</message>
<portType name="hellowsdlPortType">
<operation name="hello">
<documentation>Hello World</documentation>
<input message="tns:helloRequest"/>
<output message="tns:helloResponse"/>
</operation>
<operation name="bye">
<documentation>Goodbye World</documentation>
<input message="tns:byeRequest"/>
<output message="tns:byeResponse"/>
</operation>
</portType>
<binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="hello">
<soap:operation soapAction="urn:arnleadservicewsdl#hello" style="rpc"/>
<input>
<soap:body use="encoded" namespace="urn:hellowsdl"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="urn:hellowsdl"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
<operation name="bye">
<soap:operation soapAction="urn:arnleadservicewsdl#bye" style="rpc"/>
<input>
<soap:body use="encoded" namespace="urn:hellowsdl"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</input>
<output>
<soap:body use="encoded" namespace="urn:hellowsdl"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</output>
</operation>
</binding>
<service name="hellowsdl">
<port name="hellowsdlPort" binding="tns:hellowsdlBinding">
<soap:address location="http://10.0.0.42/esi/soap" />
</port>
</service>
</definitions>
Hello function is still working, but each time i call bye function, I get an error:
Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML
Where am I wrong?
Ok, first I have rewritten my WSDL with help of https://www.wsdl-analyzer.com/. Here is my new WSDL:
<?xml version="1.0" encoding="ISO-8859-1"?>
<wsdl:definitions name="helloServiceController"
targetNamespace="urn:helloServiceControllerwsdl"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="urn:helloServiceControllerwsdl">
<wsdl:types>
<xsd:schema targetNamespace="urn:helloServiceControllerwsdl">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
</xsd:schema>
</wsdl:types>
<wsdl:message name="helloRequest">
<wsdl:part name="name" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="helloResponse">
<wsdl:part name="return" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="byeRequest">
<wsdl:part name="name" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="byeResponse">
<wsdl:part name="return" type="xsd:string"/>
</wsdl:message>
<wsdl:portType name="helloServicePortType">
<wsdl:operation name="hello">
<wsdl:documentation>Hello World</wsdl:documentation>
<wsdl:input message="tns:helloRequest"/>
<wsdl:output message="tns:helloResponse"/>
</wsdl:operation>
<wsdl:operation name="bye">
<wsdl:documentation>Bye World</wsdl:documentation>
<wsdl:input message="tns:byeRequest"/>
<wsdl:output message="tns:byeResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="helloServiceBinding" type="tns:helloServicePortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="hello">
<soap:operation soapAction="urn:helloServiceControllerwsdl#hello" style="rpc"/>
<wsdl:input>
<soap:body use="encoded" namespace="urn:helloServiceControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:input>
<wsdl:output>
<soap:body use="encoded" namespace="urn:helloServiceControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="bye">
<soap:operation soapAction="urn:helloServiceControllerwsdl#bye" style="rpc"/>
<wsdl:input>
<soap:body use="encoded" namespace="urn:helloServiceControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:input>
<wsdl:output>
<soap:body use="encoded" namespace="urn:helloServiceControllerwsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="helloService">
<wsdl:port name="helloServicePort" binding="tns:helloServiceBinding">
<soap:address location="http://10.0.0.42/esi/soap"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
After that, it was still not working and even hello function was not working. After pulling my hair for a while, I simply restarted my server and it was good. Probably a cache problem!

SOAPUI error: does not close tag

When starting a SOAPUI SOAP project (from my local computer) using the following URL (on a server in my own network):
http://myinternaldomainname/test2?wsdl
The following error occurs:
Error loading [http://myinternaldomainname/test2?wsdl]:
org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException:
error: does not close tag
The server is added to my hosts file:
192.168.2.1 myexampledomain
When I store the result of the WSDL page as a wsdl file, I can open the WSDL file as new SOAP project.
I used Zend\Soap\Autodiscovery to generate this WSDL:
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://myexampledomain/test2" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" name="MySoapService" targetNamespace="http://myexampledomain/test2">
<types>
<xsd:schema targetNamespace="http://myexampledomain/test2"/>
</types>
<portType name="MySoapServicePort">
<operation name="method1">
<documentation>This method takes ...</documentation>
<input message="tns:method1In"/>
<output message="tns:method1Out"/>
</operation>
<operation name="method2">
<documentation>This method takes ...</documentation>
<input message="tns:method2In"/>
<output message="tns:method2Out"/>
</operation>
</portType>
<binding name="MySoapServiceBinding" type="tns:MySoapServicePort">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="method1">
<soap:operation soapAction="http://myexampledomain/test2#method1"/>
<input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://myexampledomain/test2"/>
</input>
<output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://myexampledomain/test2"/>
</output>
</operation>
<operation name="method2">
<soap:operation soapAction="http://myexampledomain/test2#method2"/>
<input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://myexampledomain/test2"/>
</input>
<output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://myexampledomain/test2"/>
</output>
</operation>
</binding>
<service name="MySoapServiceService">
<port name="MySoapServicePort" binding="tns:MySoapServiceBinding">
<soap:address location="http://myexampledomain/test2"/>
</port>
</service>
<message name="method1In">
<part name="inputParam" type="xsd:int"/>
</message>
<message name="method1Out">
<part name="return" type="xsd:string"/>
</message>
<message name="method2In">
<part name="inputParam1" type="xsd:int"/>
<part name="inputParam2" type="xsd:string"/>
</message>
<message name="method2Out">
<part name="return" type="xsd:float"/>
</message>
</definitions>
In SOAPUI I tried proxy disabled/enabled/automatic
If someone ever encounters this problem, what worked for me was hitting CTRL + ALT + P and setting the Proxy Settings to None
Please disable proxy by using CTRL+ALT+P and disable system firewall. hopefully it will work.
The problem was caused because a login page prevented me to use the WSDL in SOAP UI.

The wsdl is throwing an error when trying to generate the stub(WebService Client) from it

This is my wsdl:
definitions targetNamespace="http://sei.profile.employee.com/" name="SimpleEmployeeProfileService" xmlns="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://sei.profile.employee.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<types>
<xsd:schema>
<xsd:import namespace="http://sei.profile.employee.com/" schemaLocation="EmployeeProfile_schema1.xsd"/>
</xsd:schema>
</types>
<message name="getEmployeeDetails">
<part name="parameters" element="tns:getEmployeeDetails"/>
<part name="departmentId" element="tns:departmentId"/>
</message>
<message name="getEmployeeDetailsResponse">
<part name="result" element="tns:getEmployeeDetailsResponse"/>
</message>
<portType name="SimpleEmployeeProfileService">
<operation name="getEmployeeDetails" parameterOrder="parameters departmentId">
<input ns1:Action="http://sei.profile.employee.com/EmployeeProfile/getEmployeeDetailsRequest" message="tns:getEmployeeDetails" xmlns:ns1="http://www.w3.org/2007/05/addressing/metadata"/>
<output ns2:Action="http://sei.profile.employee.com/EmployeeProfile/getEmployeeDetailsResponse" message="tns:getEmployeeDetailsResponse" xmlns:ns2="http://www.w3.org/2007/05/addressing/metadata"/>
</operation>
</portType>
<binding name="SimpleEmployeeProfileServicePortBinding" type="tns:SimpleEmployeeProfileService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="getEmployeeDetails">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="SimpleEmployeeProfileService">
<port name="SimpleEmployeeProfileServicePort" binding="tns:SimpleEmployeeProfileServicePortBinding">
<soap:address location="http://localhost:8080/SimpleWebService/SimpleEmployeeProfileService"/>
</port>
</service>
</definitions>
This is the error:
the prefix "soap" for element "soap:binding" is not bound
I have checked the tags but I haven't found any mistakes so far. Any help would be appreciated. Thanks in advance.
I added the following to the definition tag "xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" and it resolved my issue......
I will still keep this question posted since it might help some other user.

SOAPUI unable to display the function name included in wsdl

I had created a wsdl as shown below using zend framework
<?xml version="1.0"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://soap.loc/index/soap" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" name="Example_Manager" targetNamespace="http://soap.loc/index/soap">
<types>
<xsd:schema targetNamespace="http://soap.loc/index/soap">
<xsd:element name="getProducts">
<xsd:complexType/>
</xsd:element>
<xsd:element name="getProductsResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getProductsResult" type="soap-enc:Array"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getProduct">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getProductResult" type="soap-enc:Array"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="addProduct">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="data" type="soap-enc:Array"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="addProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="addProductResult" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="deleteProduct">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="deleteProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="deleteProductResult" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="updateProduct">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="id" type="xsd:int"/>
<xsd:element name="data" type="soap-enc:Array"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="updateProductResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="updateProductResult" type="xsd:int"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<portType name="Example_ManagerPort">
<operation name="getProducts">
<documentation>Returns list of all products in database</documentation>
<input message="tns:getProductsIn"/>
<output message="tns:getProductsOut"/>
</operation>
<operation name="getProduct">
<documentation>Returns specified product in database</documentation>
<input message="tns:getProductIn"/>
<output message="tns:getProductOut"/>
</operation>
<operation name="addProduct">
<documentation>Adds new product to database</documentation>
<input message="tns:addProductIn"/>
<output message="tns:addProductOut"/>
</operation>
<operation name="deleteProduct">
<documentation>Deletes product from database</documentation>
<input message="tns:deleteProductIn"/>
<output message="tns:deleteProductOut"/>
</operation>
<operation name="updateProduct">
<documentation>Updates product in database</documentation>
<input message="tns:updateProductIn"/>
<output message="tns:updateProductOut"/>
</operation>
</portType>
<binding name="Example_ManagerBinding" type="tns:Example_ManagerPort">
<soap:binding style="document" transport="http://framework.zend.com"/>
<operation name="getProducts">
<soap:operation soapAction="http://soap.loc/index/soap#getProducts"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
<operation name="getProduct">
<soap:operation soapAction="http://soap.loc/index/soap#getProduct"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
<operation name="addProduct">
<soap:operation soapAction="http://soap.loc/index/soap#addProduct"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
<operation name="deleteProduct">
<soap:operation soapAction="http://soap.loc/index/soap#deleteProduct"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
<operation name="updateProduct">
<soap:operation soapAction="http://soap.loc/index/soap#updateProduct"/>
<input>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</input>
<output>
<soap:body use="literal" namespace="http://framework.zend.com"/>
</output>
</operation>
</binding>
<service name="Example_ManagerService">
<port name="Example_ManagerPort" binding="tns:Example_ManagerBinding">
<soap:address location="http://soap.loc/index/soap"/>
</port>
</service>
<message name="getProductsIn">
<part name="parameters" element="tns:getProducts"/>
</message>
<message name="getProductsOut">
<part name="parameters" element="tns:getProductsResponse"/>
</message>
<message name="getProductIn">
<part name="parameters" element="tns:getProduct"/>
</message>
<message name="getProductOut">
<part name="parameters" element="tns:getProductResponse"/>
</message>
<message name="addProductIn">
<part name="parameters" element="tns:addProduct"/>
</message>
<message name="addProductOut">
<part name="parameters" element="tns:addProductResponse"/>
</message>
<message name="deleteProductIn">
<part name="parameters" element="tns:deleteProduct"/>
</message>
<message name="deleteProductOut">
<part name="parameters" element="tns:deleteProductResponse"/>
</message>
<message name="updateProductIn">
<part name="parameters" element="tns:updateProduct"/>
</message>
<message name="updateProductOut">
<part name="parameters" element="tns:updateProductResponse"/>
</message>
Now the problem is that when i load this in soapui, function names are not being displayed.
Earlier I had a working wsdl using NuSoap, which generated wsdl and could be loaded into SOAPUi and function names were being displayed.
New into web service business, It would be great to know if its wrong with the wsdl itself.
Banging my head on the monitor to get an answer ....... but only things i see is stars.
Sir, you have missed a tag in your wsdl. It's not correct.
Save your wsdl in form of xml and if you will open it in web browser, you will find the error.

INDY WebService over SSL contains link with HTTP protocol instead of HTTPS in WSDL

When creating new SOAP WebService server project using Delphi XE2 the wizard allows to set change port and HTTPS properties. Port is set to 443, HTTPS flag is checked, but when trying to connect to created server it returns incorrect transport (HTTP instead of HTTPS) in WSDL and generates HTTP links on the Service Info Page. The auto-generated page is not so important, but wrong information in WSDL file is a problem. Below you can see the returned WSDL - there are no HTTPS:
<?xml version="1.0"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Itest123service" targetNamespace="http://tempuri.org/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:ns1="urn:test123Intf">
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:test123Intf">
<simpleType name="TEnumTest">
<restriction base="string">
<enumeration value="etNone"/>
<enumeration value="etAFew"/>
<enumeration value="etSome"/>
<enumeration value="etAlot"/>
</restriction>
</simpleType>
<complexType name="TDoubleArray">
<complexContent>
<restriction base="soapenc:Array">
<sequence/>
<attribute ref="soapenc:arrayType" n1:arrayType="xs:double[]" xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
</restriction>
</complexContent>
</complexType>
<complexType name="TMyEmployee">
<sequence>
<element name="LastName" type="xs:string"/>
<element name="FirstName" type="xs:string"/>
<element name="Salary" type="xs:double"/>
</sequence>
</complexType>
</schema>
</types>
<message name="echoEnum0Request">
<part name="Value" type="ns1:TEnumTest"/>
</message>
<message name="echoEnum0Response">
<part name="return" type="ns1:TEnumTest"/>
</message>
<message name="echoDoubleArray1Request">
<part name="Value" type="ns1:TDoubleArray"/>
</message>
<message name="echoDoubleArray1Response">
<part name="return" type="ns1:TDoubleArray"/>
</message>
<message name="echoMyEmployee2Request">
<part name="Value" type="ns1:TMyEmployee"/>
</message>
<message name="echoMyEmployee2Response">
<part name="return" type="ns1:TMyEmployee"/>
</message>
<message name="echoDouble3Request">
<part name="Value" type="xs:double"/>
</message>
<message name="echoDouble3Response">
<part name="return" type="xs:double"/>
</message>
<portType name="Itest123">
<operation name="echoEnum">
<input message="tns:echoEnum0Request"/>
<output message="tns:echoEnum0Response"/>
</operation>
<operation name="echoDoubleArray">
<input message="tns:echoDoubleArray1Request"/>
<output message="tns:echoDoubleArray1Response"/>
</operation>
<operation name="echoMyEmployee">
<input message="tns:echoMyEmployee2Request"/>
<output message="tns:echoMyEmployee2Response"/>
</operation>
<operation name="echoDouble">
<input message="tns:echoDouble3Request"/>
<output message="tns:echoDouble3Response"/>
</operation>
</portType>
<binding name="Itest123binding" type="tns:Itest123">
<binding xmlns="http://schemas.xmlsoap.org/wsdl/soap/" style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="echoEnum">
<operation xmlns="http://schemas.xmlsoap.org/wsdl/soap/" soapAction="urn:test123Intf-Itest123#echoEnum" style="rpc"/>
<input>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:test123Intf-Itest123"/>
</input>
<output>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:test123Intf-Itest123"/>
</output>
</operation>
<operation name="echoDoubleArray">
<operation xmlns="http://schemas.xmlsoap.org/wsdl/soap/" soapAction="urn:test123Intf-Itest123#echoDoubleArray" style="rpc"/>
<input>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:test123Intf-Itest123"/>
</input>
<output>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:test123Intf-Itest123"/>
</output>
</operation>
<operation name="echoMyEmployee">
<operation xmlns="http://schemas.xmlsoap.org/wsdl/soap/" soapAction="urn:test123Intf-Itest123#echoMyEmployee" style="rpc"/>
<input>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:test123Intf-Itest123"/>
</input>
<output>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:test123Intf-Itest123"/>
</output>
</operation>
<operation name="echoDouble">
<operation xmlns="http://schemas.xmlsoap.org/wsdl/soap/" soapAction="urn:test123Intf-Itest123#echoDouble" style="rpc"/>
<input>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:test123Intf-Itest123"/>
</input>
<output>
<body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:test123Intf-Itest123"/>
</output>
</operation>
</binding>
<service name="Itest123service">
<port name="Itest123Port" binding="tns:Itest123binding">
<address xmlns="http://schemas.xmlsoap.org/wsdl/soap/" location="http://localhost:443/soap/Itest123"/>
</port>
</service>
</definitions>
When I'm trying to import WSDL to soapUI tool to check WebService work I need to change manually binding link to "https://" and only then RPCs will work.
I will be very grateful for any idea how to force INDY to return links in WSDL with HTTPS protocol. Thanks in advance!
I had the same problem and solved it like this:
Look at the properties of the generated WSDLHTMLPublish1.
Change the property PublishOptions -> poPublishLocationAsSecure to true