4

我们正在使用 tomcat 7 运行 arquillian ...
使用我同事的 MAC 测试工作正常,但是在我的 linux 计算机上(我们都有 8gb ram)它失败了:

FATAL: Error waiting for multi-thread deployment of WAR files to complete
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space

当我开始测试时,我在堆栈中看到这一行:

14:05:56.482 信息 - 使用以下命令启动 Tomcat:[java,-Dcom.sun.management.jmxremote.port=8089,-Dcom.sun.management.jmxremote.ssl=false,-Dcom.sun.management.jmxremote.authenticate =false,-Xmx512m,-XX:MaxPermSize=128m,-classpath,/home/user/apache-tomcat-testing/bin/bootstrap.jar:/home/user/apache-tomcat-testing/bin/tomcat-juli。 jar,-Djava.endorsed.dirs=/home/user/apache-tomcat-testing/endorsed,-Dcatalina.base=/home/user/apache-tomcat-testing,-Dcatalina.home=/home/user/apache- tomcat-testing,-Djava.io.tmpdir=/home/user/apache-tomcat-testing/temp,org.apache.catalina.startup.Bootstrap,-config,/home/user/apache-tomcat-testing/conf/ server.xml,开始]

我试图bin/catalina.sh

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms2048m -Xmx2048m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:+DisableExplicitGC"

但它仍然xmx=512m在堆栈中。
我还添加pom.xml<argLine>-Xms2048m -Xmx2048m</argLine>forfailsafe-maven-plugin和 for themaven-surefire-plugin但仍然是相同的错误...

为 arquillian 测试更改 xmlx 的正确位置在哪里?

谢谢你!

4

1 回答 1

5

您似乎正在使用 Arquillian 管理的 Tomcat 7 容器。使用javaVmArgumentsarquillian.xml 中的属性来指定Xmx值:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://jboss.org/schema/arquillian"
    xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd">

    <container qualifier="tomcat" default="true">
        <configuration>
            <property name="catalinaHome">${CATALINA_HOME:target/apache-tomcat-7.0.20}</property>
            <property name="javaVmArguments">-Xms2048m -Xmx2048m</property>
            <property name="jmxPort">8089</property>
            <property name="bindHttpPort">8080</property>
            <property name="user">manager</property>
            <property name="pass">password</property>
            <property name="serverConfig">server.xml</property>
        </configuration>
    </container>
</arquillian>

托管 Tomcat 7 容器支持的属性的完整参考位于Arquillian Confluence wiki中。

于 2012-08-24T07:44:20.753 回答