2013-07-27 40 views
0

好吧我必須在進一步調查後重寫我的問題。使用GAE時,gwt-dev.jar與war/lib classpath上的icu jar衝突

我遇到下面的問題在我的GWT/GAE項目:

java.lang.RuntimeException: Class com.google.appengine.tools.development.agent.runtime.Runtime$21 can not access a member of class com.ibm.icu.text.CollatorServiceShim with modifiers "" 
    at com.ibm.icu.text.Collator.getShim(Collator.java:456) 
    at com.ibm.icu.text.Collator.getInstance(Collator.java:478) 
    at com.google.visualization.datasource.datatable.value.TextValue$1.<init>(TextValue.java:126) 
    at com.google.visualization.datasource.datatable.value.TextValue.getTextLocalizedComparator(TextValue.java:125) 
    at com.google.visualization.datasource.datatable.value.Value$1.<init>(Value.java:141) 
    at com.google.visualization.datasource.datatable.value.Value.getLocalizedComparator(Value.java:140) 
    at com.google.visualization.datasource.query.engine.TableRowComparator.<init>(TableRowComparator.java:66) 
    at com.google.visualization.datasource.query.engine.QueryEngine.performSort(QueryEngine.java:234) 
    at com.google.visualization.datasource.query.engine.QueryEngine.executeQuery(QueryEngine.java:128) 
    at com.google.visualization.datasource.DataSourceHelper.applyQuery(DataSourceHelper.java:410) 
    at com.klawt.server.resources.chart.InvoicesChartServerResource.retrieve(InvoicesChartServerResource.java:129) 

一些更多的調查顯示,GWT-dev.jar包含ICU庫的副本:

公衆抽象類com.ibm.icu.text.Collat​​or implements java.util.Comparator,com.ibm.icu.util.Freezable

是gwt-dev.jar的一部分

我的項目對icu4j 4.0.1(對於Google Visualization Datasource library)有依賴性。但GAE SDK堅持使用包含在gwt-dev.jar中的版本;

我想必須有一種方法來設置我的開發環境,所以這種方法有效,它以前做過。

我已經嘗試將GWT SDK移動到我的構建路徑的「訂單和導出」選項卡的底部,並將icu jar移動到頂部,但沒有運氣。

enter image description here

+0

我不確定我明白:這是服務器端代碼嗎? 'WEB-INF/lib'中的icu4j JAR是?如果您還將其從DevMode類路徑中刪除,該怎麼辦? –

+0

@ThomasBroyer是的,這是服務器端代碼。 appengine devserver在gwt-dev.jar中選擇icu版本,而不是icu-4.0.1.jar中的版本,但appengine安全沙箱禁止以某種方式使用這些類。你是什​​麼意思從DevMode類路徑中刪除?刪除gwt-dev.jar?那麼DevMode不會再工作了,對吧? – koma

+0

@ThomasBroyer刪除icu-4.0.1.jar給出了java.lang.ClassNotFoundException:com.ibm.icu.util.GregorianCalendar,所以這不是一個選項:-(還試圖保持lib文件夾中的icu-4.0.1.jar但沒有在eclipse構建路徑中添加它,沒有運氣 – koma

回答