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

There are no known issues with complex types and around advice.  There
have been issues recently with woven code sometimes being incorrect
for around advice but they are all fixed and anyway they always
manifest as a verify error when the code is checked by the VM.  The
return type of your method:

InfoBook.giveMeInformationOF(String)
is
ItemBook_0Mini

is it? or is it something else? an interface?  The thing you return
meets all the requirements of the original return value does it.  Does
it need to be serializable (as I see SOAP is in the trace)?

Andy

2009/5/13 Guadalupe Ortiz <gobellot@xxxxxxxxx>:
> Hi all,
> Anybody had did problem with complex types? Any clue or sugestion?
> Thanks a lot,
> Guadalupe
>
> 2009/5/8 Guadalupe Ortiz <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
>>
>> faultSubcode:
>>
>> faultString:
>>
>> java.lang.reflect.InvocationTargetException
>>
>> faultActor:
>>
>> faultNode:
>>
>> faultDetail:
>>
>> {http://xml.apache.org/axis/}hostname: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>
>>>
>>> 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
>>>> 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
>> 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
> 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
>
>


Back to the top