[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [aspectj-users] Aspect runs on laptop but not on server
- From: "Grey, Lee" <Lee.Grey@xxxxxxx>
- Date: Thu, 7 Apr 2011 10:35:52 -0400
- Accept-language: en-US
- Acceptlanguage: en-US
- Delivered-to: firstname.lastname@example.org
- Importance: high
- Thread-index: Acv0kQQQWJiWsJhGRQmkK/XSdXU+0AAHex2wACBfZyA=
- Thread-topic: Aspect runs on laptop but not on server
Well, all is not resolved. In the process of fixing
the sandbox, I broke the development environment.
The way things are going now, it seems that the service()
method's around advice is being invoked more than once per message, which
means that the message gets consumed on the first pass and is therefore null on
the second pass through the advice.
There is obviously some complexity to the path through the
Sonic ESB container. What tools do I have at my disposal to actually see
all the calls and pick the spot where I want to advise the method call?
I'm flying blind, and I have no idea how to fix this now.
To make things even more interesting, tomorrow is my last
day at this job, and I don't want to leave this problem for them. I really
need to get this worked out this week.
I'll answer my own question for the benefit of
The problem was that the container in the sandbox had
different services deployed into it than the container on my laptop. In
particular, the services in the sandbox were a subset of the services in
the laptop container. And, therefore, the pointcuts were just a little bit
different, in a way that matched on the laptop but not in the
By making the pointcuts a bit more inclusive, they started
matching in the sandbox.
Thanks for wringing your hands with me,
I've built an aspect
to wrap around Sonic ESB's XQService.service() method, and it's been working
perfectly on my laptop (Windows XP, JRE 1.5.0_22, Sonic
Now, I'm trying to
deploy the same exact jars in the same exact way to our sandbox pre-production
environment (Red Hat 4.1.2-48, JDK 1.5.0_22, Sonic MQ and ESB installation), but
things aren't working.
What seems to be
happening is that on my laptop, the aspect weaving takes place and the aspect is
instantiated at the time the container starts up. In the sandbox, however,
I see the same message regarding weaving, so I am pretty confident that the
-javaagent parameter did its thing, but my pointcuts don't seem to match
anything, either at initialization or during normal runtime. I am printing
out a message in my advice when SonicMQ messages are processed, and
it appears on my laptop but not on the server. I see no signs of my
advice ever executing on the server.
This is the message
I see in both environments during container startup, so I believe that means the
[DelegatingLoader@10d0eae] warning javax.* types are not being woven
weaver option '-Xset:weaveJavaxPackages=true' has not been
I don't know what
might account for this kind of problem. I am open to any suggestions for
getting to the bottom of this.