On 1/22/07, dgoodine <[EMAIL PROTECTED]> wrote:
1. It seems that alot of people start with the JSR181 service unit and HTTP since it's a bit simpler model, but there's very little discussion/documentation/demos for implementing your services in a Service Engine. I'd prefer the latter, since it allows better abstraction (you can build abstract classes for all the Endpoint, Component, etc., requiring minimal coding for new engines and allowing common functionality). It also seems a little more natural to the JBI spec to expose services directly to the NMR rather than burying them inside another component. It this really the best practice?
If you want to write a service, you may want to use jsr181, whereas writing a full SE means that you write an "engine", where you will deploy service units. Though you can also write a SE for a single service ... The jsr181 component is the best tool if you want to avoid using the JBI API.
2. Also, it would seem natural to deploy WSDL (or *some* sort of description of the service engine contract) with the Service Unit (or even the Engine itself). But there's nothing in the documentation or FUSE demos that indicates you can do that. I blindly tried using the wsdlResource attribute on the my:endpoint bean in the Service Unit, but that didn't seem to have any effect.
This has not been factored. If you write your own SE, you need to add the wsdlResource property yourself (take a look at the existing components to see how it's done).
3. I've built my message definitions as complex types completely in XSD then expose them into WSDL using xsd:include. But I'm having problems with the HTTP consumer endpoint loading them on deployment. In fuse (1.2.2), it can't find them on the classpath. Also, in the Web Services explorer, it's getting errors trying to load in the included XSDs, but I'm more concerned about the former issue.
Importing xsds / wsdls may lead to problems, as one limitation of jbi, is that endpoint description must be standalone (no imports at all), which is actually not always possible.
Here's the xbean.xml file: <beans xmlns:http="http://servicemix.apache.org/http/1.0" xmlns:ucsa="http://services.mtvi.com/ucsa" xmlns:acq="http://services.mtvi.com/ucsa/acquisition"> <http:endpoint service="ucsa:AcquisitionService" endpoint="post" targetEndpoint="internal" role="consumer" locationURI="http://0.0.0.0:8192/ucsa/acquisition/post" defaultMep="http://www.w3.org/2004/08/wsdl/in-out" wsdlResource="classpath:AcquisitionService.wsdl" /> </beans> Thanks for any help. -- View this message in context: http://www.nabble.com/A-few-questions-about-SEs-and-WSDL-tf3053641s12049.html#a8488590 Sent from the ServiceMix - User mailing list archive at Nabble.com.
-- Cheers, Guillaume Nodet ------------------------ Architect, LogicBlaze (http://www.logicblaze.com/) Blog: http://gnodet.blogspot.com/
