2014-10-31 79 views
1

我想運行一個Web服務,將提供解析句子到RDF三元組接口。到目前爲止,我能夠用一個控制器運行簡單的彈簧應用程序,並顯示魔術「Hello World」。斯坦福CoreNLP,春季Web服務,Netbeans 8.0.1和內存不足

我添加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]我試圖設置虛擬機選項-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 

EDIT 2 - ANSWER

我的情況解決辦法是改變GlassFish在Tomcat的,並開始工作:)。非常感謝所有幫助過我的人。

任何人都可以幫助我嗎?

非常感謝。

米哈爾

+0

使用'jps'和'jstat'(或'jconsole')實用程序來檢查是否運行進程/應用程序時,實際使用的設置。也許它需要以不同的方式應用。 您也可以調整Ant設置以生成詳細輸出以查看用於運行應用程序的命令,並可能檢查如何設置一些屬性。 – Radim 2014-10-31 08:05:19

+0

我編輯的問題與jsp命令的結果 – 2014-10-31 08:40:41

回答

0

您正在使用斯坦福核心NLP它佔用太多的堆大小主要ER。只需重新啓動netbean並將堆內存提供1024的倍數。我在-Xmx4096M堆大小中使用了該代碼並開始工作。

-Xmx4096M or -Xmx5120M

+1

嗨。感謝您的快速回答。我已經改變run.args.extra = -Xmx4g到run.args.extra = -Xmx4096M,保存,重啓NetBeans中,選擇從下拉列表中我的配置在一個工具欄,運行,得到了同樣的錯誤。任何其他的消化? – 2014-10-31 07:53:40

+0

既不-Xmx8192M的作品。所以也許在其他地方有問題。我是否正確地配置它?我的意思是這個添加和使用配置? – 2014-10-31 08:00:47

+1

這意味着在你的核心NLP程序中,沒有問題。問題出在你的servlet()或其他地方。只是爲了測試。你只提取POS。 pos提取是否有效。 屬性props = new Properties(); props.put( 「註釋」, 「記號化,SSPLIT,POS」); 如果是工作再加入NER或任何其他財產 – 2014-10-31 08:42:21

0

在我的情況的解決方案是Glassfish的改變Tomcat的,並開始工作:)。非常感謝每個人,幫助