tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Gallimore <jonathan.gallim...@gmail.com>
Subject Re: Using Stateless Bean as WebService and Remote Interface Both
Date Thu, 30 Apr 2009 19:47:52 GMT
Hi Jean-Louis,

That's really useful info - I had reached the conclusion that the version of
CXF we're using doesn't support this, but didn't realise that its a JAX-WS
2.1 feature. I did have look through the code and thought it might be
possible to modify the OpenEJB CXF classes to use methods on the
superinterface, but haven't really got anywhere with it. I also think we'd
run into problems with things on the client side as well.

It would be great to move to a newer version of CXF. I'm looking forward to
seeing how you get on. I'm happy to help in any way I can.

Cheers

Jon

On Thu, Apr 30, 2009 at 1:24 PM, Jean-Louis MONTEIRO <
jean-louis.monteiro@atosorigin.com> wrote:

>
> Hi,
>
> I've done some tests around this topic.
> I checked over specifications first and I've seen it's a JAX-WS 2.1
> feature.
>
> By default, the runtime just examines the exact classes referenced from the
> SEI interface to figure out what classes need to be bound into the JAXB
> context. A way to change it is to use the JAXB annotation @XmlSeeAlso where
> it's needed.
>
> For example:
> @WebService
> public interface BaseService {
>    String echo(String toEcho);
> }
> @WebService
> public interface HelloWorld extends BaseService {
>    String sayHi(String text);
> }
> @WebService(serviceName = "HelloWorld")
> @XmlSeeAlso(value = {BaseService.class})
> public class HelloWorldImpl implements HelloWorld {
>
>    public String sayHi(String text) {
>        return "Hello " + text;
>    }
>
>    public String echo(String toEcho) {
>        return toEcho;
>    }
>
> }
>
> But the case is that OpenEJB embeds CXF 2.0.x which does not support JAX-WS
> 2.1
> To support interface inheritance, we have to migrate to CXF 2.1 (min)
>
> I've tested it with CXF (standalone) and it works fine.
> But, we can not change CXF version out of the box in OpenEJB because API
> has
> been modified.
>
> I'm working with a colleague to get OpenEJB compiling and running with CXF
> 2.2.1 (lastest version available).
>
> First results are expected by the end of this week.
>
> Kind regards,
> Jean-Louis
>
>
>
>
> David Blevins wrote:
> >
> > Ok, this feature is now in.  In OpenEJB 3.1.1 this will work fine:
> >
> >      @Local
> >      @Remote
> >      @WebService
> >      public interface Everything {
> >          public Object echo(Object o);
> >      }
> >
> >      public class SuperBean implements Everything {
> >          public Object echo(Object o) {
> >              return o;
> >          }
> >      }
> >
> > Careful though as combining @Remote and @Local on the same interface
> > is still against the spec and won't be portable.   It'll work fine in
> > OpenEJB, but likely nowhere else.
> >
> > When using both @Local and @Remote on the same interface, you will
> > always get the @Local version of the proxy where possible.
> >
> >
> > -David
> >
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Using-Stateless-Bean-as-WebService-and-Remote-Interface-Both-tp22742953p23315250.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message