cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dan Diephouse <...@envoisolutions.com>
Subject Re: Something about the SEI
Date Sun, 05 Nov 2006 02:34:45 GMT
Hi Willem,

I could be completely wrong, but here is how I understand it. If an
endpointInterface is defined, that interface is used as the SEI.
Otherwise the SEI is the implementation class itself and only the
methods which have an explicit @WebMethod annotation are turned into
operations. So the interfaces of a concrete class are irrelevant to
turning the class into a web service. In your example this means class A
would be used as the basis of the web service and only methods with
@WebMethod would be come operations. Interfaces B, C, and D would not
play a role at all.

- Dan

Jiang, Ning (Willem) wrote:

> 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:dan@envoisolutions.com]
> Sent: 11/5/2006 2:46
> To: cxf-dev@incubator.apache.org
> 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
>
>


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


Mime
View raw message