2017-10-16 54 views
1

我正在开发Spring MVC应用程序,使用ActiveJDBC作为我的ORM,Tomcat服务器和IntelliJ作为我的IDE。问题包括部署到Tomcat的构件中的后期编译阶段修改

对于必要的功能,ActiveJDBC需要一些字节码操作 - 称为ORM的检测 - 编译类。所以在编译阶段之后,静态方法被添加到编译的类中。这很好,但是当我尝试将我的Web应用程序的工件部署到Tomcat时,WAR包含之前的编译类发生了字节操作(检测)。

要包括由后需要ActiveJDBC仪表编译后的输出,我曾尝试:

通过手动导航到文件>项目结构,然后包括编译的类,其中包括通过增加的工具方法创建的神器。 enter image description here 部署上述结果在下面的错误描述的伪影:

The origin server did not find a current representation for the target
resource or is not willing to disclose that one exists.

当我代替使用主模块的编译输出,我可以在浏览器上访问的应用,但是,接收对页面的500错误的源代码调用可用于检测的方法(后编译任务)。

我的问题: 1)为了构建要部署的构件,是否需要使用主模块的编译输出? 2)如果工件包含主模块的编译原样,如何在工件中包含后编译阶段修改

回答

0

愚蠢的错误!手动构建工件时,我忘记使用适当的目录结构。

0

虽然你可能使用IntelliJ Idea来部署,几乎没有人这样做。只需使用JavaLite项目中的一些示例:https://github.com/javalite/simple-example,特别是Maven Instrumentation Plugin:https://github.com/javalite/simple-example/blob/master/pom.xml#L31即可在打包之前对您的模型进行测试。之后,照常部署WAR文件。在命令行上构建和打包将产生比IDE更一致的结果。

此外,您可能希望查看您的Web部件的ActiveWeb:http://javalite.io/activeweb,因为它很好地与ActiveJDBC集成。