启动WSO2 Enterprise Mobility Manager时出现“java.lang.OutOfMemoryError:Java堆空间”

时间:2014-04-15 16:31:04

标签: java wso2

我已经下载了WSO2 Enterprise Mobility Manager的1.0.0版 我跟着Prerequisites
General Server Configurations

System Win 7 64bit 12GB RAM
JDK java版" 1.7.0_51" Java(TM)SE运行时环境(版本1.7.0_51-b13)
JAVA_HOME设置为JDK目录

如果我执行:

<PRODUCT_HOME>\bin>wso2server.bat --run

我收到以下错误:

JAVA_HOME environment variable is set to C:\Program Files\Java\jdk1.7.0_51
CARBON_HOME environment variable is set to C:\inetpub\wwwroot\WSO2MO~1.0\bin\..
java.lang.OutOfMemoryError: Java heap space
Dumping heap to C:\inetpub\wwwroot\WSO2MO~1.0\bin\..\repository\logs\heap-dump.h
prof ...
Heap dump file created [1077051686 bytes in 5.148 secs]
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.wso2.carbon.bootstrap.Bootstrap.loadClass(Bootstrap.java:63)
    at org.wso2.carbon.bootstrap.Bootstrap.main(Bootstrap.java:45)
Caused by: java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Arrays.java:2367)
    at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.
java:130)
    at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractString
Builder.java:114)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:535
)
    at java.lang.StringBuffer.append(StringBuffer.java:322)
    at java.io.BufferedReader.readLine(BufferedReader.java:363)
    at java.io.BufferedReader.readLine(BufferedReader.java:382)
    at org.wso2.carbon.server.extensions.DropinsBundleDeployer.processBundle
sInfoFile(DropinsBundleDeployer.java:146)
    at org.wso2.carbon.server.extensions.DropinsBundleDeployer.perform(Dropi
nsBundleDeployer.java:71)
    at org.wso2.carbon.server.Main.invokeExtensions(Main.java:149)
    at org.wso2.carbon.server.Main.main(Main.java:94)
    ... 6 more

我尝试在第161行的wso2server.bat中提高堆大小,直至-Xms4000m XmX8000m但我收到错误java.lang.OutOfMemoryError: Requested array size exceeds VM limit

如何让Enterprise Mobility Server成功运行?

2 个答案:

答案 0 :(得分:1)

  

我尝试在第161行的wso2server.bat中提高堆大小   -Xms4000 XmX8000

您省略了单位 - 默认为千字节。尝试:

-Xms4g -Xmx8g

您也可以尝试使用-verbose:gc运行,并使用HPjmeter等工具可视化数据。这将有助于您适当调整堆的大小。

答案 1 :(得分:0)

您的-Xms-Xmx选项太低了。 This可能会有所帮助。这些选项之后的数字不是KB或MB,只是B ...你的JVM甚至不会在8000B运行。尝试将其增加到合理的数量。

修改:您链接的先决条件是您需要的:

  

~512 MB堆大小。这通常足以处理典型的SOAP消息,但要求因较大的消息大小和同时处理的消息数而异。