Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自动检测来自java的外部调用_Java_Findbugs - Fatal编程技术网

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

自动检测来自java的外部调用,java,findbugs,Java,Findbugs,我为一家拥有数百万行Java代码的企业工作。不幸的是,当一个javaear在另一个系统上调用另一个EAR时,有非常糟糕的实践来跟踪。问题变得更糟,我们运行DB2,所有DB2模式都在同一个数据连接上运行。这意味着没有标准的方法来查看配置文件或数据库连接,甚至不知道应用程序访问哪些数据库。这个问题扩展到其他REST服务,因为我们有REST数据服务、MQ系统、JMS、EJBRMI等。尝试进行影响分析是一场噩梦 是否存在一个工具,可能是findbugs插件,我可以在应用程序上运行,并让它生成应用程序访问

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

是否存在一个工具,可能是findbugs插件,我可以在应用程序上运行,并让它生成应用程序访问的系统的报告

如果不是,如果我在java.io和java.nio上放置say TRACE来记录所有内容,那么这是否应该捕获java试图通过应用服务器进行的任何网络连接

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

这可能吗?

棘手的一个;-)

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

  • 确定要标记的所有类型的连接(例如DB连接、EJB通信、ReST客户端代码…)

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

  • 将findbugs配置为仅使用您的bug模式并在代码库上运行(否则所有其他bug都会使结果混乱,尤其是当您的代码库如此庞大时)

  • Findbugs将生成一份报告/向您显示所有“通信”位置