如何在客户端将数据传递给 EJBContext?
How to pass data to EJBContext on client side?
我在服务器上有以下拦截器:
@Resource
EJBContext ejbContext;
@AroundInvoke
public Object onInvocation( InvocationContext aInvocationContext ) throws Exception
{
final Object myValue = ejbContext.getContextData().get("MyKey");
...
Object proceed = aInvocationContext.proceed();
...
return proceed;
}
如何在客户端向 EJBContext 传递数据(“MyKey”)?
我试图查找它,但在查找期间出现 javax.naming.InvalidNameException' 异常或 EJBCLIENT000409:当我调用 getContextData( ).我尝试了几种方法我不知道如果我做错了什么或者 EJBContext 是一些特殊的资源并且不可能在客户端上修改它。
查找名称应该是什么样子?我试过 java:comp/EJBContext, appName/moduleName/EJBContext.
我创建了客户端拦截器。
EJBClientContext.requireCurrent().registerInterceptor( 0, new MyClientInterceptor() );
在 registerInterceptor 方法 javadoc:
中有重要说明
Note: If an interceptor is added or removed after a proxy is used,
this will not affect the proxy interceptor list.
我的客户端拦截器:
import org.jboss.ejb.client.EJBClientInterceptor;
import org.jboss.ejb.client.EJBClientInvocationContext;
public class MyClientInterceptor implements EJBClientInterceptor
{
@Override
public void handleInvocation( EJBClientInvocationContext aContext ) throws Exception
{
Object myValue =...
aContext.getContextData().put( "MyKey", myValue );
aContext.sendRequest();
}
@Override
public Object handleInvocationResult( EJBClientInvocationContext aContext ) throws Exception
{
return aContext.getResult();
}
}
我在服务器上有以下拦截器:
@Resource
EJBContext ejbContext;
@AroundInvoke
public Object onInvocation( InvocationContext aInvocationContext ) throws Exception
{
final Object myValue = ejbContext.getContextData().get("MyKey");
...
Object proceed = aInvocationContext.proceed();
...
return proceed;
}
如何在客户端向 EJBContext 传递数据(“MyKey”)? 我试图查找它,但在查找期间出现 javax.naming.InvalidNameException' 异常或 EJBCLIENT000409:当我调用 getContextData( ).我尝试了几种方法我不知道如果我做错了什么或者 EJBContext 是一些特殊的资源并且不可能在客户端上修改它。
查找名称应该是什么样子?我试过 java:comp/EJBContext, appName/moduleName/EJBContext.
我创建了客户端拦截器。
EJBClientContext.requireCurrent().registerInterceptor( 0, new MyClientInterceptor() );
在 registerInterceptor 方法 javadoc:
中有重要说明Note: If an interceptor is added or removed after a proxy is used, this will not affect the proxy interceptor list.
我的客户端拦截器:
import org.jboss.ejb.client.EJBClientInterceptor;
import org.jboss.ejb.client.EJBClientInvocationContext;
public class MyClientInterceptor implements EJBClientInterceptor
{
@Override
public void handleInvocation( EJBClientInvocationContext aContext ) throws Exception
{
Object myValue =...
aContext.getContextData().put( "MyKey", myValue );
aContext.sendRequest();
}
@Override
public Object handleInvocationResult( EJBClientInvocationContext aContext ) throws Exception
{
return aContext.getResult();
}
}