I have recently starting forcing Https on one of my Coldfusion Instances.
Made the appropriate changes to the Axis2.xml file within the instance and was able to register a web service.
This specific web service that is failing is being called from another CF instance that isn't forcing Https but it does have this configuration in the Axis2.xml
The error I am getting in the axis2.log is:
[ajp-nio-8022-exec-1] AXIS2 ERROR org.apache.axis2.description.ClientUtils - The system cannot infer the transport information from the URL.
Doing a google search of this error it looks like there is supposed to be URL listed where mine is blank, this may be the key to the issue but I just have very little experience with this. I haven't been able to find much more on this error via google.
Kevin, what are the versions of the two CF instances and what are the JVM versions they are running? Both are shown via the CF Admin page, clicking the "i" icon in the top right. This info may play a factor.
Also, for each, it may be important to know if they are publishing and consuming the web service as Axis2. That is controlled (on each side) by either of 3 settings: in the CF Admin (on the web services page), in the application.cfc or cfm (where there is a wsversion attribute), or in the code, where that wsversion can be specified in the cfcomponent that is serving the web service, and the code that is calling it, whether via CFINVOKE, CFOBJECT, or createobject.
All these could influence why something may not work, and why you may find little other discussion (because imagine the permutations of the options above), and how some small number of configuration choices may lead to the error you see, which perhaps few others also have.
Thank you for the response.
I am currently running:
CF 2016 update 5 Version: 2016.0.05.303689
Both instances are on the same server.
Both are set to use Axis version 2, I can register the webservice on the other server that it's called from by full (/url/application.cfc?WSDL)
-Looking at the "instance/wwwroot/CFIDE/application.cfm" there isn't a wsversion specified
-The only cfinvoke in this application doesn't specify a wsversion either.
I do see that they are consuming as Axis2 in the logs for each coldfusion instance
Server that web service is being called from
"Information","ajp-nio-8022-exec-5","10/18/17","13:00:41","","Downloaded the wsdl http://wtgdev.com/webservices/planning/planning_project_complete.cfc?WSDL"
"Information","ajp-nio-8022-exec-5","10/18/17","13:00:41","","Using Axis 2 for consuming the service http://wtgdev.com/webservices/planning/planning_project_complete.cfc?WSDL."
"Information","ajp-nio-8022-exec-5","10/18/17","13:01:22","","Using Axis 2 for consuming the service ."
Server that web service resides on
"Information","ajp-nio-8030-exec-1","10/18/17","13:00:41","","Using Axis 2 framework for servicing the web service request to the endPoint https://wtgdev.com/webservices/planning/planning_project_complete.cfc."
The "project_planning_complete.cfc" is hard coded to point to http and then I'm using an apache vhost.conf redirect to force https, I'm not the developer of the web service but could this be causing it?
Hang on. Shouldn't that be
Good catch, I did just copy/paste that in and only changed the port number. I tried that yesterday with it as "http" and still no go.
I also tried removing the <parameter name="port">80</parameter> and the 443 one. I was still able to register the web service and was redirected to the web service page as https and could view the xml code in browser. But no luck with the web service running.
Another thing that I feel I should mention is that, this web service will work if I change the axis version in CF Admin>Web Services to version 1. But This isn't an option because when I do this on production more web services break. This leads me to believe that its some other configuration within the axis2.xml.
Well, Kevin, as I noted in my first reply, you can control the axis version EITHER at a) the admin (which is global, unless overridden), or b) at the app level (in application.cfm or cfc, if you want to control it for all web service processing in that app), or c) in the cfcomponent or script equivalent for the CFC being served as a web service, or d) in the cfinvoke/cfobject/createobject call from the consumer of the web service.
You have said you can't do a, but you also confirmed you were not currently doing b or d. Why not try b (on the calling or serving side), or c (on the serving side), and/or d (on the consuming side)?
That's a great idea, sorry wasn't reading between the lines on that one before. I'm going to propose that to the web developers and see if we can push forward that way.
I will update with status after testing.
That did it, having the Axis version set in the code fixed it.
Very good to hear. Thanks for the confirmation, and for marking the "answer".