That is odd, Brett. Thanks for sharing all the details, to avoid some
questions we might have otherwise wanted to ask. 

I have a few things for you to consider/try. Sorry it's not the twitter
answer some may prefer. :-) Those who don't like long emails, and don't care
much about this topic, can of course skip the remainder here and wait to see
if Brett or others offer any reply. :-)

It is certainly odd that calling the service by passing in a method works,
whereas calling for just the wsdl does not. In that regard, it makes me
think of one thing in particular.

First, as you may realize, technically, when you pass in a method and make
the request via a browser (or from js code calling it), you're not really
using web services. CF returns a string (formatted either as wddx, json, or
plain text, depending on RETURNFORMAT on the cf function definition and
other factors). The key point is that it doesn't in that case generate the
WSDL (internally), nor does it return it. It's not relying on AXIS at all.

But when you DO add the ?wsdl, then you ARE asking CF to generate the wsdl
(relying on AXIS) and return it to the caller (in your case, I assume a
browser display).

So it could be that you're just having some problem with the internal
configuration of web services within CF. It should all "just work". But it
could be "broken" somehow. Since it's CF10 on which you're testing, I'd not
suspect a badly applied CF hotfix. I've not heard others report it, but it
doesn't mean there isn't a problem.

One thing that is new in CF10 is the option (in the admin, or in code) to
change CF from returning its result as Axis 2 or 1. Though I can't imagine
it would help in your case, you may want to at least try changing that to
see if it makes a difference in at least being able to generate the WSDL. Of
course, whether you should be using Axis 1 or 2 when you DO start really
doing web service calls into CF will depend on the clients making the calls.
I'm just suggesting this as a diagnostic test to see if it makes any
difference in the error you're getting.

You mention mappings, and by that I assume you mean a CF one (in the Admin
or in application.cfc). I'd not have thought that would be a player here,
since those are about internal communications (a cf page invoking a CFC, for
instance), as opposed to requests made via a web server, as these are.

That said, it does raise an interesting question: I wonder if it's sensitive
at all to some issue of web server configuration. I wouldn't think so, but
since solve an AXIS config problem as above may be challenging, at least a
quick test would be to see if the call fails the same way when using the
internal web server. Of course, you'd need to copy the code you're testing
to CF's internal wwwroot (in cf10, that's [cf10]\cfusion\wwwroot, if you're
using a new instance, [cf10]\[instancename]\wwwroot), then call it using
port 8500 (or whatever its port it). 

If you'd not enabled the built-in web server on installation of CF 10, you
need to just tweak some XML (similar to previous releases of CF). I just
blogged some extended discussion of doing that (and some other options
available for the internal web server, as well as why some may want to
reconsider its use as of CF10, perhaps even for production). More at
http://bit.ly/OjBBOl (or the full
URL,http://www.carehart.org/blog/client/index.cfm/2012/7/23/The-builtin-web-
server-in-ColdFusion-10-enabling-it-configuring-it-reconsidering-it).

But back to your challenge, at least, if you do make a test request to that
wsdl URL using that internal web server and it DOES work, that too would be
useful diagnostic info.

One last thought on web server possibilities: as you say you're running
Apache as multi-homed, have you confirmed this happens in other websites as
well? 

Again, all this could be useful diagnostic info, whether to share here or if
you may have to file a bug report. I'd say that unless the above helps, or
others offer more thoughts, that may be your next best step
(https://bugbase.adobe.com/).

Hope something there's helpful.

/charlie

 

From: [email protected] [mailto:[email protected]] On Behalf
Of Brett Payne-Rhodes
Sent: Saturday, July 21, 2012 12:42 AM
To: [email protected]
Subject: [cfaussie] 

 

In migrating from CF8 to CF10 I have come across and issue with the ?wsdl
generation... I generally put components into a /cfc directory immediatley
below the webroot for each site but I have found that with CF10 the ?wsdl
query is failing. This doesn't really matter much at the moment as the
services are all being consumed from the client side using javascript and
jQuery but I am concerned that this could soon be an issue as we start to
expand our use of services.

As an example I have created a very simple Hello World cfc and when I put
the file into the webroot everything works fine: 

http://cftest.yoursite.net.au/hello1.cfc?wsdl and

http://cftest.yoursite.net.au/hello1.cfc?method=helloWorld works fine

However if I move the cfc into a directory below the webroot things get
confused...

http://cftest.yoursite.net.au/cfc/hello2.cfc?wsdl - given an AXIS error, but

http://cftest.yoursite.net.au/cfc/hello2.cfc?method=helloWorld still gives
the expected result

I wondered if there was a chance that the name of the directory could be an
issue so I tried an alternative but there was no difference...

http://cftest.yoursite.net.au/cfxx/hello3.cfc?wsdl still give en error, and

http://cftest.yoursite.net.au/cfxx/hello3.cfc?method=helloWorld still works
as expected

I've read quite a few posts about mappings and cfcs but con't find anything
definitive. This is a multihomed server running Apache2.2 so I'm not sure
how a mapping would help - unless there is something that CF needs mapped
but I can't find a hint for that anywhere.

One other thing to note... I did edit the neo_xmlrpc.xml file to version 1
but the only effect appears to be that the error message says "AXIS error"
for a version value 1 and "HTTP Status 500" for a version value of 2.

So, am I just missing a mapping? I even tried mapping "/" to the CF10
webroot but that had no effect.

Many thanks!

Brett

B)

ps. apologies for the cross posting for anyone following the Adobe CF
forums..

 

-- 
You received this message because you are subscribed to the Google Groups
"cfaussie" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cfaussie?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"cfaussie" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cfaussie?hl=en.

Reply via email to