Tag: gwt

何时在客户端和通用GWT代码中使用assert

StackOverflow上有几个问题讨论了何时应该使用assert语句而不是抛出一些exception的问题。 ( 这里 , 这里 , 这里 , 这里和这里的例子。 但是,我开始怀疑assert-versus-throw的传统智慧是基于您在JVM中运行的假设。 在GWT世界中,您的Java被音译为JavaScript并在浏览器的上下文中运行,这一组权衡感觉不同:在浏览器中运行时,断言总是被编译掉,而任何使JavaScript的大小变小的东西是一个胜利,特别是如果你的网络应用程序必须在手机上运行。 断言确实可以在DevMode中运行,因此它们在开发过程中具有实用性。 所以我的问题是:有没有人考虑过一套最佳实践规则来管理如何在GWT中使用断言语句? 我有我的团队成员问我“因为断言被编译出来,拥有它们是否有意义?”,我想对他们有一个好的答案。 此外,是否有人对Google的GWT开发人员在此主题上的理念有所了解? 查看GWT源代码,他们似乎经常使用它。

GWT Maven Eclipse插件 – 由于重复类而导致编译失败

我正在使用Eclipse 3.5(Galileo)和m2eclipse以及安装的GWT Eclipse插件。 我使用gwt-maven-plugin原型创建了一个项目。 我创建了一个使用这些类定义的RPC服务: my.package.client.DataService my.package.client.DataServiceAsync my.package.server.DataServiceImpl 当我运行mvn clean ,目标目录被删除(如所示)。 当我运行gwt:compile gwt:run -X -e ,我得到错误: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project MyProject: Compilation failure C:\Devel\EclipseProjects\MyProject\target\generated-sources\gwt\my\package\client\DataServiceAsync.java:[8,7] duplicate class: my.project.client.DataServiceAsync -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project MyProject: Compilation failure C:\Devel\EclipseProjects\MyProject\target\generated-sources\gwt\my\package\client\DataServiceAsync.java:[8,7] duplicate class: my.project.client.DataServiceAsync at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:581) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeForkedExecutions(DefaultLifecycleExecutor.java:685) […]

GWT SuperDevMode断点不起作用

我正在使用IntelliJ,我正在尝试在类中设置断点,有时它可以工作,但有时它会将调试器带入MyApp-0.js文件中,我必须调试神秘生成的javascript。 有没有办法在相应的Java文件中使用断点进行导航? 我正在使用IntelliJ 13.1.2 是的,我的GWT模块使用超级开发模式设置: 编辑: 是的,我在最新版本的Chrome中使用Jetbrains javascript调试插件。 我可以通过访问代码服务器页面手动从我的代码服务器访问我的源图…使用IntelliJ插件我转到http://localhost:9876/sourcemaps/MyApp/我看到源代码。 看看配置在IntelliJ中的样子可能会很有用。

适用于Chrome和Internet Explorer的GWT Developer插件 – 防止安装错误

我正在尝试为Chrome(版本34.0.1847.131 m)安装GWT Developer插件,我收到以下错误“此计算机不支持此应用程序。安装已被禁用。检测到以下问题:”和“NPAPI插件是这个应用程序所必需的“。 有没有解决的办法? 我已按照一个答案的建议安装了Microsoft Visual C ++ 2008 SP1可再发行组件包。 我也试图在资源管理器(版本11)中运行,它要求我下载Firefox的GWT Developer插件。 然后,需要在新窗口中打开内容。 然后我选择打开“gwt-dev-plugin.xpi”。 当它完成下载后,它要求我保存它(如果我打开它只是再次下载)。 有没有解决的办法? 我在Windows 8.1上运行。

使用GWT下载动态文件

