繁体   English   中英

GWT错误:“无法将类型'com.extjs.gxt.ui.client.data.BasePagingLoadConfig'分配给'com.google.gwt.user.client.rpc.IsSerializable”

[英]Error in GWT: “ Type 'com.extjs.gxt.ui.client.data.BasePagingLoadConfig' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable”

您好朋友,我正在开发GWT应用程序,当我单击应用程序中的选项卡时,出现此错误:

 [WARN] deviceGroupServlet: An IncompatibleRemoteServiceException was thrown while processing this call.
com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: Type 'com.extjs.gxt.ui.client.data.BasePagingLoadConfig' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer. For security purposes, this type will not be deserialized.
    at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:315)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:206)
    at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
    at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1097)
    at org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:78)
    at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:131)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
    at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
    at org.eclipse.kapua.app.console.filter.KapuaWebFilter.executeChain(KapuaWebFilter.java:44)
    at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
    at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
    at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
    at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
    at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
    at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Caused by: com.google.gwt.user.client.rpc.SerializationException: Type 'com.extjs.gxt.ui.client.data.BasePagingLoadConfig' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer. For security purposes, this type will not be deserialized.
    at com.google.gwt.user.server.rpc.impl.LegacySerializationPolicy.validateDeserialize(LegacySerializationPolicy.java:127)
    at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserialize(ServerSerializationStreamReader.java:550)
    at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:119)
    at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader$ValueReader$8.readValue(ServerSerializationStreamReader.java:138)
    at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserializeValue(ServerSerializationStreamReader.java:385)
    at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:303)

该“ deviceGroupServlet”是此类:

public class GwtDeviceGroupServiceImpl extends KapuaRemoteServiceServlet implements GwtDeviceGroupService{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    @Override
    public GwtDeviceGroup create(GwtDeviceGroupCreator gwtDeviceGroupCreator)
            throws GwtKapuaException {
       GwtDeviceGroup gwtDeviceGroup = null;
       try {
        KapuaLocator locator = KapuaLocator.getInstance();
        DeviceGroupFactory factory = locator.getFactory(DeviceGroupFactory.class);
        KapuaId scopeId = KapuaEid.parseCompactId(gwtDeviceGroupCreator.getScopeId());
        DeviceGroupCreator creator = factory.newCreator(scopeId, gwtDeviceGroupCreator.getDevId());
        DeviceGroupService service = locator.getService(DeviceGroupService.class);
        DeviceGroup deviceGroup = service.create(creator);
        gwtDeviceGroup = KapuaGwtModelConverter.convert(deviceGroup);
    } catch (Exception e) {
       KapuaExceptionHandler.handle(e);
    }
       return gwtDeviceGroup;
    }

    @Override
    public void delete(String id, String deviceGroupId) throws GwtKapuaException {
        try{
            KapuaId scopeId = KapuaEid.parseCompactId(id);
            KapuaId devGroupId2 = KapuaEid.parseCompactId(deviceGroupId);
            KapuaLocator locator = KapuaLocator.getInstance();
            DeviceGroupService service = locator.getService(DeviceGroupService.class);
            service.delete(scopeId, devGroupId2);
        } catch (Exception e) {
           KapuaExceptionHandler.handle(e);
        }


    }

    @Override
    public GwtDeviceGroup find(String id, String devGroupId) throws GwtKapuaException {
        KapuaId scopeId = KapuaEid.parseCompactId(id);
        KapuaId devGroupId1 = KapuaEid.parseCompactId(devGroupId);

        GwtDeviceGroup gwtDeviceGroup = null;
        try {
            KapuaLocator locator = KapuaLocator.getInstance();
            DeviceGroupService service = locator.getService(DeviceGroupService.class);
            DeviceGroup deviceGroup = service.find(scopeId, devGroupId1);
            if (deviceGroup != null) {
                gwtDeviceGroup = KapuaGwtModelConverter.convert(deviceGroup);
            }
        } catch (Exception e) {
            KapuaExceptionHandler.handle(e);
        }
        return gwtDeviceGroup;
    }

    @Override
    public PagingLoadResult<GwtDeviceGroup> query(PagingLoadConfig loadConfig,
            GwtDeviceGroupQuery gwtDeviceGroupQuery) throws GwtKapuaException {
       int totalLength = 0;
       List<GwtDeviceGroup> gwtDeviceGroupList = new ArrayList<GwtDeviceGroup>();
       try {
        KapuaLocator locator = KapuaLocator.getInstance();
        DeviceGroupService service = locator.getService(DeviceGroupService.class);
        DevGroupQuery devGroupQuery = GwtKapuaModelConverter.convertDeviceGroupQuery(loadConfig, gwtDeviceGroupQuery);
        DevGroupListResult devs = service.query(devGroupQuery);
        if (!devs.isEmpty()){
            if (devs.getSize() >= loadConfig.getLimit()) {
                totalLength = devs.getSize();

            }else{
                totalLength = devs.getSize();
            }
            for (DeviceGroup d : devs.getItems()) {
                gwtDeviceGroupList.add(KapuaGwtModelConverter.convert(d));
            }

        }
    } catch (Exception e) {
        KapuaExceptionHandler.handle(e);
    }
       return new BasePagingLoadResult<GwtDeviceGroup>(gwtDeviceGroupList, loadConfig.getOffset(), totalLength);
    }

}

我的朋友遇到了similkar问题,他使用mvn clean install和maven update解决了该问题,但我无法解决该选项的问题。 无论我做什么,此错误仍然存​​在。 有人可以帮我吗?

请参考链接https://www.sencha.com/forum/showthread.php?90592-Paging-Grid-Serialization-with-BasePagingLoadConfig-object 您可能需要在GwtRpcController中进行更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM