当前位置: 首页 > 知识库问答 >
问题:

在Ubuntu上使用Tomcat但在WIndows上工作时出现GWT 2.6.0序列化错误

仉臻
2023-03-14

严重:分派传入RPC调用com.google.gwt.user.client.RPC.SerializationException时出现异常:类型'javax.persistence.noResultException‘未包含在此SerializationPolicy可以序列化的类型集中,或者无法加载其类对象。出于安全目的,此类型将不序列化。:instance=javax.persistence.noResultException:未找到queryat com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.Serialize(ServerSerializationStreamWriter.java:667)的实体

我的settingsdao.java中的代码片段

public SettingsDTO findSettingsByName(String name) {
    TypedQuery<SettingsDTO> query = getEntityManager().createQuery("SELECT u FROM SettingsDTO u WHERE u.name = :name", SettingsDTO.class);
    return query.setParameter("name", name).getSingleResult();
}

GWT服务实现中的代码段。

@Transactional(readOnly=true)
public Integer getRemainingAttempts(String username) {
    SettingsDTO settings = settingsDAO.findSettingsByName("STD");
    int maxLogin = settings.getNloginAttempts();
    UserDTO user = userDAO.findUserByName(username);
    int locked = user.getLocked();
    if (locked == -1) {
        return locked;
    } else if (locked >= maxLogin) {
        return 0;
    } else {
        return (maxLogin-locked);
    }
}

共有1个答案

施利
2023-03-14

我认为例外是误导。

应该序列化的每个类都必须包含在序列化策略中。我假设,您在测试中使用的用户与Linux不同。

现在您得到一个NOResultException,并且这个不能被序列化,因为GWT-编译器不知道它应该被序列化(因为它没有在任何接口中定义)。

你可以做两件事:

>

  • 捕获此异常(如另一个答案中所述)
  • 在接口中抛出异常

    公共整数getRemainingAttemptions(String username)抛出NoResultException{

  •  类似资料:
    • 我有一段非常简单的Java代码,在那里我尝试从Java连接到我的Oracle DB。 在Windows下一切正常,但当我尝试在Ubuntu上运行时,我得到了一个错误。 我读了很多书,也试过很多解决方法。这是我的代码: 当我运行它时,我收到一个错误: 连接失败Java.sql.sqlRecoverable异常:IO错误:网络适配器无法在oracle.jdbc.driver.T4CConnection

    • 我正在阅读有关C中线程的教程并测试了以下代码: 我试图使用gcc和g编译此代码,但我总是遇到编译错误。 使用gcc-pthread thread_test.c: /tmp/ccmpQLyp。o: 在函数std::cout'thread_test.cpp: 你能帮忙吗?我必须做些什么才能让这段代码在Linux和Windows上运行吗?

    • Windows---------------: Linux---------- 那么,什么是主要的原因是这个问题,看起来一切都好从其他的选择 Apache Maven 3.6.0(97C98EC64A1FDFEE7767CE5FFB20918DA4F719F3;2018-10-24T14:41:47-04:00)Maven主页:/home/user/tools/Maven/apache-maven

    • 在我的本地计算机上,它是:5.7.19,适用于Linux(x86_64) PS:我在workbench中运行的查询是我在java应用程序中登录的查询。

    • 这个问题在下面的示例中重现。 } 据我所知,发生此异常是因为多个线程试图保存同一个对象。这就是我使用同步块的原因。 null null

    • 当我尝试在ubuntu上安装Yeoman时,我得到了以下错误。 编辑 尝试MortezaLSC的解决方案后-我得到以下错误