Hi,
    I'm currently using Java Reflection to load my service locator, getting 
ports and invoke operations. Everything works fine for me apart from catching 
exceptions. As I'm currently aware, whatever AxisFault thrown by the web 
service call is wrapped under my InvocationTargetException which is available 
to me via the getCause() or getTargetException() method.

    However, I cannot seem to cast the AxisFault into my specific exceptions. 
Given my port type operation signature is like this

    public void myop(pars... ) throws ... MyPackage.StringMessage;

    My (reflection) Java code are as follows

    try {
        Method methodOp;
        Class serviceLocatorClass = Class.forName("...");
        Object serviceLocator = serviceLocatorClass.newInstance();
        Method getPortMethod = serviceLocatorClass.getMethod("....");
        Object port = getPortMethod.invoke(serviceLocator, null);
        Method webServiceOp = port.getClass().getMethod("myop", parClasses);
        Object result = webServiceOp.invoke(port, pars);
    } catch (InvocationTargetException ex) {
        if (ex.getTargetException() instanceof AxisFault) {
            Class stringMessage = // .... do loading of StringMessage via 
forName

            ex.getTargetException().getClass().getName();        // returns 
"AxisFault" which is not what i want as i'm expecting StringMessage
            stringMessage.cast(ex.getTargetException());            // 
encountered ClassCastException
        }
    } ....

    When my webs service throws StringMessage exception (I'm certain this is 
the thrown), I cannot seem to cast it successfully. I found out that 
ex.getTargetException().getClass().getName() returns me AxisFault instead of 
StringMessage.

    I then try the static way, which
    try {
        port.myOp(...);
    } catch (AxisFault ex) {
        .... ex.getTargetException().getClass().getName();        // returns 
StringMessage!
    }


    Would appreciate advice on this! Many thanks in advance!

Best Regards,
Larry
-- 
The University of Stirling (a charity registered in Scotland, number
SC 011159) is a university established in Scotland by charter at Stirling,
FK9 4LA.  Privileged/Confidential Information may be contained in this
message.  If you are not the addressee indicated in this message (or
responsible for delivery of the message to such person), you may not
disclose, copy or deliver this message to anyone and any action taken or
omitted to be taken in reliance on it, is prohibited and may be unlawful.
In such case, you should destroy this message and kindly notify the sender
by reply email.  Please advise immediately if you or your employer do not
consent to Internet email for messages of this kind.


Reply via email to