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 again,
I forgot to mention that the service also worjçks with this same aspect weaved at compile-time.
Suggestions welcomed ...
Thanks

2009/5/13 Guadalupe Ortiz <gobellot@xxxxxxxxx>
Hi Simone and Andy,
InfoBook is the Interface implemented by the service, which offers one operation (giveMeInformationOF(String)) which returns ItemBook_0Mini (ItemBook_0Mini is a bean, which simply contains several Strings).
The service works with this type without the aspect, so there shouldn´t be any problem with its serialization; it is when the around advice is included when it does not work any more.
What could it be?
Thanks a lot,
Guadalupe

2009/5/13 Simone Gianni <simoneg@xxxxxxxxxx>

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>
------------------------------------------------------------------------

_______________________________________________
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/

_______________________________________________
aspectj-users mailing list
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



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

gobellot@xxxxxxx
http://personales.ya.com/gobellot/

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

Back to the top