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