gpt4 book ai didi

java - 从 EJB 拦截器中抛出异常

转载 作者:搜寻专家 更新时间:2023-10-31 20:23:45 26 4
gpt4 key购买 nike

假设我有一个看起来像这样的拦截器:

public class AuthorizationInterceptor {

Logger log = Logger.getLogger(getClass().getName());

@AroundInvoke
private Object authorize(InvocationContext ic) throws Exception{
// ... some other logic for authorization

if (!allowedMethods.contains(ic.getMethod().getName())){
log.info("Authorization failed. Preparing to throw exception");
throw new AuthException("Authorization failed for method " +
ic.getMethod().getName());
}

return ic.proceed();
}
}

应用于与我的 EJB 不同的方法。

我通常希望异常被传递给调用客户端,就像所有正常的 EJB 异常一样。

显然,如果我从拦截器中抛出它,这不会发生……它甚至没有登录到服务器;就像它从来没有被抛出过一样——return 语句永远不会被执行。

我做错了什么?

我正在使用 GF 3.0.1

最佳答案

对这个问题进行了一番搜索后,我找到了 this SO post这是几分钟前回答的。引用:

I don't think there is a correct way to do that. Methods should throw only the exceptions they declared, and an interceptor shouldn't add a new one. My personal case got fixed by adding an error code to our default exception which is thrown by all methods.

问题作者是回答并接受此答案的同一个人,所以我猜他试图解决与您相同的问题并得出无法解决的结论。

关于java - 从 EJB 拦截器中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4375747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com