Jim Ma [
http://community.jboss.org/people/jim.ma] replied to the discussion
"CXF jms integration"
To view the discussion, visit:
http://community.jboss.org/message/541238#541238
--------------------------------------------------------------
Thanks Alessio and Richard's comments again . Let me summarize our discussion points
first , then I will give the issues I can see from my previous experimental work on
cxf/jms integration in past two weeks, then you and Richard can continue to add your
thoughts and comments:
1) Use jbossws-cxf.xml (cxf style configuration file) not the new
introduced jbossws-endpoints.xml .
Looks like my previous 4 reasons are not the problems at all . To simplify the things ,
we can use jbossws-cxf.xml to deploy jms transport web service. I agreed for this
direction.The one problem I can see if we use jbossws-cxf.xml to deploy jms endpoint so
far : jbossws-cxf.xml is now used to customize the default generated cxf deployment
descriptor by http endpoint , it will be mixed up with jms endpoint when user specifies
the jbossws-cxf.xml for http endpoint ,and also want to deploy the jms endpoint with the
same jbossws-cxf.xml. Let's take a example :
////////////////<web.xml>//////////////////
<servlet>
<servlet-name>HelloService</servlet-name>
<servlet-class>org.jboss.test.ws.jaxws.samples.HelloImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloService</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
/////////////////<jbossws-cxf.xml>//////////////////////
<jaxws:endpoint id='HttpHelloService'
implementor='org.jboss.test.ws.jaxws.samples.HelloImpl>
</jaxws:endpoint>
<!--jms endpoint->
<jaxws:endpoint id='JMSHelloService'
wsdlLocation="./wsdl/jms-samples.wsdl"
implementor='org.jboss.test.ws.jaxws.samples.HelloImpl>
</jaxws:endpoint>
We name the configuration file to only deploy jms endpoint to something like
jbossws-cxf-jms.xml ? or we do not support deploy the jms endpoint and http endpoin in
one deployment archive ?
2) the approach Richard suggested to do jms integration :
* extend our UMDM (located in SPI) to provide JMS endpoint abstractions
* extend our DA framework to distinguish DA aspects intended to create web based
endpoints and jms based endpoints
* update our ASIL (concretely WSDeploymentAspectDeployer) to distinguish between Web
DAs and JMS DAs
* implement CXF DA that will map jboss-cxf.xml MD to our UMDM (ensures CXF -> SPI
dependency)
* implement ASIL DA that will create JMS MD from our UMDM (ensures ASIL -> SPI
dependency)
* implement CXF DA that will register plain JMS endpoints with CXF (ensures CXF ->
SPI dependency)
If you look at my cxf integration work two weeks ago, you can find what I did except the
jbossws-endpoints are mainly follow this suggested approach. But after I realized the jms
endpoints needs the jms queue/topic deployment dependencies, I created the BeanMataData
and deliever the KernalDeploymentDeployer to deploy the jms endpoints . At present , we
can not resolve the deployment dependency in the DA.
Add also distinguish the http endpoint and jms endpoint in jbossws-cxf.xml is difficult,
for some configuration file (like the example in 1) you need to parse the wsdl , then you
can figour out.
3) The Endpoint and ASIL dispatch
* Endpoint
- ServletEndpoint -> url address
- JMSEndpoint -> jms address
* DA
- ServletDA
- JMSDA
OK. You convinced me to create JMSEndpoint for jms transport endpoint . It's ideal
to use ServletDA to deploy the ServletEndpoint and JMSDA to handle jms endpoint. But
again, DA can not handle the dependency deployment which is required by jms transport
endpoints deployment in CXF. Do you have some ideas to change the DA api and eable the
dependency in DA ?
4) jms endpoint from wsdl (soap over jms support) sample
I've created a test case for this :
https://svn.jboss.org/repos/jbossws/stack/cxf/branches/jms-integration/mo...
https://svn.jboss.org/repos/jbossws/stack/cxf/branches/jms-integration/mo...
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/541238#541238]
Start a new discussion in JBoss Web Services Development at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]