我正在开发使用ActiveJDBC作为我的ORM,使用Tomcat服务器以及使用IntelliJ作为IDE的Spring MVC应用程序。
为了获得必要的功能,ActiveJDBC需要对编译的类进行某些字节码操作(由ORM称为检测)。因此,在编译阶段之后,将静态方法添加到已编译的类中。一切都很好,但是当我尝试将Web应用程序的工件部署到Tomcat时,WAR包含在字节操作(指令)发生之前的已编译类。
为了在ActiveJDBC要求的检测之后包含编译后的输出,我尝试了:
通过导航到“文件”>“项目结构”,然后手动包含已编译的类来创建工件,该已编译的类包含通过检测添加的方法。
部署上述工件会导致以下错误:
原始服务器找不到目标的当前表示形式
资源或不愿意透露存在。
当我改用主模块的编译输出时,可以在浏览器上访问该应用程序,但是在源代码调用工具提供的方法的页面上收到500错误(后编译任务)。
我的问题:
1)为了构建要部署的工件,是否需要使用主模块的编译输出?
2)如果工件原样包含主模块的编译,那么如何在工件中包括编译后阶段修改?
最佳答案
愚蠢的错误!手动构建工件时,我忘记使用适当的目录结构。