Hi,
I am testing a suite of java web services(axis) with rspec1.1 and
jruby1.1-RC1.
I will describe below my problem giving a short generic example :
- MyCustomObject - is a custom java object
- MyService - it’s a java web service
- myServiceMethod(MyJavaObject obj) it’s the method that service
expose.
On ruby side I am using a driver = SOAP::RPC::Driver configured
accordingly which
has defined myServiceMethod (driver.add_method(“myServiceMethod”,
“customObj”))
In my spec file I am doing the following call :
require ‘java’
include_class ‘example.MyCustomObject’
…
custObj = MyCustomObject.new
cutomObj.someProp = ‘Test’
#first call
driver.myServiceMethod(custObj) #Exception : SOAP::FAULT Error -
Invalid element in example.MyCustomObject - java_object
another call
driver.myServiceMethod(custObj.java_object) or
driver.myServiceMethod(Java.ruby_to_java(custObj)) - no exception on
server side I have a valid instance but no props set.
another call
myCustomObject = anotherService.get #returns a SOAP::Mapping::Object
driver.myServiceMethod(myCustomObject) # Exception : Bad types (class
java.lang.Object -> class example.MyCustomObject Jruby sends an Object
instead of MyCustomObject.
There is a way of calling a method with custom parameter types in order
to avoid above issues or somehow map the custom java types ?
Thanks in advance