Stanford CoreNLP,Spring Web服务,Netbeans 8.0.1和内存不足

时间:2014-10-31 07:33:21

标签: java spring spring-mvc netbeans stanford-nlp

我正在尝试运行一个Web服务,它将提供用于将句子解析为RDF三元组的界面。到目前为止,我能够使用一个控制器运行简单的弹簧应用程序,并显示神奇的“Hello World”。

添加CoreNLP时遇到问题。

SEVERE:   Adding annotator tokenize
SEVERE:   Adding annotator ssplit
SEVERE:   Adding annotator pos
SEVERE:   Reading POS tagger model from edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger
SEVERE:   ...
SEVERE:   done [1,2 sec].
SEVERE:   Adding annotator lemma
SEVERE:   Adding annotator ner
SEVERE:   Loading classifier from edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz
SEVERE:   ...
SEVERE:   done [4,0 sec].
SEVERE:   Loading classifier from edu/stanford/nlp/models/ner/english.muc.7class.distsim.crf.ser.gz
SEVERE:   ...
WARNING:   StandardWrapperValve[dispatcher]: Servlet.service() for servlet dispatcher threw exception
java.lang.OutOfMemoryError: Java heap space

正如这里提到的http://nlp.stanford.edu/software/parser-faq.shtml [num。 6]我尝试像这样设置VM选项 -Xmx4g 右键单击项目 - >属性 - >配置 - >添加。我创建了新的配置 run.args.extra = -Xmx4g

编辑1

所以我运行jsp comman,我不知道它意味着什么。我明白了:

1268 Jps -Denv.class.path=.;C:\Program Files (x86)\Java\jre7\lib\ext\QTJava.zip -Dapplication.home=C:\Program Files\Java\jdk1.7.0_17 -Xms8m
7496  -Dnetbeans.importclass=org.netbeans.upgrade.AutoUpgrade -Dnetbeans.accept_license_class=org.netbeans.license.AcceptLicense -client -Xss2m -Xms32
m -XX:PermSize=32m -Dapple.laf.useScreenMenuBar=true -Dapple.awt.graphics.UseQuartz=true -Dsun.java2d.noddraw=true -Dsun.java2d.dpiaware=true -Dsun.zi
p.disableMemoryMapping=true -Xmx1024m -XX:MaxPermSize=384m -Djdk.home=C:\Program Files\Java\jdk1.7.0_17 -Dnetbeans.home=C:\Program Files\NetBeans 8.0.
1\platform -Dnetbeans.user=C:\Users\majernikm\AppData\Roaming\NetBeans\8.0.1 -Dnetbeans.default_userdir_root=C:\Users\majernikm\AppData\Roaming\NetBea
ns -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Users\majernikm\AppData\Roaming\NetBeans\8.0.1\var\log\heapdump.hprof -Dsun.awt.keepWorkingSetO
nMinimize=true -Dnetbeans.dirs=C:\Program Files\NetBeans 8.0.1\nb;C:\Program Files\NetBeans 8.0.1\ergonomics;C:\Program Files\NetBeans 8.0.1\ide;C:\Pr
ogram Files\NetBeans 8.0.1\extide;C:\Program Files\NetBeans 8.0.1\java;C:\Program Files\NetBeans 8.0.1\apisupport;C:\Program Files
6596 Program
8612 NetworkServerControl -Dderby.system.home=C:\Users\majernikm\.netbeans-derby
6900 ASMain -XX:MaxPermSize=192m -Djava.awt.headless=true -Djdk.corba.allowOutputStreamSubclass=true -Djavax.xml.accessExternalSchema=all -Djavax.mana
gement.builder.initial=com.sun.enterprise.v3.admin.AppServerMBeanServerBuilder -XX:+UnlockDiagnosticVMOptions -Djava.endorsed.dirs=C:\Program Files\gl
assfish-4.1\glassfish/modules/endorsed;C:\Program Files\glassfish-4.1\glassfish/lib/endorsed -Djava.security.policy=C:\Program Files\glassfish-4.1\gla
ssfish\domains\domain1/config/server.policy -Djava.security.auth.login.config=C:\Program Files\glassfish-4.1\glassfish\domains\domain1/config/login.co
nf -Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as -Xmx512m -Djavax.net.ssl.keyStore=C:\Program Files\glassfish-4.1\glassfish\domains\domain1
/config/keystore.jks -Djavax.net.ssl.trustStore=C:\Program Files\glassfish-4.1\glassfish\domains\domain1/config/cacerts.jks -Djava.ext.dirs=C:\Program
 Files\Java\jdk1.7.0_17/lib/ext;C:\Program Files\Java\jdk1.7.0_17/jre/lib/ext;C:\Program Files\glassfish-4.1\glassfish\domains\domain1/l

编辑2 - 答案

我的情况中,解决方案是将Glassfish更改为 Tomcat ,它开始工作:)。非常感谢所有帮助过的人。

有人能帮助我吗?

非常感谢。

米甲

2 个答案:

答案 0 :(得分:0)

你正在使用Stanford Core NLP,它主要是NER的堆大小。只需重新启动netbean并以1024的倍数给出堆内存。我在-Xmx4096M堆大小中使用了该代码并且工作正常。

喜欢-Xmx4096M or -Xmx5120M

答案 1 :(得分:0)

在我的情况下,解决方案是将Glassfish更改为 Tomcat ,它开始工作:)。非常感谢所有帮助过的人