Apache Dubbo中dubbogo 3.0.5版本,服务端报错,查日志也不打印报错堆栈,只有一个Invoke function error,请问是有什么开关吗?
在 Apache Dubbo 中,dubbogo 3.0.5 版本服务端出现 "Invoke function error" 的错误,但没有打印报错堆栈信息的情况下,可以尝试以下方法来获取更详细的错误日志:
检查日志级别:确保你的日志级别设置为 DEBUG。通常,Dubbo 的日志级别默认是 INFO,无法打印详细的堆栈信息。通过将日志级别调整到 DEBUG,可以让 Dubbo 打印更多的调试信息和堆栈跟踪。
配置异常拦截器(Exception Interceptor):在 Dubbo 服务提供者端配置一个异常拦截器,以便捕获并处理异常。你可以通过实现 org.apache.dubbo.rpc.Filter
接口,并在 invoke()
方法中加入异常处理和日志打印逻辑,从而捕获并打印异常的堆栈信息。
public class ExceptionInterceptor implements Filter {
@Override
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
try {
// 执行服务真正的处理逻辑
return invoker.invoke(invocation);
} catch (Throwable e) {
// 处理异常,打印堆栈信息
e.printStackTrace();
throw new RpcException("Invoke function error: " + e.getMessage(), e);
}
}
}
然后,在 Dubbo 服务的配置文件中添加该异常拦截器:
<dubbo:protocol name="dubbo" port="20880">
<dubbo:service filter="exceptionInterceptor" ... />
</dubbo:protocol>
<bean id="exceptionInterceptor" class="com.example.ExceptionInterceptor" />
通过配置异常拦截器,你可以捕获到具体的异常,并在控制台或日志中打印堆栈信息。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。