簡體   English   中英

JSNI方法返回了Java對象以外的其他東西

[英]Something other than a Java object was returned from JSNI method

通過運行errai-mvp-demo示例應用程序時

mvn gwt:run 

我收到此錯誤:

java.lang.IllegalArgumentException:JSNI方法'@ com.google.gwt.core.client.impl.Impl :: apply(Ljava / lang / Object; Ljava / lang / Object; Ljava / lang / Object;)':布爾值類型的JS值,com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:178)上的java.lang.Object期望com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)的com.google.gwt.core.client.impl.Impl.apply(Impl的.ModuleSpace.invokeNativeObject(ModuleSpace.java:271) .java),位於com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213),位於sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法),位於sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java) :57),位於com.google.gwt.dev.shell.MethodAdaptor.invoke(java.lang.reflect.Method.invoke(Method.java:601)處的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)處。網址為com.google.gwt.dev.shell.Metho的MethodAdaptor.java:103) com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)的dDispatch.invoke(MethodDispatch.java:71) 337),com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218),com.google.gwt.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136),com.google.gwt com.google.gwt.dev.shell.ModuleSpace.invokeNativeBoolean(ModuleSpace.java:184)的.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)com.google.gwt.dev.shell.JavaScriptHost.invokeNativeBoolean (JavaScriptHost.java:35)在org.jboss.errai.common.client.util.LogUtil.isNativeJavaScriptLoggerSupported(LogUtil.java)在org.jboss.errai.common.client.util.LogUtil.log(LogUtil.java:29 )在org.jboss.errai.ioc.client.Container.onModuleLoad(Container.java:34)的org.jboss.errai.ioc.client.Container.boostrapContainer(Container.java:45)在sun.reflect.NativeMeth 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)處的odAccessorImpl.invoke0(本機方法)在java.lang.reflect.Method.invoke(方法。 com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:396)的com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)的com.google.gwt.dev.shell。 .com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)上的.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:525)在java.lang.Thread.run(Thread.java :722)

我假設您正在使用Chrome。這似乎是一個常見問題。 我遇到了同樣的問題,並切換到Firefox。 從那以后我再也沒有看到錯誤。

如果您使用的是Chrome瀏覽器,是的。此問題發生在CHROME

根據@Thomos Broyer相對於Google 網上論壇的同一問題:

https://groups.google.com/forum/?fromgroups=#!topic/google-web-toolkit/b0KbD8BNsqw

快速修復 :在開發模式下從Chrome切換到Firefox

您可以在Stackoverflow上找到相同的問題。另請參見該問題的答案。

如果要獲取IllegalArgumentException,只需對客戶端模型或bean進行一些更改。

當返回帶有他的數據類型的值時,只需提及包路徑。

public native final Boolean apply() /*-{
 return this.apply ? @java.lang.Double::Boolean(D)(this.apply) : null;
 }-*/;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM