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.