我们必须扩展一个巨大的java项目,它使用maven,spring,struts,freemarker和closure模板等框架。
我们确实可以访问源代码,但几乎没有任何文档,我们必须扩展此系统。我们唯一的解决方案是在现有代码中找到已经完成类似的地方。为了找到这个地方,我们尝试从调用的动作开始,然后在调试器的帮助下尝试找出涉及哪些类和Spring bean。
调试器的堆栈跟踪很难理解,因为正在使用大量的反射。
有没有人有类似的设置,可以提供一些tipps如何管理这么复杂的设置?
答案 0 :(得分:1)
是的我有类似的设置,我使用fdisk,因为在我的情况下,代码也有错误,不可理解。 ; - )
这份工作真的很难。我只能给你一个提示:建立回归测试
答案 1 :(得分:0)
将Eclipse IDE用于您的应用程序。它支持spring,struts和j2ee应用程序的许多框架。我喜欢它的调试器,我很容易理解它的堆栈跟踪。 通常,Eclipse中的调试器配置为在所有未捕获的异常上挂起引发异常的位置的执行。异常可能稍后处理,在堆栈帧中降低,并且可能不会导致线程被终止。这将是观察到的行为的原因。 配置Eclipse的行为很简单 - 在Preferences对话框中,树层次结构中Java下的Debug窗格有一个标题为“**暂停未捕获异常执行”的选项,可以取消选中。
答案 2 :(得分:0)
从来没有这个具体案例,但是我是你,我会尝试使用AspectJ的一些AOP来包装应用程序的每次调用,收集这些实时数据并分析它以查看操作发生的位置。您可以围绕此类数据构建一些不错的热图或其他可视化。
答案 3 :(得分:0)
我认为虽然手头的任务看起来很难,但很少有工具可以提供帮助
如果没有测试,如果你使用Junit和Spring测试,我会写一个测试,至少要单独加载spring容器这很简单,请看more
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring-context.xml"})
public class CTSWebServiceTest
{
//if annotations are being used
@Autowired
ApplicationContext ctx;
}
如果您可以使用struts插件获取应用程序流程,那么您可以绘制出可以帮助您了解视图的各种流程(freemaker)
由于你没有量化变化,因为对于maven来说,更改应该是最小的更像是添加新的依赖项等,你可以使用这个m2eclipse插件来实现maven