users@glassfish.java.net

Re: _at_WebServiceProvider and the servlet-name

From: Mark Hansen <marklists_at_javector.com>
Date: Fri, 05 Jan 2007 22:45:38 -0500

Hi Dhiru,

I have thought some more about this and am more confused. I see that
Section 5.3.2.1 on the @WebService annotation contains the exact same
requirement for <servlet-link>:

"For Servlet based endpoints using this annotation, fully qualified name
of the Service Implementation Bean class
must be used as the <servlet-link> element in the deployment descriptor
to map the Port component to the actual
Servlet."

But, in GlassFish, I know that you do not have to use the fully
qualified name of the SIB as the <servlet-name>. So, why is this the
case for @WebServiceProvider?

Furthermore, I believe that the generation of a webservices.xml file is
*not* required for a JSR-109 implementation when either the JAX-WS
@WebService or @WebServiceProvider annotations are used. The fact that
GlassFish generates a webservices.xml at deployment time, and that it
maps the <servlet-name> (when specified in web.xml) to the
<servlet-link>, is a GlassFish specific implementation issue.

So, this leads me back to my original point. I believe that the fact
that <servlet-name> must contain the fully qualified name of the
@WebServiceProvider class is a result of the GlassFish specific
implementation that generates the webservices.xml. But, this
implementation issue for some reason doesn't show up in the @WebService
case.

So, I guess in summary, I don't think that the GlassFish behavior
requiring <servlet-name> to be the fully qualified name of the
@WebServiceProvider class derives from the JSR-109 spec. I think its a
bug. Or, if not a bug, its at least an area where the GlassFish
behavior is confusing and unnecessarily restrictive.

Thanks in advance for giving this some thought. I hope you can clear up
my confusion. FYI, I'm running V2 b28.

-- Mark


Dhiru Pandey wrote:

> If you are not using a deployment descriptor (webservices.xml) file
> then this is true.
>
> Please see section 5.3.2.2 on WebServiceProvider annotation (JSR-109):
>
> "For Servlet based endpoints using this annotation, fully qualified
> name of the Service Implementation Bean class
> must be used as the <servlet-link> element in the deployment
> descriptor to map the Port component to the actual
> Servlet."
>
> This implies that the servlet name (which is the same as the
> <servlet-link>) should be fully qualified name of the Service
> Implementation Bean class
>
> You should be able to override this if the webservices.xml file is used
>
> -Dhiru
>
> Mark Hansen wrote:
>
>> It seems to be a requirement in GlassFish that when deploying an
>> @WebServiceProvider along with an web.xml, that the <servlet-name>
>> must be equal to the fully qualified name of the provider class
>> (i.e., the class with the @WebServiceProvider annotation). Is that
>> correct? Is this a requirement specified anywhere in JSR-109 or
>> JSR-181, because if it is, I cannot find such a requirement.
>>
>> Thanks for any insight on this.
>>
>> -- Mark
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
>> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>