On Monday 10 January 2011 4:28:53 pm [email protected] wrote:
> Is there an information I should add to my question?
I thought Freeman already answered this....
Basically, don't set it in the return. Just rethow the exception. If it's
not a runtime exception, do "throw new Fault(ex)" to throw our fault. That's
pretty much it.
You can/should also do:
exchange.getInMessage().put(FaultMode.class,
FaultMode.CHECKED_APPLICATION_FAULT);
or:
exchange.getInMessage().put(FaultMode.class,
FaultMode.UNCHECKED_APPLICATION_FAULT);
if you know if the exception/fault is a checked or unchecked exception. That
allows the logging and such to be a bit smarter, but it is optional.
Dan
>
> Am 06.01.2011 17:57, schrieb [email protected]:
> > I am currently implementing my own Invoker, which calls a
> > serviceImplementation. The services wsdl defines a fault:
> >
> > <wsdl:fault name="MyException">
> > <soap:fault name="MyException" use="literal"/>
> > </wsdl:fault>
> >
> > When this exception is thrown by the serviceImplementation and I set it
> > as the return value of the invoker:
> >
> > public Object invoke(Exchange ex, Object o) {
> > [...]
> > MessageContentsList messageContentsList = (MessageContentsList) o;
> > messageContentsList.add(returnValue);
> > return messageContentsList;
> > }
> >
> > I get: java.lang.IllegalArgumentException: argument type mismatch.
> >
> > So my question is: How can I make the invoker pass the "myException" to
> > the webservice caller without getting an illegal argument exception?
> >
> > Thx in advance :)
--
Daniel Kulp
[email protected]
http://dankulp.com/blog