|
Actually, Ode is partly to blame here because it doesn't return a service description for its ServiceEndpoints. The attached patch to servicemix-soap fixes the problem by using the WSDL of the binding component if none is supplied by the service engine (Ode). alex Alex Boisvert wrote: Looks like the latest trunk of ServiceMix isn't setting the operation name correctly anymore. It should be "Hello" but it's setting "HelloRequest" (default is to use the SOAP body name). It seems to be due to the servicemix-http component not finding/loading the WSDL description.Guillaume, have you seen this before? LeeHoHun wrote: |
Index: servicemix-soap/src/main/java/org/apache/servicemix/soap/SoapHelper.java
===================================================================
--- servicemix-soap/src/main/java/org/apache/servicemix/soap/SoapHelper.java
(revision 446889)
+++ servicemix-soap/src/main/java/org/apache/servicemix/soap/SoapHelper.java
(working copy)
@@ -286,13 +286,14 @@
// Find WSDL description
Definition definition = null;
- if (se == null) {
- // Get this endpoint definition
- definition = endpoint.getDefinition();
- } else {
+ if (se != null) {
// Find endpoint description from the component context
definition = getDefinition(se);
}
+ if (definition == null) {
+ // Get this endpoint definition
+ definition = endpoint.getDefinition();
+ }
// Find operation matching
if (definition != null) {
@@ -357,6 +358,7 @@
reader.setFeature(Constants.FEATURE_VERBOSE, false);
try {
definition = reader.readWSDL(null, description);
+ definitions.put(key, definition);
} catch (WSDLException e) {
logger.info("Could not read wsdl from endpoint
descriptor: " + e.getMessage());
if (logger.isDebugEnabled()) {
@@ -364,10 +366,6 @@
}
}
}
- if (definition == null) {
- definition = factory.newDefinition();
- }
- definitions.put(key, definition);
}
}
return definition;
