Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] LTW returning complex types

Hi Guadalupe,
sorry, I missed your previous reply.

The aspect seems right, as long as the method InfoBook.giveMeInformationOF(String) is declared as :

ItemBook_0Mini InfoBook.giveMeInformationOF(String s) { .. }

What i see from the exception is :
- I don't manage to understand if the exception is complete, often the InvocationTargetException is itself wrapping another inner exception, which is the real cause of failure. - The method is called on a SoapStub, so I suppose InfoBook is an interface. Could it be that the Soap stub requires it to return a stub subinterface? Therefore the book you are returning from the aspect is not the correct type to return when the call is performed on the stub? This would explain also why with strings it works correctly : strings are not stubbed.


Simone


Guadalupe Ortiz wrote:
Hi all,
Anybody had did problem with complex types? Any clue or sugestion?
Thanks a lot,
Guadalupe

2009/5/8 Guadalupe Ortiz <gobellot@xxxxxxxxx <mailto:gobellot@xxxxxxxxx>>

    Hi Simone,
    I paste below the full error code. I have also pasted the aspect
    code and the class definition.
    Thanks a lot,
    Guadalupe
    ASPECT CODE:
    package mainpack;
    import clases.ItemBook_0Mini;
    import clases.ItemBook_1Base;
    import clases.ItemBook_2Complete;
    import clases.ItemBook_3Extended;
    import bibliohandler.MyHandlerClass;
    import bibliohandler.MyHandlerClass.tipos_dispositivos;

    public aspect CheckDeviceType {
     pointcut giveMeInformationOF_pointcut (String ISBN): execution(*
    InfoBook.giveMeInformationOF(String))&&args(ISBN);
ItemBook_0Mini around(String ISBN):
    giveMeInformationOF_pointcut(ISBN){
      ItemBook_0Mini book=new ItemBook_0Mini ();
      book.setTitle("Web Services: Principles and Technology");
      book.setISBN("321155556");
      book.setPrice("67.50 Euros");
      System.out.println("ASPECT");
return book; } CLASS ITEMBOOK_0MINI:
    *

    package

    * clases; *

    public

    * *class* ItemBook_0Mini { *private* String ISBN; *private* String
    price; *private* String title;

    [...]

    ERROR:

    xisFault

    faultCode: {

    _http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    <http://schemas.xmlsoap.org/soap/envelope/%7DServer.userException>_

    faultSubcode:

    faultString:

    _java.lang.reflect.InvocationTargetException_

    faultActor:

    faultNode:

    faultDetail:

    {http://xml.apache.org/axis/}hostname:TheMachine
    <http://xml.apache.org/axis/%7Dhostname:TheMachine>

    _

    java.lang.reflect.InvocationTargetException

    _

    at org.apache.axis.message.SOAPFaultBuilder.createFault(

    _SOAPFaultBuilder.java:222_)

    at org.apache.axis.message.SOAPFaultBuilder.endElement(

    _SOAPFaultBuilder.java:129_)

    at org.apache.axis.encoding.DeserializationContext.endElement(

    _DeserializationContext.java:1087_)

    at
    com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown
    Source)

    at
    com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
    Source)

    at
    com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown
    Source)

    at
    com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown
    Source)

    at
    com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown
    Source)

    at
    com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
    Source)

    at
    com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
    Source)

    at
    com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
    Source)

    at
    com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown
    Source)

    at
    com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown
    Source)

    at
    com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
    Source)

    at javax.xml.parsers.SAXParser.parse(Unknown Source)

    at org.apache.axis.encoding.DeserializationContext.parse(

    _DeserializationContext.java:227_)

    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(

    _SOAPPart.java:696_)

    at org.apache.axis.Message.getSOAPEnvelope(

    _Message.java:435_)

    at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(

    _MustUnderstandChecker.java:62_)

    at org.apache.axis.client.AxisClient.invoke(

    _AxisClient.java:206_)

    at org.apache.axis.client.Call.invokeEngine(

    _Call.java:2784_)

    at org.apache.axis.client.Call.invoke(

    _Call.java:2767_)

    at org.apache.axis.client.Call.invoke(

    _Call.java:2443_)

    at org.apache.axis.client.Call.invoke(

    _Call.java:2366_)

    at org.apache.axis.client.Call.invoke(

    _Call.java:1812_)

    at mainpack.InfoBookSoapBindingStub.giveMeInformationOF(

    _InfoBookSoapBindingStub.java:350_)

    at mainclient.HeaderClientWin$1.actionPerformed(

    _HeaderClientWin.java:49_)

    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

    at
    javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown
    Source)

    at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)

    at java.awt.Component.processMouseEvent(Unknown Source)

    at javax.swing.JComponent.processMouseEvent(Unknown Source)

    at java.awt.Component.processEvent(Unknown Source)

    at java.awt.Container.processEvent(Unknown Source)

    at java.awt.Component.dispatchEventImpl(Unknown Source)

    at java.awt.Container.dispatchEventImpl(Unknown Source)

    at java.awt.Component.dispatchEvent(Unknown Source)

    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

    at java.awt.Container.dispatchEventImpl(Unknown Source)

    at java.awt.Window.dispatchEventImpl(Unknown Source)

    at java.awt.Component.dispatchEvent(Unknown Source)

    at java.awt.EventQueue.dispatchEvent(Unknown Source)

    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

    at java.awt.EventDispatchThread.run(Unknown Source)



    2009/5/8 Simone Gianni <simoneg@xxxxxxxxxx
    <mailto:simoneg@xxxxxxxxxx>>

        Hi Guadalupe,
        can you post the entire exception stack trace? It could be
        that the return type of your around advice is not compatible
        with the return type of the adviced methods.

        Simone

        Guadalupe Ortiz wrote:

            Hi all,
            I have tested LTW with a Web service and worked perfectly
            well when the operation intercepted in the joinpoint
            returned a basic type (such as a String).
             However when the operation returns a complex type defined
            by the user and I include an around advice in the aspect,
            I get an error.
            The error is
            "java.lang.reflect.InvocationTargetException". (When doing
            it with compile time weaving it works)
             I have tried to include the classes in the classpath when
            creating the jar and I have also created the jar also
            compiling the classes. In any case I get the same error. I
            guess it shouldnt be dificult to do this and I am probably
            missing a silly step.
             Thanks a lot for your help,
             Guadalupe
            ------------------------------------------------------------------------

            _______________________________________________
            aspectj-users mailing list
            aspectj-users@xxxxxxxxxxx <mailto:aspectj-users@xxxxxxxxxxx>
            https://dev.eclipse.org/mailman/listinfo/aspectj-users


-- Simone Gianni CEO Semeru s.r.l. Apache
        Committer
        http://www.simonegianni.it/

        _______________________________________________
        aspectj-users mailing list
        aspectj-users@xxxxxxxxxxx <mailto:aspectj-users@xxxxxxxxxxx>
        https://dev.eclipse.org/mailman/listinfo/aspectj-users




-- Dr. Guadalupe Ortiz Bellot
    Assistant Professor
    Computer Science Department
    University of Extremadura

    gobellot@xxxxxxx <mailto:gobellot@xxxxxxx>
    http://personales.ya.com/gobellot/

    Quercus Software Engineering Group
    http://quercusseg.unex.es




--
Dr. Guadalupe Ortiz Bellot
Assistant Professor
Computer Science Department
University of Extremadura

gobellot@xxxxxxx <mailto:gobellot@xxxxxxx>
http://personales.ya.com/gobellot/

Quercus Software Engineering Group
http://quercusseg.unex.es
------------------------------------------------------------------------

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users


--
Simone Gianni            CEO Semeru s.r.l.           Apache Committer
http://www.simonegianni.it/



Back to the top