Accessing SOAP Lite server thru WSDL
- I have a very simple question. I have been successfully using SOAP
Lite with an older version .5x for some time. The client is
implemented on unix using perl. The server side is on Windows 2000
using .5x. I am trying to bring up the client interface on a new
unix environment. SOAP Lite .67 is installed on this machine. I am
getting this error an cannot figure out how to get around it.
$soap = SOAP::Lite
I get the following:
"use_prefix has been deprecated. If you wish to turn off or use on
the use of a default namespace, then please use either ns(uri) or
default_ns(uri) at ./SOAP/Lite.pm line 858"
I have read the following:
uri and use_prefix deprecated in next release
I have seen a lot of support requests recently asking about setting
default namespaces and the like. As a result, I will be introducing
some changes to the API that I believe makes this task much more
intuitive. Of course, changing the API should not be done lightly,
especially to a subroutine like uri which is used by every
installation of SOAP::Lite on the planet - one way or another. So it
will be slowly phased out. So what are these changes, you ask?
First, there are two new subroutines added to SOAP::Serializer and
also made available through SOAP::Lite as a shortcut, they are:
default_ns() and ns(). They set the namespace URI of a request while
at the same time express how that namespace should be serialized -
either as a default namespace or as a declared namespace. Second, to
provide a more intuitive name, use_prefix is being deprecated in
favor of one of the aforementioned subroutines. Finally, uri() is
also being deprecated for similar reasons. It's name never did make
that much sense to me, and I am hoping that ns() is more intuitive.
Keep reading to see the man page entries for these new subroutines.
default_ns($uri) - Sets the default namespace for the request to the
specified uri. This overrides any previous namespace declaration
that may have been set using a previous call to ns() or default_ns
(). Setting the default namespace causes elements to be serialized
without a namespace prefix, like so:
ns($uri,$prefix=undef) - Sets the namespace uri and optionally the
namespace prefix for the request to the specified values. This
overrides any previous namespace declaration that may have been set
using a previous call to ns() or default_ns(). If a prefix is not
specified, one will be generated for you automatically. Setting the
namespace causes elements to be serialized with a namespace prefix,
I have tried various permutations using ns and/or default_ns with no
luck. I can't figure out what I need to change since I am not using
the use_prefix or uri subroutines directly. Do I have a
compatibility issue between the server and client?
Any inputs would be appreciated.