You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsif-dev@ws.apache.org by Anthony Elder <an...@uk.ibm.com> on 2003/05/06 13:47:19 UTC
Re: [wsif] extensibility element for namespaces
WSIF used to tolerate the binding namespace ending with or without a slash,
and this code in WSIFPluggableProviders must be left over from then. I
think sometime last year trailing slash toleration was removed, I don't
remember the details, can any one else remember? Probably now that WSIF
doesn't tolerate the trailing slash it shouldn't be fiddling with the
namespace, so this code is a bug. Could you raise a bugzilla? (and a fix
patch...?)
...ant
Anthony Elder
ant.elder@uk.ibm.com
Web Services Development
IBM UK Laboratories, Hursley Park
(+44) 01962 818320, x248320, MP208.
Rhett.DeWall@sybase.com on 05/05/2003 20:35:56
Please respond to axis-user@ws.apache.org
To: axis-user@ws.apache.org
cc:
Subject: [wsif] extensibility element for namespaces
Why does WSIF require that a WSDL's binding namesapce end in "/"? I am
trying to write my own WSIF provider and ran into trouble trying to
override the default provider. In order to get it to work, I had to add a
'/' to the end of the namespace because
WSIFPluggableProviders.overrideDefaultProvider(providerNamespaceURI,
provider) appends a '/' to the binding NamespaceURI and stores it that way
as the key in a HashMap. WsifServiceImpl.init() then uses the extensibility
element namespace to look up that key and if it doesn't end with the '/',
it will never find it. The same sort of thing happens whether you use SPI
to load the provider or overrideDefaultProvider.
<binding name="dbPortType" type="tns:dbPortType">
<sybjsql:binding xmlns:sybjsql="
http://schemas.sybase.com/ebd/eai/es/jdbc/V1.0/"/>
etc...
Both of these methods append the '/' to the end of the namespaceURI...
WSIFPluggableProviders.getProvider
WSIFPluggableProviders.overrideDefaultProvider
// the defaultNSProviders Hashtable URIs end with a '/'
if (!namespaceURI.endsWith("/")) {
namespaceURI += "/";
}
Thanks in advance.