Actually, it would print

Hi Toy My Surname
Hi Toy

If you run this code as a normal Java application (replacing the InitialContext stuff with "new MyBean()", for example), it works fine.

First, did you compile the code with ajc? If not, are you using load- time weaving with your EJB container?

I haven't used EJBs in a long time, so I'm not sure how this code is really implemented and managed by the container. However, I suspect that you aren't getting an object of type MyBean, but some proxied object or even a subclass (like they used to do in EJB v2).

Try adding a plus sign, "+" in your pointcut definition:

pointcut insertSurname() : execution(public String MyBean +.sayHello(..));

This tells AspectJ to match on subclasses too. That might work. If not, perhaps someone else on the list will have the answer.

Good luck,

Dean

On Jun 3, 2008, at 4:53 AM, Noppanit Charassinvichai wrote:


Dear, All

I was trying to use AspectJ with EJB. My program is very simple, but I have a little problem.

This is my Bean which is very simple

@Stateless(mappedName="HelloWorld")
public class MyBean implements MyBeanFacade
{
      @Override
      public String sayHello(String name) {
            return "Hi "+name;
      }

}

And this is my aspect
public aspect TestAOP {

pointcut insertSurname() : execution(public String MyBean.sayHello(..));

      after() returning(String name) : insertSurname()
      {
            System.out.println(name +" My Surname");
      }
}



And this is my client tester

      public static void main(String[] args) throws Exception {
            // TODO Auto-generated method stub
            InitialContext context = new InitialContext();
MyBeanFacade bean = (MyBeanFacade)context.lookup("HelloWorld");
            System.out.println(bean.sayHello("Toy"));
      }

And I packed these classes together and deployed to Glassfish, but when I invoked the bean. It did show “My Surname”. It just showed “Hi Toy” on my Console. I think it suppose to show “Hi Toy My Surname”. Something like this. Please help me!!!
Kindly Regards,
Noppanit Charassinvichai
=====================================
Application Development & Technology
G-ABLE COMPANY LIMITED
127/27,29-31 Panjathani Tower, Nonsee Rd,
Chongnonsee,Yanawa, Bangkok 10120 Thailand.
Mobile: 081-962-1412
Website: www.g-able.com
E-Mail: [EMAIL PROTECTED]
====================================




_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Dean Wampler, Ph.D.
dean at objectmentor.com
http://www.objectmentor.com
See also:
http://www.aspectprogramming.com  AOP advocacy site
http://aquarium.rubyforge.org     AOP for Ruby
http://www.contract4j.org         Design by Contract for Java5




_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to