Hallo
Mark,
Axis
can't load the plugable Provider. Probably Axis can't find the file containing
the name of the factory. Make sure there is a file named
org.apache.axis.deployment.wsdd.Provider in a META-INF/services directory
reachable from the classpath. A good place for the file is
WEB-INF/classes/META-INF/services . The filenames are
casesensitive.
Or the
method getName in your WSDDMyProviderClass returns a wrong name for the
provider.
Thomas
-----Ursprüngliche Nachricht-----
Von: Mark [mailto:[EMAIL PROTECTED]
Gesendet: Freitag, 14. November 2003 20:05
An: [EMAIL PROTECTED]
Betreff: Re: Deploying Providers - one issueHiI wrote my provider. But when I list the deployed services thru the axis admin page I get this errorException - org.apache.axis.ConfigurationException: org.apache.axis.deployment.wsdd.WSDDException: No provider type matches QName '{http://xml.apache.org/axis/wsdd/providers/java}MyProviderClassorg.apache.axis.deployment.wsdd.WSDDException: No provider type matches QName '{http://xml.apache.org/axis/wsdd/providers/java}MyProviderClass'I know I am missing something. Any help would be appreciated..-----Original Message-----
From: Thomas Bayer [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 12, 2003 9:43 PM
To: [EMAIL PROTECTED]
Subject: AW: Deploying Providers ?
Hi,
Axis supports also plugable Providers. New Providers could be used with a
service without changing the Axis source code.
Below is a step by step example. In the Provider the service's parameters
can be read:
msgContext.getService().getOption("param1");
Security Information can be passed via ThreadLocal or the MessageContext to
the service Implementation. We have subclassed EJBProvider for Example and
pass the HTTPAuthentication to the EJB Container.
Thomas
Example Plugable Provider
=========================
You can create your own provider with the following steps:
1.) Write the provider class. The example is a simple EchoProvider that
extends BasicProvider.
public class EchoProvider extends BasicProvider {
public void initServiceDesc(
SOAPService service,
MessageContext msgContext)
throws AxisFault {
}
public void invoke(MessageContext msgContext)
throws AxisFault {
Message requestMessage = msgContext.getRequestMessage();
SOAPEnvelope requestEnvelope =
requestMessage.getSOAPEnvelope();
Message responseMessage = new Message(requestEnvelope);
msgContext.setResponseMessage(responseMessage);
}
}
2.) Write a Factory for the provider.
public class WSDDEchoProvider extends WSDDProvider {
public Handler newProviderInstance(
WSDDService arg0,
EngineConfiguration arg1)
throws Exception {
return new EchoProvider();
}
public String getName() {
return "ECHO";
}
}
3.) Tell Axis about the new Provider. Axis is looking for a file in the
directory structure META-INF/service in the classpath with the file name
org.apache.axis.deployment.wsdd.Provider
META-INF/services/org.apache.axis.deployment.wsdd.Provider
In the file you can specify factories for plugable providers:
de.oio.providers.WSDDEchoProvider
Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard