|
1
3
您是否可以从cglib更改为jdk代理?( Spring AOP proxy reference ) 基本上:如果您将bean作为接口访问,那么您可以使用JDK代理(Spring默认机制),从而使底层对象保持完整,并获得对堆栈跟踪中行号的访问。 |
|
|
2
0
我会说,不能在本地复制这是一个重要的限制。我将尝试设置本地环境或测试服务器来重现问题,使用JMeter或其他负载测试软件来模拟并发用户访问的负载。完成后,您的调整/编译/测试周期将缩短很多,您可以进行实验性的更改,而不用担心中断生产服务器上的服务。这看起来可能很费力,但这项工作不仅会为这个bug带来回报,而且会为将来可能遇到的bug带来回报。
这听起来像是一个线程错误,特别是因为Spring默认使用单例作用域。考虑到这一点,考虑为失败的服务创建多线程集成测试。一旦您通过负载测试重现了这个bug,您就可以通过使您的主要服务方法来验证它是否是线程bug。
至于查找bug的行,因为代码是生成的,所以没有要查找的行。你能做的最好的事情就是在用户服务的建议中使用的所有bean中添加防御检查。(例如,检查由于缺少注入而导致的空值。)
|
|
|
3
0
如果您无法在本地环境中重现该问题,那么可能是与环境/网络相关的问题。我将首先在测试环境中重新创建这个问题(它更接近于生产环境,而不仅仅是拥有本地机器)来调试bug。 您也可以使用fiddler调试与网络相关的实时版本问题。 |