[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[aspectj-users] DI Constructor issue
|
Hi,
Ive just started using aop for some simple logging in a new project. Ive
read through quite a few threads and various sites but cant seem to quite
understand why Im getting the problem.
I am using Spring 2.5.5 to inject various classes for a JMS project and also
using the schema based spring-aop namespace due to being restricted to
1.4jvm. I am also using aspectJ 1.5.4.
The problem is that although logging seems to work fine for any classes that
use a default constructor, classes that have constructors with args; 1. dont
get logging and 2. throw an error within the DI that seems to be a
nullpointer issue, Im only guessing at this as no info is given.
What I also dont understand is that I am using the method pointcut pattern
so why is this causing a problem with the constructor?
Heres my code, Hope Im not just being dumb (though most likely!)
<bean id="sonicConfig"
class="com.homeserve.guidewire.plugins.messaging.edi.outbound.transport.SonicConfig">
<constructor-arg
value="SonicBroker=tcp://hgbsmdev02.hgb.hs.int:2531;SonicUsername=Administrator;SonicPassword=Administrator"
/>
</bean>
<bean id="aopLogging"
class="com.homeserve.guidewire.plugins.messaging.edi.logging.LoggingInterceptor">
</bean>
<aop:config proxy-target-class="false">
<aop:aspect id="aopLoggingAspect" ref="aopLogging">
<aop:pointcut id="loggingPointCut"
expression="execution( *
com.homeserve.guidewire.plugins.messaging.edi.outbound..*.*(..))" />
<aop:around method="aopLogging" pointcut-ref="loggingPointCut" />
</aop:aspect>
</aop:config>
public SonicConfig(String sonicConnectionString) throws ParseException
{
this.sonicConnectionString = sonicConnectionString;
parseSonicConnectionString();
}
public class LoggingInterceptor {
public Object aopLogging(ProceedingJoinPoint pjp) throws Throwable{
Logger log = Logger.getLogger(LoggingInterceptor.class);
Object retValue = null;
Object[] args = pjp.getArgs();
try {
StringBuffer entering = new StringBuffer();
StringBuffer leaving = new StringBuffer();
Signature sig = pjp.getSignature();
String clazz = pjp.getSignature().getDeclaringType().getName();
entering.append(clazz.substring(clazz.lastIndexOf(".")+1,
clazz.length()));
entering.append(".");
entering.append(sig.getName());
entering.append("(");
leaving.append(entering.toString());
for (int i = 0; i < args.length; i++) {
if (i > 0) {
entering.append(", ");
}
entering.append(args[i]);
}
entering.append(")]");
SourceLocation sl = pjp.getSourceLocation();
log.info("Entering [" + entering);
retValue = pjp.proceed();
leaving.append(")");
log.info("Leaving [" + leaving + " Return value: " + retValue);
}
catch (Exception e)
{
log.error(e);
}
return retValue;
}
}
Thanks
Yetti
--
View this message in context: http://aspectj.2085585.n4.nabble.com/DI-Constructor-issue-tp2241500p2241500.html
Sent from the AspectJ - users mailing list archive at Nabble.com.