Hi, Alexander
It works now!
FYI:

Ah, it works!
but it seems a little bit confused to me for the aspectj schema.Isn't it a 
little redundant to duplicate the HelloAspect in both the aspect and weaver 
section.
At first sight, I just guess that classes in <aspects> section will participate 
in weaving for sure.
Anyway, Thanks a lot!!
Leon

Date: Thu, 5 Jun 2014 07:25:27 -0700From: andrew.clement@gmail.comTo: 
aspectj-users@eclipse.orgSubject: Re: [aspectj-users] NoSuchMethodError for a 
simple hello world aspect in scalaYour aop.xml file doesn't include your aspect 
for weaving, I think if you add it, that will do it. Try this aop.xml:
<aspectj>       <aspects>               <aspect 
name="com.leon.aop.HelloAspect"/>       </aspects>              <weaver 
options="-XnoInline">           <include within="com.leon.aop.HelloWorld"/>     
           <include within="com.leon.aop.HelloAspect"/> </weaver>        
</aspectj>
Certainly the error indicates the weaver didn't 'finish off' the aspect by 
adding the aspectOf() method.
Andy

From: alexan...@kriegisch.name
Date: Thu, 5 Jun 2014 16:34:32 +0200
To: aspectj-users@eclipse.org
Subject: Re: [aspectj-users] NoSuchMethodError for a simple hello world aspect 
in scala

I do not speak Scala, but I guess the methkd's return value will be its last 
statement's value. For void methods this might not make much difference (no 
idea), but generally I suggest you explicitly return the result of 'proceed()' 
(or whatever you want to return instead) if 'proceed()' is not the method's 
last statement.
-- Alexander Kriegischhttp://scrum-master.de

Am 05.06.2014 um 16:01 schrieb 马leon <tutuf...@hotmail.com>:




Hi, 
I'm trying to do some hello world test in scala, here're code:

class HelloWorld {  def sayHello() : Unit = println("Hello word")}

@Aspectclass HelloAspect {
   @Around(value = "execution (* com.leon.aop.HelloWorld.sayHello())")   def 
testCP(jp: ProceedingJoinPoint) {
     println("Start...")     jp.proceed()     println("End...")
   }
 }

myaop.xml:

<aspectj>       <aspects>               <aspect 
name="com.leon.aop.HelloAspect"/>       </aspects>              <weaver 
options="-XnoInline">           <include within="com.leon.aop.HelloWorld"/>     
</weaver>        </aspectj>

launcher VM settings:
-javaagent:C:\Users\lma\.ivy2\cache\org.aspectj\aspectjweaver\jars\aspectjweaver-1.7.4.jar
 -Dorg.aspectj.weaver.loadtime.configuration=META-INF/myaop.xml


Testing class:
class HelloAspectTest extends FlatSpecLike with Matchers {
   "HelloAspect" should "work" in {     val t = new HelloWorld     t.sayHello() 
  } }


Yet I got below exception:
An exception or error caused a run to abort: 
com.leon.aop.HelloAspect.aspectOf()Lcom/leon/aop/HelloAspect; 
java.lang.NoSuchMethodError: 
com.leon.aop.HelloAspect.aspectOf()Lcom/leon/aop/HelloAspect;   at 
com.leon.aop.HelloWorld.sayHello(HelloWorld.scala:7) at 
com.leon.aop.HelloAspectTest$$anonfun$1.apply$mcV$sp(HelloAspectTest.scala:15)  
     at com.leon.aop.HelloAspectTest$$anonfun$1.apply(HelloAspectTest.scala:13) 
     at com.leon.aop.HelloAspectTest$$anonfun$1.apply(HelloAspectTest.scala:13)

Anyone could help me on this?

Thank
Leon

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

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

Reply via email to