Hi Scott,
About what you said: "It crossed my mind that maybe your interface is
passing java.lang.Exception as an input parameter because you weren't aware
of how to "throw" it across <binding.ws> .... "
In fact, I am using a java.lang.Exception as an input parameter in a
callback interface, in order to simulate the behavior given by the
invocation of an asynchronous method that can throw an exception. I would
like to have something like this:
*...@remotable
public interface MyServiceInterface {
@OneWay
public void aServiceMethod1() throws Exception;
@OneWay
public void aServiceMethod2() throws Exception;
}*
With an interface service like that, I could invoke asynchronously the
methods, and the exceptions would be raised at the proper time. So, the
client would not be waiting for the end of the execution of a method, to
invoke another one.
I am not right if it is the best solution, but I have tried to simulate this
behavior using a callback interface that takes a Exception as an input
parameter. In this way, the client could invoke the methods concurrently,
and when an exception occurs at the service implementation, it is passed to
the client through the callback interface.
However, it does not work remotely because the problem I mentioned before.
On Wed, Feb 4, 2009 at 2:31 PM, Scott Kurz <[email protected]> wrote:
> Douglas,
>
> Since our <binding.ws> impl uses JAXB by default to map from the XML
> wireformat to the application Java, the JAXB runtime needs to be able to
> deserialize into your input/output types. If the types don't contain JAXB
> annotations, they need to follow the pattern that JAXB expects, i.e. they
> must contain the no-arg default constructor.
>
> Also I'll mention that we follow the JAX-WS spec in order to map between a
> Java exception and the platform-neutral fault data it carries. (See
> "Business Exceptions/Faults" at
> http://cwiki.apache.org/confluence/display/TUSCANYWIKI/Databinding+Scope
> for more info.
>
> It crossed my mind that maybe your interface is passing java.lang.Exception
> as an input parameter because you weren't aware of how to "throw" it across
> <binding.ws> .... or maybe you have a good reason for doing so and it was
> just a useful example.
>
> Scott
>
>
>
>
> On Wed, Feb 4, 2009 at 9:58 AM, Douglas Leite <[email protected]>wrote:
>
>> When I try to use the binding.ws over an interface that has an operation
>> that takes a complex type with no-arg default constructor, in some part of
>> the hierarchy, as argument, I get an error.
>>
>> More specifically I have something like this:
>> *
>> @Remotable
>> public interface MyService {
>>
>> @OneWay
>> public void throwsAnException(Exception ex);
>> }*
>>
>> At the SCDL file:
>>
>> *<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
>> targetNamespace="http://myservice"
>> name="myservice">
>>
>> **<component name="MyServiceComponent">
>> *
>> *
>> **<implementation.java class="service.MyServiceImpl"/>
>> *
>> *
>> ** <service name="MyService">
>> *
>> * <interface.java
>> interface="service.MyService"/>
>> *
>> * <binding.ws uri="
>> http://localhost:8086/MyServiceComponent" />
>> *
>> * </service>
>> *
>> *</component>
>> *
>> *</composite>*
>>
>> I got the following error:
>>
>> SEVERE: Exception thrown was: org.osoa.sca.ServiceRuntimeException:
>> com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of
>> IllegalAnnotationExceptions
>> java.lang.StackTraceElement does not have a no-arg default constructor.
>> this problem is related to the following location:
>> at java.lang.StackTraceElement
>> at public java.lang.StackTraceElement[]
>> java.lang.Throwable.getStackTrace()
>> at java.lang.Throwable
>> at java.lang.Exception
>>
>> Although the Exception an Throwable classes have no-arg default
>> constructors, the StackTraceElement doesn't have.
>> What can I do to avoid this problem?
>>
>> Thanks in advance,
>>
>> --
>> Douglas Siqueira Leite
>> Computer Science Master's degree student of University of Campinas
>> (Unicamp), Brazil
>>
>>
>
--
Douglas Siqueira Leite
Computer Science Master's degree student of University of Campinas
(Unicamp), Brazil