Hi all, Actually I'm the one that worked on this migration that Jean-Louis talked about. I started just few days ago. All seem to work fine except the Attachement example. Here is my post on CXF mailing list : http://www.nabble.com/Migrating-to-CXF-2.2-in-OpenEJB-to23518058.html It seems we are not able to easily override the Jetty transport factory anymore.
I'll be able to work on it again on Thursday or Friday. Would you like a temporary patch to have a look at it? Best regards, Jean-Sébastien Scrève. Jonathan Gallimore-2 wrote: > > 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 < > [email protected]> 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. >> >> > > -- View this message in context: http://www.nabble.com/Using-Stateless-Bean-as-WebService-and-Remote-Interface-Both-tp22742953p23521907.html Sent from the OpenEJB User mailing list archive at Nabble.com.
