You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Rh...@sybase.com on 2003/05/05 21:35:56 UTC

[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.