Reference to SOAP service is not properly bound
-----------------------------------------------
Key: SWITCHYARD-298
URL:
https://issues.jboss.org/browse/SWITCHYARD-298
Project: SwitchYard
Issue Type: Bug
Components: component-soap
Affects Versions: 0.1
Environment: JBoss AS 7
Reporter: Jiri Pechanec
Priority: Critical
See attached example.
It contains multiple services - one is defined serve as a web service provider
(ErrorService), another ProxyService as a web service consumer. The ProxyService uses a
Reference to SOAP endpoint. Unfortunately when I try to invoke it I get an exception
07:43:40,652 INFO [org.switchyard.component.soap.InboundHandler] (MSC service thread
1-13) WebService published at
http://10.34.3.135:9091/ErrorServiceService
07:43:47,513 INFO [stdout] (Thread-27) Going through proxy
07:43:47,516 ERROR [stderr] (Thread-27) java.lang.reflect.UndeclaredThrowableException
07:43:47,517 ERROR [stderr] (Thread-27) at $Proxy25.echoTwoWay(Unknown Source)
.
.
.
07:43:47,533 ERROR [stderr] (Thread-27) Caused by:
org.switchyard.component.bean.BeanComponentException: Bean Component invocation failure.
Operation 'echoTwoWay' is not defined on Service 'RemoteService'.
07:43:47,533 ERROR [stderr] (Thread-27) at
org.switchyard.component.bean.ClientProxyBean$ClientProxyInvocationHandler.createExchange(ClientProxyBean.java:337)
07:43:47,533 ERROR [stderr] (Thread-27) at
org.switchyard.component.bean.ClientProxyBean$ClientProxyInvocationHandler.invoke(ClientProxyBean.java:290)
07:43:47,533 ERROR [stderr] (Thread-27) ... 53 more
With debugger I identified that the Reference is registered as a base service, not WSDL
service
Thread-27[1] dump service.getInterface()
service.getInterface() = {
org.switchyard.metadata.BaseService._type: "esb"
org.switchyard.metadata.BaseService._operations: instance of
java.util.HashSet(id=6565)
}
Thread-27[1] dump service.getInterface().getOperations()
service.getInterface().getOperations() = {
serialVersionUID: -5024744406713321676
map: instance of java.util.HashMap(id=6567)
PRESENT: instance of java.lang.Object(id=6568)
}
Thread-27[1] print service.getInterface().getOperations()
service.getInterface().getOperations() = "[process{IN_OUT}]"
It seems that org/switchyard/extensions/wsdl/WSDLService requires WSDL port name to be set
in the URI but I have not found any case in the code when the port is set If it is
expected that this is set in wsdl element of binding then it will break reading of
file-based wsdl.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira