Googling the error message this seems that what your Java server decodes is some kind of object while you should send something that it decodes to a plain string.
Maybe you can fix that by making your data types explicit with SOAP::Lite. Maybe the following is enough?
SOAP::Data->name('oel:ProcessOrderAsyncRequest') => (
SOAP::Data->name('oel:ExternalId')->type('int', '1234'),
SOAP::Data->name('oel:IncomingOrderSource')->type('string', 'S
+elfcare'),
SOAP::Data->name('oel:IncomingOrderDescription')->type('string
+', 'abcd'),
SOAP::Data->name('oel:RequiredNotification')->type('string', '
+false'),
SOAP::Data->name('oel:IncomingOrder' => $order)
)
|