Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获得GWT和Maven的UnsupportedActionException_Java_Gwt_Guice_Gwt Platform - Fatal编程技术网

Java 获得GWT和Maven的UnsupportedActionException

Java 获得GWT和Maven的UnsupportedActionException,java,gwt,guice,gwt-platform,Java,Gwt,Guice,Gwt Platform,我仍在努力使我的项目与GWT和Maven一起工作 现在,我在ActionHandler中遇到了错误 我在示例和其他项目(不使用maven)中配置了类似Guice的教程,但在本项目中,Guice servlet似乎没有将操作绑定到ServerModule中的ActionHandler: public class ServerModule extends HandlerModule { @Override protected void configureHandlers()

我仍在努力使我的项目与GWT和Maven一起工作

现在,我在ActionHandler中遇到了错误

我在示例和其他项目(不使用maven)中配置了类似Guice的教程,但在本项目中,Guice servlet似乎没有将操作绑定到ServerModule中的ActionHandler:

public class ServerModule extends HandlerModule
{
    @Override
    protected void configureHandlers()
    {
        System.out.println("ServerModule.configureHandlers()");
        install(new ControllerModule());
        bindHandler(SalvarUsuarioAction.class, SalvarUsuarioActionHandler.class);
    }
}
正如您所看到的,我也推出了一个sysout,但它从未出现在控制台中

当我尝试执行该操作时,出现以下错误:

com.gwtplatform.dispatch.shared.UnsupportedActionException: No handler is registered for br.com.tests.shared.commands.usuario.salvar.SalvarUsuarioAction
    at com.gwtplatform.dispatch.shared.UnsupportedActionException_FieldSerializer.instantiate(UnsupportedActionException_FieldSerializer.java:16)
    at com.gwtplatform.dispatch.shared.UnsupportedActionException_FieldSerializer.create(UnsupportedActionException_FieldSerializer.java:25)
    at com.google.gwt.user.client.rpc.impl.SerializerBase.instantiate(SerializerBase.java:115)
    at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.deserialize(ClientSerializationStreamReader.java:111)
    at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:119)
    at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:216)
    at com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:287)
    at com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:395)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:337)
    at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:218)
    at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
    at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
    at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
    at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
    at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213)
    at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
    at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
    at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
    at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
    at java.lang.Thread.run(Thread.java:662)
我只是不明白为什么它不工作,我的web.xml也是正确的,我想,无论如何,代码是:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5">

    <listener>
        <listener-class>br.com.testes.server.guice.GuiceServletConfig</listener-class>
    </listener>

    <filter>
        <filter-name>guiceFilter</filter-name>
        <filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>guiceFilter</filter-name>
        <url-pattern>*</url-pattern>
    </filter-mapping>

    <filter>
        <filter-name>CacheFilter</filter-name>
        <filter-class>br.com.testes.server.filter.CacheFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>CacheFilter</filter-name>
        <url-pattern>/gwt/*</url-pattern>
    </filter-mapping>

    <servlet>
        <servlet-name>jUnitHostImpl</servlet-name>
        <servlet-class>com.google.gwt.junit.server.JUnitHostImpl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>jUnitHostImpl</servlet-name>
        <url-pattern>/br.com.digitaldoc.detran.DetranJUnit/junithost/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>jUnitHostImpl</servlet-name>
        <url-pattern>/Testes/junithost/*</url-pattern>
    </servlet-mapping>

    <!-- Default page to serve -->
    <welcome-file-list>
        <welcome-file>Testes.html</welcome-file>
    </welcome-file-list>
</web-app>

br.com.testes.server.guice.GuiceServletConfig
guiceFilter
com.google.inject.servlet.GuiceFilter
guiceFilter
*
缓存过滤器
br.com.testes.server.filter.CacheFilter
缓存过滤器
/gwt/*
杜松
com.google.gwt.junit.server.JUnitHostImpl
杜松
/br.com.digitaldoc.detran.DetranJUnit/junithost/*
杜松
/Testes/junithost/*
Testes.html
我做错什么了吗?
提前感谢。

我用maven创建了一个新项目,它成功了。我想不出这里发生了什么


如果有人有更新,请告诉我。谢谢。

我也有同样的问题,它是由Eclipse引起的

在项目首选项中,“Google->Web应用程序->war目录”设置被设置为/src/main/webapp。通过此设置,Eclipse将rpc存根(以及其他内容)生成到WEB-INF directroy中,然后由maven在构建应用程序时复制。我不知道为什么,但eclipse在构建时没有清理这些文件。因此使用了旧的rpc存根而不是新的


此问题的解决方案是从webapp目录(和子目录)中删除所有生成的文件,并将“Google->Web应用程序->war目录”更改为您的目标/目录。至少对我来说是这样

对于maven,服务器只需使用一个不是我的web.xml,因此,它不会启动de-guice servlet,操作也不起作用。我不知道如何解决这个问题,我只是从我的项目中“删除”maven,现在我以“旧”的方式(使用ant等…)完成项目。