2016-10-21 4 views
0

ログをとる方法があるか、インターセプタを投げたか、呼び出されたメソッドの入力値がわかっていますか?ejbへの入力値を取得する3.1インターセプタをスローする

私の実際のインターセプタはBeanが

@Interceptors({Interceptor.class}) 

@Stateless パブリッククラスMrBeanがMrBeanRemoteを実装している

public class Interceptor { 
@AroundInvoke 
public Object interceptor(InvocationContext invocationcontext) throws Exception{ 
    //Stampa prima del metodo 
    long startTime = System.currentTimeMillis(); 
    log.debug("Invoked method: "+invocationcontext.getMethod().getName()); 
    //here I would like to log also parameters. 
    try{ 
     return invocationcontext.proceed(); 
    } finally{ 
     log.debug("End of method: " + invocationcontext.getMethod().getName()); 
     log.debug(" duration: " + (System.currentTimeMillis() - startTime)); 
    } 
} 
} 

で、MrBeanLocal {

/** 
* Default constructor. 
*/ 
public MrBean() {  
} 

public void print(String in){ 
    System.out.println("Print: " + in); 
} 
} 

だから私は、printメソッドを呼び出す場合in = "print"とすると、インターセプタは "print t帽子"。出来ますか?事前に おかげであなたはInvocationContextに()メソッドをgetParametersを使用することができますので、あなたのメソッドのパラメータを記録したい

答えて

0

:。私は()log.debug(invocationcontext.getParametersを試してみました http://docs.oracle.com/javaee/6/api/javax/interceptor/InvocationContext.html#getParameters()

+0

のtoString( )); [Ljava.lang.Object; @ f72802c4 – Gio

+0

申し訳ありませんが、私は上記のコメントを編集することができません...私はそのログを試みたが、[Ljava.lang.Object; @ f72802c4と – Gio

+0

@Gio: 'invocationcontext.getParameters()'はObjectの配列を返します。この配列を反復処理する必要があります。 – shibli049

関連する問題