The WSDLFlattern has to be called so that imported schema
become inlined. See http://issues.apache.org/activemq/browse/SM-727.
So your fix would not work :(

On 11/10/06, Christian Schneider <[EMAIL PROTECTED]> wrote:
Hi Guillaume,

I have looked into the code and I think you can simply configure xfire
to not create a binding. So perhaps you can then use the xfire generated
wsdl.

props.put(ObjectServiceFactory.USE, SoapConstants.USE_LITERAL);
        if (serviceInterface != null) {
            props.put("annotations.allow.interface", "true");
        }
 >>>>        factory.setBindingCreationEnabled(false);
        xfireService = factory.create(serviceClass, svcLocalName,
svcNamespace, props);
        xfireService.setInvoker(new BeanInvoker(getPojo()));
        xfireService.setFaultSerializer(new
JbiFaultSerializer(getConfiguration()));
        xfireService.setProperty(SoapConstants.MTOM_ENABLED,
Boolean.toString(mtomEnabled));
        xfire.getServiceRegistry().register(xfireService);

In the marked line I tell xfire to not create the default binding.
I think you could even tell xfire to create a special jbi binding if
this will help further.

Best regards

Christian

Guillaume Nodet schrieb:
> This code has been recently modified.
> One of the problem is that the wsdl for the jsr181 endpoint should not
> contain any soap binding informations.
> However, if the wsdl create by the WSDLFlattener / WSDLFactory
> is not usable, this is the problem.
>
> You should be able to test that easily i think.
>
> On 11/9/06, Christian Schneider <[EMAIL PROTECTED]> wrote:
>> I have debuged the problem and found out where we get our wrong wsdl
>> from.
>>
>> The problem is inside Jsr181Endpoint.java in method registerService:
>> 
http://svn.apache.org/repos/asf/incubator/servicemix/trunk/deployables/serviceengines/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/Jsr181Endpoint.java
>>
>>
>> First the wsdl is generated by xfire:
>>
>>  // If the wsdl has not been provided,
>>         // generate one
>>         if (this.description == null) {
>>             this.description = generateWsdl();
>>
>> Then later it is overwritten:
>> // Flatten it
>> definition = new WSDLFlattener(definition).getDefinition(interfaceName);
>> description =
>> WSDLFactory.newInstance().newWSDLWriter().getDocument(definition);
>>
>> The description that is generated by xfire is correct about the
>> complextype. The decription from the WSDLFactory is wrong.
>> Does anybody know why the wsdl from xfire can not be used?
>>
>> Best regards
>>
>> Christian
>>
>>
>> Guillaume Nodet schrieb:
>> > Not any real idea, given what you have seen, this is certainly
>> > a bug.  Could you please raise a JIRA and attach the necessary
>> > files to reproduce the problem easily ?
>> >
>>
>>
>> --
>>
>> Christian Schneider
>> ---
>> http://www.liquid-reality.de
>>
>>
>>
>
>


--

Christian Schneider
---
http://www.liquid-reality.de





--
Cheers,
Guillaume Nodet

Reply via email to