Hi
On 26/11/13 17:06, António Mota wrote:
That was complicated... I tested like this:

1) removed factory.setServiceBean(testService());
it throws a org.apache.cxf.service.factory.ServiceConstructionException: No
resource classes found

2) in my Application changed
s.add(TestService.class)

- a interface -  to s.add(TestService
Impl.class)
it worked but none of the properties
in the service
were injected

3) removed the getClasses and overrided getSingletons instead, passing a
injected testService
IT WORKS

So I guess it was my mistake in first place...
Nevertheless let me ask, in my use case scenario (CXF+Spring) using the
RuntimeDelegate is the correct way to instantiate a server?

Well, typically users would not use Application while also working with Spring, they would just register roots/providers with jaxrs:server.


CXFNonSpringJaxrsServlet will work with Application, and will initialize the server as needed.

Application is supposed to be a completely portable 'container', JAX-RS supports the injection of JAX-RS contexts into Application, but if you'd like to mix it up with Spring/etc, then I guess it is becoming the implementation/framework specific.

May be we can support the auto-discovery of Applications from Spring application contexts, we are investigating what can be done in this regard right now

Sergey

Cheers, Sergey



Cheers.






* Melhores cumprimentos / Beir beannacht / Best regards *
*______________________________________________________*

*António Manuel dos Santos Mota <http://gplus.to/amsmota>*
*http://www.linkedin.com/in/amsmota* <http://www.linkedin.com/in/amsmota>
*______________________________________________________*


On 26 November 2013 16:23, Sergey Beryozkin <[email protected]> wrote:

Hi

On 26/11/13 13:41, António Mota wrote:

Hi again.

Sorry for not having explained myself correctly. What I'm trying to do is
to have CXF+Spring configured in a Servlet 3 "non-xml" fashion. SO I have
my WebApplicationInitializer initializing
a AnnotationConfigWebApplicationContext with some @Configuration classes.
SO I have not only to instantiate the RS Applications but also all the
Spring beans and make them available to each other. I did that with Jersey
but found out some problems with the jersey-spring3 integration, and since
we're planning the use of probably Fuse (or at least Camel) I'm now
testing
CXF. I started with the example here [1] (that is indeed a example using
the standalone container), from which i picked and adapted parts of the
code, so I ended up in my configuration with

@Bean(destroyMethod = "shutdown")
   public SpringBus cxf() {
SpringBus springBus = new SpringBus();
   return springBus;
}

@Bean
   public Server jaxRsServer() {
JAXRSServerFactoryBean factory =
RuntimeDelegate.getInstance().createEndpoint(restApplication(),
JAXRSServerFactoryBean.class);


    factory.setServiceBean(testService());


This line appears to be redundant to me, as you are already setting it up
in the application. If it does not work without this line then it is a bug
which must be fixed.

I think we have a demo (in our distro) where a server is started with
RuntimeDelegate, and it works

Can you double check it please ?

Thanks, Sergey


  return factory.create();
   }

and then the beans referring my javax.ws.rs.core.Application and my
testService. If I don't have the above 2 beans nothing is instantiated. To
have the TestService registered in the Application like in my previous
post
it's irrelevant.


My servlet is configured as

