"No Webservice Engine is installed" error

When I run “pdfObj = createObject(‘webservice’, ‘myTargetUrlHere’)”, an error is generated: No Webservice Engine is installed! Check out the Extension Store in the Lucee Administrator for “Webservices”.

I don’t see “Webservices” in the in the extension store. Where can I get that?

Don’t forget to tell us about your stack!

OS: AWS Linux
Java Version: 1.8.0_162 (Oracle Corporation) 64bit
Tomcat Version: Apache Tomcat/8.5.28
Lucee Version: 5.3.8.157

Do you have the “Axis 1 Webservices” extension installed?
https://download.lucee.org/#DF28D0A4-6748-44B9-A2FDC12E4E2E4D38

I’d guess that’s what the error is referring to.

I didn’t see that one as an option in the “store”. Thanks for sending it. I’ll install it and see where it gets me.

Brad TY for responding. I’m trying to move an app from an ACF box to a Lucee box. Installing the Axis extension got me past that inital error. Now I’m getting “ERROR: Missing soap:fault element inFault “cfc.pdf.cfcCFCInvocationException” in operation “cfc.pdf.cfcCFCInvocationException”, in binding clientCostPDFExists”. Does that bring anything to mind? The webservice it’s calling is on an ACF box. For now I’m doing an http call to it and that works BUT createObject not working is really annoying my poor coworker.

Michael, it could be that there’s a mismatch in the soap/wsdl version between Lucee and acf. As you may recall, the cf admin has a setting that can set that version number (as 1or 2), and it can be overridden at the app-level or cfc level.

Then when you call a web service (createobject/cfobject/cf invoke), those also let one set that version number, otherwise they too they inherit the admin or app level setting, if any.

So consider those permutations and options (on Lucee as the consumer and acf as the publisher) to see if any get you going.

Or maybe Brad or others may more readily recognize some Lucee-specific solution based on that error.

1 Like

The ACF server that’s hosting the web service is set to version 2. I looked at the doc for createObject on Lucee but it doesn’t appear to have a way to specify the wsversion (as ACF does). As a workaround I’m able to call the web service via a cfhttp call. Are there reasons to avoid using a http call (as opposed to a createObject/webservice call)?

FYI - I tried createObject(“webservice”,“url-to-webservice”,{wsversion = 2}) but no joy.

Webservices use still use http underneath, so no,

Plain http requests are easier and probably faster (less XML, WSDL parsing!) and you have more control

Webservices are mostly a legacy tech, Which is the main reasons we haven’t bothered to dedicate resources to Axis 2

Well that’s very illuminating and a bit relieving. TY Zackster!

While it’s indeed true that web svcs use http under the covers, there’s a LOT more to the process, including a) identifying from the wsdl xml what the methods are, and their args and types. Then b) when you call those, there’s the marshaling of those, esp if also xml, into cfml objects.

Mike, you might want to consider either changing the cf cfc to serve itself as wsversion 1, or create a second variant that does it if you need the first to remain version 2.

(I wasn’t aware that Lucee didn’t support Axis 2, soap 2, and wsdl 1.2. ACF added those in cf10 in 2012. Of course choices have to be made, and demand’s an important factor in Lucee functionality, along with the team deciding what’s worthwhile. They’re also open to sponsored projects, but given the seeming lack of interest in 10 years, I’d recommend that workaround above.)