Hi Uwe, Thanks a lot for your help, as you said, the documentation is not very useufull at this point. Interrestingly I use my own Provider for the same reason you do: To give the service itself access to security information. Looks like we should think about a more generic solutions, something like a provider that allows passing configurable attributes of the messageContext to the service in a appended Parameter.
Tell me what you think about this ! Stefan Uwe Kubosch schrieb: > Hi Stefan! > > > I wrote my own provider but I cant test it, because > > I didnt find anything about deploying providers. > > > > How can I tell Axis to use my Provider for some service > ? > > Is there a possibility to tell axis that java:MyRPC is > > > of class package.MyRPCProvider in the > server-config.wsdd ? > > I just did this, and I must say the documentation was not > a great help. I'll try to summerize what I did. If > anybody has tips on a better way to do it, please add > your advice. > > My service is a standard Java class, but all methods have > an extra argument at the end. This argument is a > SecurityContext, and is not provided by the user of the > service. It is provided by a custom provider. > > The custom provider is a class implementing the Handler > interface. > > In my case I subclass the RPCProvider class, and override > the invokeMethod() method, and add my extra argument > before calling super.invokeMethod(). > > To deploy the service with a custom provider set your > provider attribute in the service tag to "Handler", and > add a parameter tag with the name of the custom provider > class. The first parameter tag below indicates which > provider to use. The second indicates the backend > service class to use, as with the standard RPCProvider. > > Example: > > <service name="MyService" provider="Handler"> > <parameter name="handlerClass" > value="mypackage.MyProvider" /> > > <parameter name="className" > value="mypackage.MyServiceImpl" /> > <parameter name="allowedMethods" value="*" /> > </service> > > I would have expected to be able to put the class name > directly in the provider attribute of the service tag, > and also be able to refer to a previously defined handler > like this: > > <handler name="MyHandler" > type="mypackage.MyProvider" /> > > <service name="MyService" > provider="java:mypackage.MyProvider"> > <parameter name="className" > value="mypackage.MyServiceImpl" /> > <parameter name="allowedMethods" value="*" /> > </service> > > <service name="MyService" provider="MyHandler"> > <parameter name="className" > value="mypackage.MyServiceImpl" /> > <parameter name="allowedMethods" value="*" /> > </service> > > If someone can tell me how this can be done, I'd be very > happy :) > > > donV >
