-
1. Re: CXF services in a war
kimba74 Jun 13, 2012 11:35 AM (in response to spyhunter99)Hi spyhunter99,
I was in the exact same situation a few weeks back, that's what I have found out:
- When you deploy your services in a war you configure them as usual in the web.xml however it is JBossWS' CXF implementation that is handling and registering your endpoints
- The jbossws-cxf.xml gives you the possibility to refine these configured endpoints even more but your JBoss AS must have the Spring libraries installed
- CXF creates an instance of your endpoints as configured in web.xml and places them as beans on the bus and names them {namespace}ServiceName and {namespace}PortName. So in order for your jbossws-cxf.xml to pick up the correct CXF beans your <jaxws:endpoint> configuration has to match your jax-ws information
One thing I noticed (and I still have an unanswered post on here) is the fact that not every part of the jbossws-cxf.xml is being picked up. For example my <jaxws:client> configuration is completely ignored.
Let me know if you have further questions and I'll try if I can answer them.
--Steffen
Message was edited by: Steffen Krause
-
2. Re: CXF services in a war
asoldano Jun 13, 2012 11:23 AM (in response to kimba74)Thanks Steffen for summing this up.
To be honest, the documentation at [1] applies to JBossWS-CXF 3.x and is now to be replaced by [2] (for current jbossws trunk) and [3] (for version in AS 7.1). The front page at https://community.jboss.org/wiki/JBossWS mentions the JBossWS 4.x doc is served at https://docs.jboss.org/author/display/JBWS . This said, I can probably see if this topic can be better explained.
To give you a bit of history, the jbossws-cxf.xml is basically the leftover of the initial (jbossws-cxf-3.0.x) integration with Apache CXF, when Spring was strictly required. Thanks to the evolution of Apache CXF and due to the need of avoiding depending on Spring, we slowly moved to a new integration allowing cxf based endpoint deployment without the need of going through a spring DD nor a spring application context at all.
Anyway, we kept the option of installing spring and using jbossws-cxf.xml for those needing specific configuration things provided throught spring bean declarations.
So spyhunder99, unless you need to tune specific spring bean things, you can simply avoid bothering creating a jbossws-cxf.xml / cxf.xml descriptor and declare your endpoints in the web.xml (you might not even need that nowadays, with JSR 109 1.3 / Servlet 3).
Regarding the <jaxws:client>, Steffen, I need to check some things first, then I'll reply you in the other thread.
[1] https://community.jboss.org/wiki/JBossWS-StackCXFUserGuide
[2] https://docs.jboss.org/author/display/JBWS/Apache+CXF+integration
[3] https://docs.jboss.org/author/display/AS71/Apache+CXF+integration
-
3. Re: CXF services in a war
kimba74 Jun 13, 2012 11:33 AM (in response to asoldano)Alession,
Thanks for the additional information, guess I'll have to take a look at the new JBossWS documentation as well.
In my specific case I had to add some additional JAXB classes to the JAXB Context of the endpoint as I'm using an extension mechanism and the XML fragments I send to the Endpoint are not referenced in the WSDL and are therefore not added to the JAXB Context automatically. In order to do that kind of CXF configuration jbossws-cxf.xml is still the right way to go?
Thanks for looking into the <jaxws:client> issue I'm having. Let me know if there is additional information I can provide (in the other thread) as I have been talking to Daniel Kulp from the CXF team quite a bit and spent most of last weekend "debugging" my implementation.
Thanks,
Steffen