We had the need on our project to use a custom java message provider.
To do this I had to modify MessageRouterServlet a bit for if you use
a user defined provider they expect you to use the bsf stuff (by my
understanding).  We wanted to use a variation of the MsgJavaProvider class
so we set the service class to be our provider and still left our provider
type to PROVIDER_JAVA.  What we had to do in the servlet was make sure that
even if you are using a PROVIDER_JAVA you can specify a user_defined service
class.

I'm not sure what the soap-dev's prefer to this method, but this method
worked
for me.


**** Code Snippet  *****
          Provider provider;
        if ( dd.getProviderType() == DeploymentDescriptor.PROVIDER_JAVA ) {
          // Handle Java based services

            ********  Modified Code  *****************
            String providerClass = dd.getServiceClass();

          if (providerClass == null)
                providerClass = "org.apache.soap.providers.MsgJavaProvider";

                  provider = (Provider)Class.forName(providerClass).newInstance();
            *********  End Modified Code *******************

        } else if (dd.getProviderType() ==
                   DeploymentDescriptor.PROVIDER_USER_DEFINED) {
          // Handle user-defined providers
          provider = ServerUtils.loadProvider(dd, reqCtx);
        } else {
          // Handle scripts
          provider = new org.apache.soap.providers.MsgJavaProvider();
        }
**** Code Snippet

Reply via email to