Hi,
In order to make custom provider, you can use provider handler.
This is a way using an axis handler impl as a provider.
Does it not meet your requirement?
If you want to use provider handler, the following things must
be done.
- writing your custom provider class inheireting from BasicHandler
(invoke() method should be implemented)
- setting a WSDD file like below.
<service name="HelloService" provider="Handler">
<parameter name="handlerClass" value="package.YourProvider"/>
</service>
In this example, when HelloService is invoked, the custom provider
(package.YourProvider) is used.
-----
Yoshi
----- Original Message -----
From: "Julia Tertyshnaya" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, January 30, 2003 9:01 PM
Subject: custom provider deployment problem
> Hi everybody,
>
> I'm trying to deploy a custom provider, but get the following exception:
>
> 1509431 [HttpProcessor[8080][4]] DEBUG
> org.apache.axis.ConfigurationException - Exception:
> java.lang.Exception: No provider type matches QName
> '{http://xml.apache.org/axis/wsdd/providers/java}diamondRPC'
> at
> org.apache.axis.ConfigurationException.<init>(ConfigurationException.java:89
> )
> at
> org.apache.axis.deployment.wsdd.WSDDException.<init>(WSDDException.java:72)
> at
> org.apache.axis.deployment.wsdd.WSDDProvider.getInstance(WSDDProvider.java:1
> 41)
> at
> org.apache.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java
> :418)
> at
> org.apache.axis.deployment.wsdd.WSDDDeployment.getDeployedServices(WSDDDeplo
> yment.java:566)
> at
> org.apache.axis.configuration.FileProvider.getDeployedServices(FileProvider.
> java:322)
> at
> org.apache.axis.transport.http.AxisServlet.reportAvailableServices(AxisServl
> et.java:584)
> at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:256)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> at
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:
> 335)
> and so on ...
>
> I did:
> - wrote my provider impl class;
> - wrote a class inheireting from WSDDProvider (getName() returns
> "diamondRPC");
> - packed these 2 classes into a jar together with a text file named
> META-INF/services/org.apache.axis.deployment.wsdd.Provider, which contains
> a single line - name of my WsddRPCProvider class:
> at.ftw.providers.WsddRPCProvider
> - put the jar into classpath and to all locations I could think of:
> tomcat/lib; tomcat/common/lib; tomcat/webapps/axis/WEB-INF/lib;
> tomcat/webapps/axis/classes;
> But it still looks like I'm doing smth. wrong and my classes are not found.
>
> I use tomcat4.x, axis1.0
>
> My deploy.wsdd looks as follows:
>
> <deployment xmlns="http://xml.apache.org/axis/wsdd/"
> xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
>
> <service name="RPCInvoker" provider="java:diamondRPC">
> <parameter name="scope" value="session"/>
> <parameter name="className" value="at.ftw.diamonds.RPCInvoker"/>
> <parameter name="allowedMethods" value="*"/>
> </service>
>
> </deployment>
>
> Thanks a lot! Any help will be much appreciated.
>
> Julia
>