小编Mar*_*ans的帖子

GWT - RPC SerializationException

自从我做GWT以来已经有一段时间了,我需要快速做一些小事.我设置了一些东西,现在我需要一个RPC,但它失败了.

RPC应该给我一个ArrayList,而Vacancy位于#projectname#.client.model中.调用在#projectname#.client.model中进行.
我的服务的接口位于#project#name.client.Service中.
最后,调用当然是#projectname#.server.
空缺实现了IsSerializable.我从运行RPC获得的异常如下:

Starting Jetty on port 8888
[WARN] Exception while dispatching incoming RPC call
com.google.gwt.user.client.rpc.SerializationException: Type 'firsteight.client.model.Vacancy' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized.: instance = firsteight.client.model.Vacancy@15fdd2f
    at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:619)
    at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:126)
    at com.google.gwt.user.client.rpc.core.java.util.Collection_CustomFieldSerializerBase.serialize(Collection_CustomFieldSerializerBase.java:44)
    at com.google.gwt.user.client.rpc.core.java.util.ArrayList_CustomFieldSerializer.serialize(ArrayList_CustomFieldSerializer.java:39)
    at com.google.gwt.user.client.rpc.core.java.util.ArrayList_CustomFieldSerializer.serializeInstance(ArrayList_CustomFieldSerializer.java:51)
    at com.google.gwt.user.client.rpc.core.java.util.ArrayList_CustomFieldSerializer.serializeInstance(ArrayList_CustomFieldSerializer.java:28)
    at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeImpl(ServerSerializationStreamWriter.java:740)
    at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:621)
    at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:126)
    at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter$ValueWriter$8.write(ServerSerializationStreamWriter.java:153)
    at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue(ServerSerializationStreamWriter.java:539)
    at com.google.gwt.user.server.rpc.RPC.encodeResponse(RPC.java:616)
    at …
Run Code Online (Sandbox Code Playgroud)

java gwt rpc

13
推荐指数
2
解决办法
3万
查看次数

安装了Egit(随Juno一起提供),但根本没有显示

我想在eclipse中使用GIT,最好是EGit,因为它得到了eclipse社区本身的支持.然而,尽管eclipse声称安装了所需的插件,但它并没有出现在透视图,导入和设置菜单中.

我正在使用Eclipse Juno for Java EE,并确认了以下安装: 已安装的功能 当我更新软件时,没有更多可用的更新.当我去Egit或JGit的存储库时,eclipse告诉我已经安装了插件.

窗口>首选项>团队不包含Git项目,仅包含CVS和SVN.导入项目不包含Git选项.透视窗口不包含Git repo选项.

eclipse-plugin egit jgit eclipse-juno

13
推荐指数
2
解决办法
9054
查看次数

在Jersey 2中使用默认的Providers/MessageBodyWriters

刚刚开始使用Jersey,我一直试图在最新的Jersey文档" 构建响应 "中重现这个简单的例子.据我所知,这部分应该说明如何Response以及如何ResponseBuilder使用它来轻松地将响应与Entity<T>响应内容一起返回.

现在,文档声明默认支持几种数据类型(此处:' Representations和Java types ').String其中最重要的是,匹配任何媒体类型.

在我尝试的所有变化中,以下是最简单的:

@POST
public Response post() {
    URI createdUri;
    try {
        createdUri = new URI("http://test.lan");
    } catch (final URISyntaxException e) {
        throw new WebApplicationException(e);
    }

    return Response.created(createdUri).entity(Entity.text("someContent")).build();
}
Run Code Online (Sandbox Code Playgroud)

在调用请求时,我总是得到相同的错误(下面的完整堆栈跟踪): org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=text/plain, type=class javax.ws.rs.client.Entity, genericType=class javax.ws.rs.client.Entity.

我相信它说的是找不到这个Entity泛型类型的合适提供者.但是,应该支持字符串OOTB?

