Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] What a class is not found?

Hello All!

I'm newbie in AspectJ and my first expirience was not successfull. Please 
help me to understand where i was mistaken.

I tried to compile my classes with a light modified aspect Debug from
examples. I simple
replace package chain to my one (com.caeconsult.integrate.iui.ui.*).

Here it is:
-----------------------------------
package tracing.test;

import javax.swing.*;
import java.awt.TextArea;
import java.awt.Dimension;

aspect Debug
{
    private static InfoWin infoWin = new InfoWin();

    /*
     * all methods
     */
    pointcut allMethodsCut():
        execution(* (com.caeconsult.integrate.iui.ui.* && !(Debug+ ||
InfoWin+)).*(..));

    before(): allMethodsCut()
    {
        infoWin.println("entering " + thisJoinPoint.getSignature());
    }
    after(): allMethodsCut()
    {
        infoWin.println("exiting " + thisJoinPoint.getSignature());
    }
}

class InfoWin {
    private JFrame    frame;
    private JTextArea info;

    InfoWin() {
        frame = new JFrame("debugging info for spacewar game");
        info = new JTextArea();
        info.setEditable(false);

        Dimension screenSize = frame.getToolkit().getScreenSize();
        frame.setSize(250, 600);
        frame.setLocation(screenSize.width - 250, 0);
        frame.add(info);
        frame.show();
        frame.toFront();
    }

    void clear() {
        info.setText("");
    }

    void println(String line) {
        info.append(line + "\n");
    }

    void print(String line) {
        info.append(line);
    }
}
-----------------------------------

I was successfull to compile all the code with the next ant script:
-----------------------------------
 ....
 <target name="compile_with_aspects">
    <iajc destdir="${buildPath}" verbose="true" sourceRoots=".">
      <!-- declare classes needed to compile the target files -->
      <classpath>
        <pathelement location="d:/aspectJ_1.1b4/lib/aspectjrt.jar"/>
        <pathelement location="d:/aspectJ_1.1b4/lib/aspectjtools.jar"/>
        <pathelement
location="D:\Sandbox\CAE\Integrate\java_cae_common\classes\com-lib.jar"/>
        <pathelement
location="D:\Sandbox\CAE\Integrate\IUI\classes\oromatcher.jar"/>
        <pathelement
location="D:\Sandbox\CAE\Integrate\IUI\classes\xercesImpl.jar"/>
        <pathelement
location="D:\Sandbox\CAE\Integrate\IUI\classes\xmlParserAPIs.jar"/>
        <pathelement location="C:\idea807\lib\junit.jar"/>
      </classpath>
    </iajc>
  </target>
  ....
------------------------------------

But when I tried to execute new code (tatally new, I deleted all old classes
before compilation) 
I got en error:

Exception in thread "main" java.lang.NoClassDefFoundError
        at
com.caeconsult.integrate.iui.ui.fmMain.getInstance(fmMain.java:140)
        at com.caeconsult.integrate.iui.iuiMain.<init>(iuiMain.java:61)
        at com.caeconsult.integrate.iui.iuiMain.main(iuiMain.java:166)

It looks strange imho because it is not full message about exception.
But the rest of message is not shown, it just hangs.
And... this error is absent if I recompile all code without aspect.

Any ideas?

I use aspectJ 1.1 beta4, may be problem here?

Thanx

Pavel




Back to the top