Hi Dan,

ASAIK from the specification ,The SEI can be explicitly or implicitly
defined.You said is the explicit definition which set the 
A's Webservice annontation endpoint interface as B. 

But if the SEI is implicitly defined, we should find the Webmethod by 
this way as sepecification said:

"Otherwise, the class implicitly defines a service endpoint interface 
 (SEI) which comprises all of the public
 methods that satisfy one of the following conditions:
 1. They are annotated with the javax.jws.WebMethod annotation with the 
 exclude element set to  false or missing 
(since false is the default for this annotation element).
 2. They are not annotated with the javax.jws.WebMethod annotation but 
 their declaring class has a  javax.jws.WebService annotation."

And we should not just find an an class B which is the interface of A and
come with the annonation of WebService to avoid missing C which also 
provides WebMethod.

That is what I want to figure out.

So what's your thought about it? 


-----Original Message-----
From: Dan Diephouse [mailto:[EMAIL PROTECTED]
Sent: 11/5/2006  2:46
To: [email protected]
Subject: Re: Something about the SEI
 
Willem Jiang wrote:

> Hi,
>
> I just went through the JAX-WS 2.0 specification (Final Release April 
> 19, 2006) about the SEI , and found there some interesting use cases 
> CXF can't treat properly.
> Here is how can we get the SEI from implementation class in the 
> Chapter 3 "Java to WSDL 1.1 Mapping" P30.
>
> ......
> In CXF, we treat SEI as A interface class which is defined in
> JaxWsImplementorInfo,
>
> public Class<?> getEndpointClass() {
>        Class endpointInterface = getSEIClass();
>        if (null == endpointInterface) {
>            endpointInterface = getImplementorClass();
>        }
>        return endpointInterface;
>    }
>
> In most cases this definition works fine, but there also some use
> cases we can't treat the SEI class as A kind of interface class.
> eg,
>
> @WebService
> public class A implements B,C,D
>
> B, C are the interface which are annotated with "WebService".

>@WebService
>public Interface B 


>@WebService
>public Interface C 




I'm confused by this message - if someone exposes class A as a web 
service, it should only be able to have one interface defined as the 
endpoint interface. Say that interface is B. Whats wrong with just using 
that as that should contain all the annotations (with the exception of 
the @WebService.serviceName, which is on class A)?

- Dan

-- 
Dan Diephouse
(616) 971-2053
Envoi Solutions LLC
http://netzooid.com


Reply via email to