ServletRegistration.Dynamic dispatcher =
container.addServlet("dispatcher","org.apache.cxf.
transport.servlet.CXFServlet");

It is working until now, but I really don't know if this is the right way
to do it, but nevertheless this *is* a test phase...

[1]
http://aredko.blogspot.ca/2013/01/going-rest-embedding-
jetty-with-spring.html


BTW, the @PreMatching is working now, I just had to do some small changes
in the way ContainerRequestContext retrieves the service paths (!) and
changed the Jersey specific HttpBasicAuthFilter to use the http header
directly.


Cheers.





* Melhores cumprimentos / Beir beannacht / Best regards *
*______________________________________________________*

*António Manuel dos Santos Mota <http://gplus.to/amsmota>*
*http://www.linkedin.com/in/amsmota* <http://www.linkedin.com/in/amsmota>
*______________________________________________________*


On 26 November 2013 11:39, Sergey Beryozkin <[email protected]> wrote:

  Hi

On 26/11/13 11:32, António Mota wrote:

  Sorry, @PreMatching does work, after I registered it in
my javax.ws.rs.core.Application instead of rootContext.

That leads me to a question however. Why do I have to register my
classes
with the JAXRSServerFactoryBean itself and not doing it only has the
JAX-RS
spec says, like in

@ApplicationPath("rest")
public class RestApplication extends Application {

@Override
       public Set<Class<?>> getClasses() {
           Set<Class<?>> s = new HashSet<Class<?>>();
           s.add(TestService.class); -----------------------> this one I
had
to register in JAXRSServerFactoryBean
           s.add(PreMatchingFilter.class);
           return s;
       }
}

   I'm a bit confused now :-).

You can have Application activated with CXFNonSpringJaxrsServlet, you
don't have to work with JAXRSServerFactoryBean, unless you have you
application running in the standalone Jetty container.

What is that 'rootContext' you are referring to ? Is it something we need
to fix ?

Sergey







* Melhores cumprimentos / Beir beannacht / Best regards *
*______________________________________________________*

*António Manuel dos Santos Mota <http://gplus.to/amsmota>*
*http://www.linkedin.com/in/amsmota* <http://www.linkedin.com/in/
amsmota>
*______________________________________________________*


On 26 November 2013 11:16, António Mota <[email protected]> wrote:

   Well, the services works well, however I detected some points:


- if I point to my root address as before it still give me the address
of
the WADLs and WSDLs. The WSDL links still work but the WADLs give a 404

- @PreMatching does not seems to work, beside the annotated class I
also
registered my annotated class it in the application
with rootContext.register(MyPreMatchingFilter.class);


Cheers.





* Melhores cumprimentos / Beir beannacht / Best regards *
*______________________________________________________*

*António Manuel dos Santos Mota <http://gplus.to/amsmota>*
*http://www.linkedin.com/in/amsmota* <http://www.linkedin.com/in/
amsmota


  *______________________________________________________*


On 26 November 2013 11:05, António Mota <[email protected]> wrote:

   Yes, I just found out


http://cxf.apache.org/docs/30-migration-guide.html

But the problem is, how stable is this and what's teh roadmap until
Release? If I tell my boss to use a Milestone1 he'll laugh...

Nevertheless I will do test, I'll be happy if I can help somehow.

Cheers.




* Melhores cumprimentos / Beir beannacht / Best regards *
*______________________________________________________*


*António Manuel dos Santos Mota <http://gplus.to/amsmota>*
*http://www.linkedin.com/in/amsmota* <http://www.linkedin.com/in/
amsmota>
*______________________________________________________*


On 26 November 2013 11:02, Francesco Chicchiriccò <
[email protected]

wrote:


   On 26/11/2013 11:58, Sergey Beryozkin wrote:


   Hi,

CXF 3.0.0-milestone1 has just been released, give it a try please


  Hey, great news: I haven't heard anything yet about this (not even
from
announce@) and http://cxf.apache.org/download.html does not show
anything new...

Anyway, is there any migration procedure (or just hints) for people
upgrading from 2.7.X (2.7.8-SNAPSHOT, actually)?

Regards.


    On 26/11/13 10:49, António Mota wrote:


   Hi again.


As part of my POC (that ultimately is aimed at aiding us to choose
between
CXF, CXF+Camel or Jersey) I'm now trying to port some use cases
from
Jersey
to CXF. It was going very well except for a use case where I'm
using
javax.ws.rs.client.ClientBuilder, but it seems that this class is
only
present in javax.ws.rs-api:2.0 and CXF 2.7.7 uses
javax.ws.rs-api:2.10-m10.

I tried to just import the RS 2.0 jars and it went OK until CXF
tries
to
instantiate a ResponseImpl that uses
a javax.ws.rs.MessageProcessingException that seems to be present
in
RS
2.0-m10 but not in 2.0.

So my question is, is there a milestone that uses the final RS 2.0?
If
yes,
how stable is it and when it will be available as Release?

Cheers.



* Melhores cumprimentos / Beir beannacht / Best regards *
*______________________________________________________*

*António Manuel dos Santos Mota <http://gplus.to/amsmota>*
*http://www.linkedin.com/in/amsmota* <http://www.linkedin.com/in/
amsmota>
*______________________________________________________*


    --

Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

ASF Member, Apache Syncope PMC chair, Apache Cocoon PMC Member
http://people.apache.org/~ilgrosso/







--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com




--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com




--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Reply via email to