我有一个GWT页面,用户输入数据(开始日期,结束日期等),然后这些数据通过RPC调用进入服务器。 在服务器上,我想用POI生成Excel报告,并让用户将该文件保存在本地计算机上。 这是我将测试代码流回客户端的测试代码,但出于某种原因,我认为当我使用RPC时,它不知道如何将文件传输到客户端: public class ReportsServiceImpl extends RemoteServiceServlet implements ReportsService { public String myMethod(String s) { File f = new File(“/excelTestFile.xls”); String filename = f.getName(); int length = 0; try { HttpServletResponse resp = getThreadLocalResponse(); ServletOutputStream op = resp.getOutputStream(); ServletContext context = getServletConfig().getServletContext(); resp.setContentType(“application/octet-stream”); resp.setContentLength((int) f.length()); resp.setHeader(“Content-Disposition”, “attachment; filename*=\”utf-8”” + filename + “”); byte[] bbuf […]

使用Guava Ordering对对象列表进行多标准排序

我有一个类无法实现可比性,但需要根据2个字段进行排序。 我怎样才能用番石榴来实现这个目标? 让我们说课程是 class X { String stringValue; java.util.Date dateValue; } 我有一份清单 List lotsOfX; 我想先根据值字段对它们进行排序,然后根据每个’组’的’value’字段中的dateValue进行排序。 到目前为止我一直在做的是 List sortedList = ImmutableList.copyOf(Ordering.natural().onResultOf(dateValueSortFunction).reverse().sortedCopy(lotsOfX)); sortedList = ImmutableList.copyOf(Ordering.natural().onResultOf(stringValueSortFunction).sortedCopy(sortedList)); function定义为: public class DateValueSortFunction implements Function { @Override public Long apply(X input) { return input.getDateValue().getTime(); //returns millis time } } 和 public class StringValueSortFunction implements Function { @Override public Integer apply(X input) […]

GWT的图表和绘图API

我试图找到一个图表并绘制可以在GWT中使用java而不是javascript使用的api。 我遇到的唯一问题是我发现需要互联网连接,其中此代码将无法连接互联网。 有没有人知道这样的API? 以下是我找到的那些,但又无法使用。 https://code.google.com/p/charts4j我知道这个需要连接。 http://code.google.com/p/gwt-google-apis/wiki/VisualizationGettingStarted 不是100%肯定这一个。 如果有人使用过它,可以告诉我是否需要连接让我知道。 此外,如果有人知道如何让GW swing在GWT中工作,那将是非常棒的。 谢谢

活动巴士审查

我现在开始使用GWT并学习事件总线概念。 我觉得这个解决方案非常复杂。 因此,我试图通过自己编写原型来简化它,以查看所有问题。 首先,我将介绍我对事件总线的理解(可能完全错误)。 我们有这样的活动 public class FooEvent extends GwtEvent { public static Type TYPE = new Type(); //as event type integer ID //for.. hm.. probably some inner use in Event Bus @Override public Type getAssociatedType() { return TYPE; } //for handling @Override protected void dispatch(FooHandler handler) { handler.someMethod(this); } } 处理程序界面 public interface FooHandler […]

如何创建开发/调试和生产设置

我最近无意中部署了我们的游戏typrX的调试版本(在www.typrx.com上打字比赛 – 尝试它很有趣)。 它很快得到纠正,但我知道它可能会再次发生。 在挖掘Google之后,我发现了一些信息,如何创建2个不同的配置文件,一个用于具有调试function的开发模式,另一个用于部署。 这是我从Google IO演示文稿中找到的内容。 有人有这个设置吗? 有人可以解释如何运行吗? MyAppCommon.gwt.xml … … MyAppDebug.gwt.xml …

如何从GWT的序列化策略中删除实现类型?

与此问题相反: 如何向GWT的序列化策略白名单添加类型? GWT正在向序列化策略添加不需要的类型并使我的JS膨胀。 如何手动修剪我的GWT白名单? 或者我应该呢? 例如,如果我将接口List放在GWT RPC服务类上,GWT必须生成处理ArrayList,LinkedList,Stack,Vector等的Javascript,即使我的团队知道我们只会返回一个ArrayList。 我可以让方法的返回类型为ArrayList,但我喜欢依赖于接口而不是特定的实现。 毕竟,也许有一天我们会将其切换并返回例如LinkedList。 在这种情况下,我想强制GWT序列化策略仅针对ArrayList和LinkedList进行编译。 没有堆栈或向量。 这些隐含的限制有一个我能想到的巨大缺点:团队的新成员开始返回Vectors,这将是一个运行时错误。 所以除了标题中的问题,你围绕这个设计的经验是什么?