A junit test would be even better. Looking briefly at the code, I'm wondering if the problem comes from the HttpEndpoint#getTargetPortType method which is called at the beginning of the overrideDefinition method. If the getTargetPortType returns null, the wsdl loaded from the resource won't be used at all. This may happen if there is a mismatch between the endpoint *target* and the wsdl, which may not be very obvious, as people may want to match the *current* endpoint with the wsdl. I guess the confusion comes from that point. This code has been first written to retrieve the wsdl from the target endpoint and expose it, but if you specify the endpoint, it still try to match it with the target endpoint instead of the current one. I'm not sure to be very clear, but if you paste your xbean.xml and wsdl, we should be able to find if this is the problem i'm talking about.
On Jan 15, 2008 1:36 PM, Andrea Zoppello <[EMAIL PROTECTED]> wrote: > Hi, > > Do you think it's possible to have a patch for this, i look into the > code but it's quite complicate > for me to do the patch. > > If you want i could open a JIRA issue! If it's needed and it's possible > i could attach a basic service assembly to test this. > > Andrea > > > Guillaume Nodet ha scritto: > > Well, if the namespace are actually used by the wsdl, this means that > > the wsdl is invalid, and I would certainly consider that a bug. > > > > On Jan 15, 2008 1:28 PM, Andrea Zoppello <[EMAIL PROTECTED]> wrote: > > > > > >> Hi Guillaume, > >> > >> This is exactly my use case: > >> > >> 1) I want to configure an Http consumer endpoint using xbean.xml and > >> attach to the service unit a wsdl file. i'm referring to wsdl with the > >> wsdlResource Attribute in xbean.xml. > >> > >> What happens is that the wsdl generated by smx is > >> not the same, i've deployed and referred in xbean file. > >> > >> The main difference is that, if i declared some custom namespace as the > >> wsdl of the previous post, they're not in the wsdl generated by smx. In > >> the wsdl that smx give to me there's only the target namespace!! > >> > >> Is this a bug?? > >> > >> Andrea > >> Guillaume Nodet ha scritto: > >> > >>> The best way is to use an xbean.xml and refer to the wsdl from there. > >>> In such case, it *should* not change the wsdl, unless some parameters > >>> > >> are > >> > >>> overriden in the endpoint definition from the xbean.xml. > >>> > >>> On Jan 15, 2008 11:43 AM, Andrea Zoppello <[EMAIL PROTECTED]> wrote: > >>> > >>> > >>> > >>>> Hi All, > >>>> > >>>> If i understand well: > >>>> > >>>> 1) When when you place a wsdl inside a servicemix-http service unit, > >>>> servicemix will parse it > >>>> and keep information about service > >>>> > >>>> 2) When you ask servicemix the wsdl with ?wsdl syntax servicemix > >>>> autogenerate the wsdl with > >>>> information stored. > >>>> > >>>> Is that right???? > >>>> > >>>> After doing some debug, i find a way to write the wsdl so smx, map > >>>> > >> parse > >> > >>>> correctly the ServiceDefinition, the binding and the port type class, > >>>> but i still have a big problem, if my original wsdl contains "custom > >>>> namespace declaration" servicemix seem lost this information when you > >>>> ask to generate wsdl with ?wsdl syntax?? > >>>> > >>>> Has anyone the same problem?? > >>>> > >>>> Thanks in advance. > >>>> > >>>> Andrea > >>>> > >>>> Here my wsdl: > >>>> <?xml version="1.0" encoding="UTF-8"?> > >>>> <wsdl:definitions > >>>> targetNamespace="urn:eng:spagic:processes:SimpelHttp:v0" > >>>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > >>>> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" > >>>> xmlns:spagic="urn:eng:spagic" > >>>> xmlns:SimpelHttp_v_0="urn:eng:spagic:processes:SimpelHttp:v0" > >>>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > >>>> > >>>> <wsdl:types> > >>>> <xsd:schema elementFormDefault="qualified" > >>>> targetNamespace="urn:eng:spagic"> > >>>> <xsd:element name="payload" type="xsd:anyType"/> > >>>> <xsd:element name="response" type="xsd:anyType"/> > >>>> </xsd:schema> > >>>> </wsdl:types> > >>>> > >>>> <wsdl:message name="msgRequest"> > >>>> <wsdl:part element="spagic:payload" name="in"/> > >>>> </wsdl:message> > >>>> > >>>> <wsdl:message name="msgResponse"> > >>>> <wsdl:part element="spagic:response" name="out"/> > >>>> </wsdl:message> > >>>> > >>>> <wsdl:portType name="SimpelHttp.starthttp_v_0"> > >>>> <wsdl:operation name="run"> > >>>> <wsdl:input message="SimpelHttp_v_0:msgRequest" > >>>> name="inRequest"/> > >>>> <wsdl:output message="SimpelHttp_v_0:msgResponse" > >>>> name="outResponse"/> > >>>> </wsdl:operation> > >>>> </wsdl:portType> > >>>> > >>>> <wsdl:binding name="SimpelHttp.starthttp_v_0Binding" > >>>> type="SimpelHttp_v_0:SimpelHttp.starthttp_v_0"> > >>>> <wsdlsoap:binding style="document" > >>>> transport="http://schemas.xmlsoap.org/soap/http"/> > >>>> <wsdl:operation name="run"> > >>>> <wsdlsoap:operation soapAction=""/> > >>>> <wsdl:input name="inRequest"> > >>>> <wsdlsoap:body use="literal"/> > >>>> </wsdl:input> > >>>> <wsdl:output name="outResponse"> > >>>> <wsdlsoap:body use="literal"/> > >>>> </wsdl:output> > >>>> </wsdl:operation> > >>>> </wsdl:binding> > >>>> > >>>> <wsdl:service name="SimpelHttp.console_v_0"> > >>>> <wsdl:port > >>>> binding="SimpelHttp_v_0:SimpelHttp.starthttp_v_0Binding" > >>>> name="SimpelHttp.starthttp_v_0"> > >>>> <wsdlsoap:address location=" > http://0.0.0.0:9999/simplehttp/ > >>>> > >> "/> > >> > >>>> </wsdl:port> > >>>> </wsdl:service> > >>>> </wsdl:definitions> > >>>> > >>>> > >>>> > >>>> > >>> > >>> > >> > > > > > > > > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/