我发现这StringMessageProvider可能是这个提供程序的Jersey 1实现,而我在Jersey 2库中找到的最接近的相关类org.glassfish.jersey.message.internal是jersey-common中的类.在众多提供商StringMessageProvider中,我认为这是一个潜在的预期提供商.

我已经查找了这个问题,虽然有很多人在错误地尝试使用自定义提供程序时得到了这个,但我发现默认的OOTB提供程序无法正常工作.

我已经检查了我的libs,现在我的pom(以及其他)中有以下依赖项:

  • 新泽西州容器servlet的核心
  • 球衣的客户端
  • 球衣常见
  • 球衣服务器

我已经在线查看,但这似乎是我所需要的,尽管我还没有确定在jar中找到了适合String和JAXB/JSON的提供程序类.

上下文

  • Maven项目
  • 与tomcat servlet-api 6.0.29
  • 所有提到的球衣库的2.6版本
  • Eclipse kepler
  • 使用tomcat6 …

rest jax-rs java-6 jersey-2.0 server

9
推荐指数
1
解决办法
3万
查看次数

添加System.out.println()会减慢执行速度(很多)?

我有一个带有switch语句的while循环:

while(true) {
        switch(state) {
        case LOADING :
            //THIS IS THE IMPORTANT PART
            //view loading screen (already set by default)
            contentPane.repaint();
            if(tick == 400000) {
                //state = GameState.MENU;
                System.out.println("Reached " + gameTick);
            }
            break;
        case MENU :
            //view menu
            break;
        //some other cases without content, left them out here
        }
        tick++;
        if(tick < 400000) {
                System.out.println(tick);
        }
        if(tick == Long.MAX_VALUE) {
            tick = 0;
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在这个代码执行得很好,它显示了加载屏幕(只要重复调用它重复调用就会在其上移动点,所以我确切知道它何时停止),并且输出计数从1到400000以及该数字版画

399998
399999
Reached 400000    
Run Code Online (Sandbox Code Playgroud)

(最后3行输出)

应用程序全屏显示,当我alt + tab out时,计数器通常在130K左右,我看它移动到400K.

但是,如果我删除打印此数字的if语句:

if(tick < 400000) …
Run Code Online (Sandbox Code Playgroud)

java while-loop

4
推荐指数
1
解决办法
2321
查看次数

Modulo运算符在Java中提供意外输出

我在Java中有以下工作方法:

/**
 * Determines if n is a power of z
 * 
 * @param z the number that n may be a power of
 * @param n the number that may be a power of z
 * @return true if n is a power of z 
 */
public boolean isPowerOf(int z, int n) {
    double output = Math.log(n) / Math.log(z);
    if(output % 1 > 0) {
        return false;
    } else {
        return true;
    }
}

isPowerOf(3, 729); //returns true, because …
Run Code Online (Sandbox Code Playgroud)

java mathematical-optimization floating-accuracy modulo

4
推荐指数
1
解决办法
609
查看次数

alfresco获取特定用户的用户组成员资格

使用alfresco REST api,我已经能够查询用户组和用户,并且能够获得属于特定组的孩子的用户.

但是,我现在需要做相反的事情; 了解某个用户的所有用户组成员身份.我似乎无法找到webscript,或任何其他方式来做到这一点.

为了方便实现,我不想写一个自定义的webscript,除了不熟悉如何这样做.

项目设置

我在GWT/GXT中编程,使用Apache的openCMIS并调用RESTful api进行露天.

我可以将所有组加载到alfresco中,然后为我的用户检查每个组的子项,但这似乎不太可能,因为此功能将经常被触发,并且必须能够在大型实现环境中顺利运行.

java rest gwt alfresco opencmis

3
推荐指数
1
解决办法
2582
查看次数

TabPanel中的gwt ScrollPanel:没有垂直滚动条

编辑

我通过调整其中的组件来修复空白行为VerticalPanel,这似乎对控制台错过了某个面板的维度产生了影响.我不太明白.

但是,我仍然没有看到任何显示垂直滚动条的面板.

在GWT项目中,我有以下结构:

DockLayoutPanel
    North (header)
    Center (body)
    South (footer)
/DockLayoutPanel
Run Code Online (Sandbox Code Playgroud)

身体

SplitLayoutPanel$1
    West
        SplitLayoutPanel$2
             North
             Center
                 TabPanel
                     ScrollPanel
                         VerticalPanel
                             -Several widgets-
                         /VerticalPanel
                     /ScrollPanel
                 /TabPanel
             /Center
        /SplitLayoutPanel$2
    /West
    Center
/SplitLayoutPanel$1
Run Code Online (Sandbox Code Playgroud)

我的问题ScrollPanel在于TabPanel,它本身包含一个VerticalPanel包含几个小部件.这是每一个真正TabTabPanel.

我的问题是,虽然SplitLayoutPanel$2中心的所有容器的宽度都有100%的宽度,但是它ScrollPanel包含一个水平滚动条,旁边有一个相当大的白色区域VerticalPanel,而它们的绝对指标大小相同.

说明情况

TabPanel概述http://i48.tinypic.com/1fu448.png

这是TabPanel,有ScrollPanel,和VerticalPanel.请注意水平滚动条是如何存在,同时TabPanel,ScrollPanelVerticalPanel具有相同的宽度.向右滚动会产生白色区域.

滚动和垂直面板详细信息

ScrollPanelVerticalPanel所有体育598px的绝对宽度.西部组件的DockLayoutPanel大小为600,因此匹配.还要注意如何启动开发人员控制台使滚动条消失.实际上,整个面板已经消失在其后面,并且没有垂直滚动条弹出.

滚动

当向右滚动条形时,VerticalPanel部分放置在屏幕外,并ScrollPanel显示此空白.显然,我不希望空白存在,因此根本不需要滚动条.在这种情况下,所有面板仍具有相同的宽度:598px.SplitLayoutPanel …

css gwt scroll uibinder

3
推荐指数
1
解决办法
4899
查看次数

露天共享中的自定义(单独)元数据表单

看似简单的要求

我需要一个包含 4 个字段(文本字段、权限和日期 x2)的表单,它的行为与编辑元数据表单完全一样,这些字段代表节点上的 4 个属性。

但是,此表单应作为与编辑元数据表单分开的 UI 提供,最好采用 UI 操作的方式;DocLibActions 中有一个带有图标的按钮,单击该按钮时会弹出一个窗体。

遇到的问题

我使用 UI 操作机制的问题是我无法将字段链接到属性。因此,每次打开表单时,都不会加载节点上可用的当前值。此外,不会自动强制执行适当的约束。我也想不出另一种方法来实现这个要求。

UI动作方式

从 UI 操作开始,我尝试使用form.destination保存noderef 的模型变量访问自定义字段控件 ftl 中的节点。但是,当我想通过它获取节点属性时,结果发现companyhomeftl 中所需的对象对表单控件不可用。

然后我继续编写一个自定义 java webscript,它使用给定的 nodeRef 返回我需要的 4 个属性,并使用 javascript 从我的自定义字段控件中调用它。这提出了以下两个问题:

  • 我必须自己将检索到的值传递给表单字段,这对date.ftl控件提出了相当大的挑战,但对控件来说更是挑战authority.ftl
  • 从客户端 javascript 调用 webscript 会增加另一个往返。

当前表单定义

<config evaluator="string-compare" condition="my-action">
      <forms>
         <form>
            <field-visibility>
               <show id="textProperty" />
               <show id="authorityProperty" />
               <show id="dateProperty1" />
               <show id="dateProperty2" />
            </field-visibility>

            <appearance>
                <set id="generalSet" appearance="bordered-panel" label="General" />
                <field id="textProperty" label="textProp" set="generalSet">
                    <control template="/org/alfresco/components/form/controls/propertyBasedTextfield.ftl"> …
Run Code Online (Sandbox Code Playgroud)

forms customization alfresco alfresco-share

1
推荐指数
1
解决办法
2146
查看次数