java - 如何在部署在 Tomcat 中的 Alfresco 中部署模块

标签 java tomcat deployment alfresco

我已经成功在 Tomcat 7.0.59 中部署了 alfresco community 4.2.f,数据库为 MySQL5.6 和 jdk1.8.0_141

到目前为止没有问题,现在,我得到了一个我们公司开发的模块,我需要在露天部署。该模块调用 WS,它将 PDF 发送到某个地方。

我在用 jdk1.8.0_141 编译的 jar 中得到了这个模块

在 WEB-INF/lib 中的 Tomcat 中部署之前,我试图将它放在 alfresco.war 中,但是当我这样做并从 Tomcat 使用 startup.bat 进行部署时,它会在控制台中弹出

instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/codehaus/xfire/XFireRuntimeException

我知道这个异常是由于将 jar 放入 war 中引起的。 我听说这个 jar 也是用 jdk8 编译的。

另外,告诉你,如果我在 WEB-INF/classes 的 alfresco.war 中放入一个属性文件来代替这个 jar 来部署我们的数据库,它就可以正常工作。

问题出在我尝试部署模块时。

我看到有很多教程指向做类似的事情:

java -jar bin/alfresco-mmt.jar

我不能那样做,因为我假设这是用它的向导安装 alfresco 完成的。我是在全新的 tomcat 安装中部署 alfresco 的。

有谁知道如何用我们部署alfresco的方式来部署我们的模块?谢谢。

最佳答案

您有两种安装放大器的方法:

第一个传统的:

这是与应用放大器程序 (alfresco-mmt) 一起安装的。 对我来说,它与您的安装不兼容是不正确的。您可以在 alfresco 包装中轻松找到 bin 文件夹(包含 alfresco-mmt.jar 文件):https://download.alfresco.com/release/community/4.2.f-build-00012/alfresco-community-4.2.f.zip

当你拥有它时,你可以按照文档:http://docs.alfresco.com/4.2/tasks/amp-install.html

然后按照以下方式应用您的放大器:

java -jar alfresco-mmt.jar install <AMPFileLocation> <WARFileLocation>

第二个:

您可以使用 alfresco sdk 重新创建 war ,并将您创建的模块包含在构建中。 如果您遵循此文档:http://docs.alfresco.com/4.2/tasks/dev-extensions-maven-sdk-tutorials-all-in-one-archetype.html repo 部分的目标文件夹中产生的 war 将包含您的模块,因为该模块的 pom 将包含对 amp 模块的依赖:

...
<dependencies>
     <dependency>
          <groupId>${alfresco.groupId}</groupId>
          <artifactId>alfresco</artifactId>
          <type>war</type>
     </dependency>
     <!-- Demonstrating the dependency on the repo AMP developed in the 'amp' 
                           module -->
      <dependency>
          <groupId>x.y.z</groupId>
          <artifactId>my-amp</artifactId>
          <version>${my-amp.version}</version>
          <type>amp</type>
          </dependency>
      </dependencies>
      ...
      <build>
            <plugins>
                    <plugin>
                         <artifactId>maven-war-plugin</artifactId>
                         <configuration>
                         <!-- Here is can control the order of overlay of your (WAR, AMP, etc.) 
                                              dependencies | NOTE: At least one WAR dependency must be uncompressed first 
                                              | NOTE: In order to have a dependency effectively added to the WAR you need 
                                               to | explicitly mention it in the overlay section. | NOTE: First-win resource 
                                              strategy is used by the WAR plugin -->
                                 <overlays>
                                 <!-- Current project customizations -->
                                       <overlay />
                                       <!-- The Alfresco WAR -->
                                       <overlay>
                                           <groupId>${alfresco.groupId}</groupId>
                                           <artifactId>alfresco</artifactId>
                                           <type>war</type>
                                            <!-- To allow inclusion of META-INF -->
                                            <excludes />
                                             </overlay>
                                            <!-- Add / order your AMPs here -
                                        <overlay>
                                             <groupId>x.y.z</groupId>
                                             <artifactId>my-amp</artifactId>
                                             <type>amp</type>
                                         </overlay>
                                       </overlays>
                               </configuration>
                      </plugin>
               </plugins>
       </build>

关于java - 如何在部署在 Tomcat 中的 Alfresco 中部署模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45561358/

相关文章:

java - 从 testng.xml 读取参数值时遇到问题

java - 是否-XX :+HeapDumpOnOutOfMemoryError create any security or performance issues?

Tomcat 7 GZIP 压缩不起作用

javascript - 未捕获的语法错误 : Unexpected token < in inline. bundle.js:1 - Angular v4

c++ - C++ 库的 Windows 包管理器

java - 如何以编程方式隐藏 Android 中操作栏上的菜单?

java - 界面太一般

java - 我如何通过 Mockito 模拟父类(super class)的方法?

java - Tomcat 问题 :java.net.BindException : Address already in use <null>:8080 at org. apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549)

java - 使用 Install4J 将 javax 复制到 JRE