问题包括部署到Tomcat的工件中的编译后阶段修改

时间:2017-10-16 08:42:03

标签: tomcat intellij-idea activejdbc

我正在使用ActiveJDBC作为我的ORM,Tomcat服务器和IntelliJ作为我的IDE开发Spring MVC应用程序。

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

要将编译后的输出包含在ActiveJDBC所需的工具中,我试过:

导航到文件>创建工件;项目结构然后手动包括编译的类,其中包括通过检测添加的方法。 enter image description here 部署上述工件会导致以下错误:

  

原始服务器未找到目标的当前表示   资源或不愿意披露存在的资源。

当我改为使用主模块的编译输出时,我可以在浏览器上访问该应用程序,但是,在源代码调用随仪器提供的方法的页面上收到500错误(帖子编译任务)。

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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