A client sent me a WSDL file for a webservice they provide. It has two tags wsdl:port. One has an attribute name="HTTP_Port" the other name="HTTPS_Port". These have a nested tag wsdlsoap:address that has a location attribute that contains an address. One http the other https accordingly. I setup the webservices in Coldfusion Administrator under DATA '& SERVICES => Web Services. Coldfusion is eager to use the URL provided under HTTP. A firewall rule regulates only https might be used.
How can I instruct Coldfusion to use the HTTPS-URL?
Related
I published a BizTalk orchestration as a web service with the BizTalk WCF Service Publishing Wizard.
When I try to reach the wsdl with this URL: http://machine.domain.dev/Scheduler.Orchestrations/Scheduler_Orchestrations_CallOrchestration_Port_Rcv_WCF_Scheduler_CallOrchestration.svc?singleWsdl
I end up with the Can't reach this page error and the URL is changed (by BizTalk ?) to https//...
When I replace machine.domain.dev by localhost it's working well and I can reach the wsdl.
In ISS, under Bindings options I only have http binding.
How can I reach the wsdl with the URL provided by IIS when I'm browsing (with http)?
I have a web service deployed on Jetty. I use the SOAP UI to call it via link like http://ip:port/DefaultRequestListener?workflow=WsdlCPF&soapAction=Import and it works.
I have always worked with service which had ?wsdl at the end of url, but now I confused.
Why there is no ?wsdl at the end of url?
A Web Service endpoint usually has an url that looks like this:
http://server:port/services/myservice
It does not have a wsdl parameter. This is the url of the web service itself, the one that will be called by the clients.
Most web service frameworks have a convenient feature in which they map the url of the endpoint with a wsdl url parameter to a webpage that shows the content of the WSDL for that web service. So this url:
http://server:port/services/myservice?wsdl
Is like telling the server: "Show me the wsdl file for this web service endpoint". The content that you see in that webpage is not a wsdl file stored in disk, it is just the content of the wsdl generated by the framework.
This feature is very useful because if we want to create a client for that web service we don't need to go ask for the wsdl file, we can just go and fetch it from that url.
In SoapUI
All this means that in SoapUI you would create a new project and tell him that the wsdl file can be found here: http://server:port/services/myservice?wsdl. If you tell him that the wsdl file is: http://server:port/services/myservice it will throw an error as that is not a wsdl file.
Alternatively you could enter the location of the wsdl file that you have in disk instead of the url and it should create the same ws client.
Then SoapUI will read the wsdl and he will see that the endpoint for the web service is http://server:port/services/myserviceso this is where he will send the requests.
Your web service
In your case, since you are already passing url parameters to the endpoint, you can consider that your webservice will be called at this url:
http://ip:port/DefaultRequestListener?workflow=WsdlCPF&soapAction=Import
And if you want to see the wsdl for that web service, you just add a wsdl parameter to the url. Note that just as any other url query the symbol ? just denotes that the url ends there and next characters are url parameters which are separated by &. In your case you have 3 parameters (workflow, soapAction and now wsdl):
http://ip:port/DefaultRequestListener?workflow=WsdlCPF&soapAction=Import&wsdl
now it returns a text like Company type: blah blah... Region: blah blah...
This is the wsdl content, which of course includes the xml types used in the web service, all normal.
Maybe it looks strange to you because in the wsdl file you have in disk it does not show all these types and instead it imports the xsd files that contain those definitions. The wsdl you see in your browser will never have imports like that, and will always show all the types embedded in the wsdl file.
Scroll down past all those types definitions and you will see the rest of the wsdl.
I hope it helped to make clear that the url with ?wsdl at the end is not the web service and it's just the wsdl content.
One of new features:
New HTTPS protocol mapping to make it easier to expose an
endpoint over HTTPS with Internet Information Services (IIS).
Does it mean that I do not need add https enpoint to the service anymore?
Now I use NET 3.5. Installer checks IIS settings and adds this endpoint to the web.config if customer wants to work via https, i.e.
http://myhost.com/mysvc.svc
https://myhost.com/mysvc.svc
If I understand right, in NET 4.5 it is enough one address
http://myhost.com/mysvc.svc
for http and https.
Is it correct?
According to the following sites; "In WCF 4.5, if IIS is enabled for SSL and if the service does not have any explicit endpoint defined for the specific binding, then WCF can be hosted on IIS with default HTTPs enabled i.e. ‘basicHttpsBinding’."
Refer to the following links for detailed information and examples:
http://www.dotnetcurry.com/showarticle.aspx?ID=866
http://johnlnelson.com/tag/wcf-4-5/
I have implemented a web service in my project. I also have deployed project on JBoss server successfully. I can see web service in jboss admin console in Web Service section. when i open wsdl url in browser it tells :
HTTP Status 404 - There is no Action mapped for namespace [/] and action name [AddNumbers] associated with context path [/TEST].
The url that i am opening in browser is http://localhost:8085/TEST/AddNumbers?wsdl
How map wsdl in struts.xml file?
This is because the struts 2 filter is configured to map those requests. You should add excludePattern constant to struts.xml to exclude some URLs from Struts processing. More about this you can find in Preventing Struts from Handling a Request.
Since Struts 2.1.7, you are able to provide a comma separated list of patterns for which when matching against the
request URL the Filter will just pass by. This is done via the configuration option struts.action.excludePattern, for example in your struts.xml
<struts>
<constant name="struts.action.excludePattern" value=".*\?wsdl,/some/conent/?.*"/>
...
</struts>
I have created an Axis2 web service from Netbeans and deployed it successfully in Tomcat 6 on my web server.
When I use for instance SoapUI or Taverna to consume the web service, the server offers both HTTP and HTTPS methods to invoke it. However, using the HTTPS method renders a 404 error. (Probably because there is a server admin panel running on port 8443, but that doesn't matter right now.)
The problem is that my web service clients default to using the HTTPS service. I figured the simplest thing I could do to get the basic service to work, would be to disable the HTTPS endpoint, as the HTTP version runs flawlessly and I don't need the added security. But now I've spent hours on finding out how to do that, without success. The WSDL returned by Axis2 contains entries for HttpsSoap11Endpoint but the WSDL that's bundled in my .AAR file after the build does not.
Does anybody know how to make Axis2 offer just HTTP endpoints?
In axis2.xml, comment out the https transport receiver to disable the HTTPS endpoint.