gpt4 book ai didi

java - 自动检测来自java的外部调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:01:00 25 4
gpt4 key购买 nike

我在一家拥有数百万行 Java 代码库的企业工作。不幸的是,当一个 java EAR 调用另一个系统上的另一个 EAR 时,有非常糟糕的做法来跟踪。问题变得更糟,我们运行 DB2 并且所有 DB2 模式都在同一个数据连接上运行。这意味着没有标准的方法来查看配置文件或数据库连接,甚至无法判断应用程序访问了哪些数据库。这个问题扩展到其他 REST 服务,因为我们有 REST 数据服务、MQ 系统、JMS、EJB RMI 等。尝试进行影响分析是一场噩梦。

是否存在可以在应用程序上运行并生成应用程序访问的系统报告的工具,也许是 findbugs 插件?

如果不是,如果我在 java.io 和 java.nio 上放置 TRACE 来记录所有内容,是否应该捕获 Java 尝试通过应用服务器建立的任何网络连接?

我的最终目标是,如果我找不到可以帮助解决这些问题的静态分析系统,我想编写一些 AOP 应用程序,它可以在 EAR 和 WebSphere 之间运行,并将所有出站和可能的入站连接记录到耳朵资源。

这可能吗?

最佳答案

棘手的一个;-)

Findbugs 可以帮助您识别 java 代码中所有与通信相关的地方。但是你必须为此做一些事情:

  1. 识别您要标记的各种连接(例如,数据库连接、EJB 通信、ReST 客户端代码...)

  2. 如果有,您需要编写自己的 findbugs 插件来检测这些位置。可能听起来很复杂,但取决于你想识别多少地方,我猜一个精通的开发人员可以在 2-3 天内完成。作为起点,请查看 findbugs 中可用错误模式的源代码,寻找类似的源代码并将其用作起点。网络上也有很多关于如何编写自己的错误模式的教程...

  3. 将 findbugs 配置为仅使用您的错误模式并在您的代码库上运行它(否则所有其他错误会使结果困惑,尤其是当您的代码库如此庞大时)。

  4. Findbugs 将生成报告/向您显示所有“通信”位置...

关于java - 自动检测来自java的外部调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29128367/

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