自从我做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) 我想在eclipse中使用GIT,最好是EGit,因为它得到了eclipse社区本身的支持.然而,尽管eclipse声称安装了所需的插件,但它并没有出现在透视图,导入和设置菜单中.
我正在使用Eclipse Juno for Java EE,并确认了以下安装:
当我更新软件时,没有更多可用的更新.当我去Egit或JGit的存储库时,eclipse告诉我已经安装了插件.
窗口>首选项>团队不包含Git项目,仅包含CVS和SVN.导入项目不包含Git选项.透视窗口不包含Git repo选项.
刚刚开始使用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(以及其他)中有以下依赖项:
我已经在线查看,但这似乎是我所需要的,尽管我还没有确定在jar中找到了适合String和JAXB/JSON的提供程序类.
我有一个带有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中有以下工作方法:
/**
* 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) 使用alfresco REST api,我已经能够查询用户组和用户,并且能够获得属于特定组的孩子的用户.
但是,我现在需要做相反的事情; 了解某个用户的所有用户组成员身份.我似乎无法找到webscript,或任何其他方式来做到这一点.
为了方便实现,我不想写一个自定义的webscript,除了不熟悉如何这样做.
项目设置
我在GWT/GXT中编程,使用Apache的openCMIS并调用RESTful api进行露天.
我可以将所有组加载到alfresco中,然后为我的用户检查每个组的子项,但这似乎不太可能,因为此功能将经常被触发,并且必须能够在大型实现环境中顺利运行.
编辑
我通过调整其中的组件来修复空白行为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包含几个小部件.这是每一个真正Tab的TabPanel.
我的问题是,虽然SplitLayoutPanel$2中心的所有容器的宽度都有100%的宽度,但是它ScrollPanel包含一个水平滚动条,旁边有一个相当大的白色区域VerticalPanel,而它们的绝对指标大小相同.
说明情况
TabPanel概述http://i48.tinypic.com/1fu448.png
这是TabPanel,有ScrollPanel,和VerticalPanel.请注意水平滚动条是如何存在,同时TabPanel,ScrollPanel并VerticalPanel具有相同的宽度.向右滚动会产生白色区域.

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

当向右滚动条形时,VerticalPanel部分放置在屏幕外,并ScrollPanel显示此空白.显然,我不希望空白存在,因此根本不需要滚动条.在这种情况下,所有面板仍具有相同的宽度:598px.SplitLayoutPanel …
看似简单的要求
我需要一个包含 4 个字段(文本字段、权限和日期 x2)的表单,它的行为与编辑元数据表单完全一样,这些字段代表节点上的 4 个属性。
但是,此表单应作为与编辑元数据表单分开的 UI 提供,最好采用 UI 操作的方式;DocLibActions 中有一个带有图标的按钮,单击该按钮时会弹出一个窗体。
遇到的问题
我使用 UI 操作机制的问题是我无法将字段链接到属性。因此,每次打开表单时,都不会加载节点上可用的当前值。此外,不会自动强制执行适当的约束。我也想不出另一种方法来实现这个要求。
UI动作方式
从 UI 操作开始,我尝试使用form.destination保存noderef 的模型变量访问自定义字段控件 ftl 中的节点。但是,当我想通过它获取节点属性时,结果发现companyhomeftl 中所需的对象对表单控件不可用。
然后我继续编写一个自定义 java webscript,它使用给定的 nodeRef 返回我需要的 4 个属性,并使用 javascript 从我的自定义字段控件中调用它。这提出了以下两个问题:
date.ftl控件提出了相当大的挑战,但对控件来说更是挑战authority.ftl。当前表单定义
<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)