小编Séb*_*omp的帖子

NoClassDefFoundError:从Eclipse运行GWT + GAE时的GuiceServletContextListener

当我尝试从Eclipse运行我的项目作为WebApplication时,我有以下错误:

[WARN] failed com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@4b903fd{/,D:\Dev\Projects\The Five Orbs\trunk\target\fiveorbs-0.1}: java.lang.NoClassDefFoundError: com/google/inject/servlet/GuiceServletContextListener
[WARN] failed JettyContainerService$ApiProxyHandler@eb4d977: java.lang.NoClassDefFoundError: com/google/inject/servlet/GuiceServletContextListener
[WARN] Error starting handlers
java.lang.NoClassDefFoundError: com/google/inject/servlet/GuiceServletContextListener
Run Code Online (Sandbox Code Playgroud)

该类可以在编译时找到(我的自定义GuiceServletConfig扩展GuiceServletContextListener并正确编译).

guice-servlet-3.0.jar库既出现在项目构建路径中,也出现在Eclipse中的Web应用程序运行配置的类路径中.

我的运行配置的Arguments面板具有以下配置:在Program参数中:

-remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -startupUrl TheFiveOrbs.jsp -logLevel INFO -server com.google.appengine.tools.development.gwt.AppEngineLauncher -port 8888 -codeServerPort 9997 -war "D:\Dev\Projects\The Five Orbs\trunk\target\fiveorbs-0.1" com.fiveorbs.TheFiveOrbs
Run Code Online (Sandbox Code Playgroud)

在VM参数中:

-javaagent:D:\Dev\Programs\appengine-java-sdk\lib\agent\appengine-agent.jar -Xmx512m -Dappengine.sdk.root=D:\Dev\Programs\appengine-java-sdk
Run Code Online (Sandbox Code Playgroud)

当我运行mvn gae:从Maven的命令提示符运行时,一切都很好 - 服务器正常启动并且没有显示异常.

我一直在努力解决这个问题几个小时,实在无法理解它为什么会发生.

提前感谢您提供的任何提示.

塞巴斯蒂安

eclipse gwt google-app-engine guice

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

IntelliJ Lombok - src/integration-test 类看不到生成的 lombok 代码

我正在使用 IntelliJ IDEA 2016.3 + lombok 插件,其结构如下:

在此输入图像描述

编辑:这是模块内容根配置:

在此输入图像描述

src/main/java和中的一切都按预期工作src/test/java,但src/integration-test和中的类src/end-to-end-test看不到生成的 lombok 代码(因此没有自动完成)。

不过,我仍然可以毫无问题地运行测试。

有谁知道我应该做什么才能从这些其他测试源文件夹的自动完成中受益?

谢谢!

java intellij-idea lombok intellij-lombok-plugin

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

Java - 对象池与新对象实例化的性能

我目前正在尝试为竞赛构建一些代码执行优化,并且正在研究ObjectPool模式以支持对象重用而不是新的对象实例化.

我已经组建了一个小项目(和唯一的测试类)来调查我看到和不理解的一些事情.

我在做什么:

  • 使用new()和Pool.get()操作比较5 000 000次迭代的非常简单对象的创建
  • 玩三个轴,运行和不运行所有测试:
    • 在进行测量之前运行循环一次的"预热"
    • 将新创建的对象分配给局部变量并将其用于某些计算
    • 使用fixed vs random参数作为参数

我得到的结果是: Figures are for new instantiation vs with object pool for 5 000 000 iterations without_warmup_without_new_object_use_with_random_parameters: 417 vs 457 without_warmup_without_new_object_use_with_fixed_parameters: 11 vs 84 without_warmup_with_new_object_use_with_random_parameters: 515 vs 493 without_warmup_with_new_object_use_with_fixed_parameters: 64 vs 90 with_warmup_without_new_object_use_with_random_parameters: 284 vs 419 with_warmup_without_new_object_use_with_fixed_parameters: 8 vs 55 with_warmup_with_new_object_use_with_random_parameters: 410 vs 397 with_warmup_with_new_object_use_with_fixed_parameters: 69 vs 82

我从中注意到了什么:

  • 在实例化新对象而不重用它时,使用固定参数会产生巨大影响.我的猜测是编译器正在进行某种优化并发现没有副作用并且会完全删除对象实例化,但是将perfs与空循环进行比较表明仍然会发生某些事情
  • 使用固定参数对新Object()的速度有显着影响(虽然不太明显),在某些情况下使其比对象池版本更快
  • 对象池在"现实生活"场景中更快(即重用新对象并使用一些随机参数),但在大多数情况下都没有,这也暗示了编译器优化.

我在这里寻找的是理解这些结果,并获得我可以阅读的文档/书籍的指示,以便充分了解在这些情况下幕后发生的事情.

谢谢!

java performance object-pooling

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

如何制造类似魔兽般的冷却效果?

我目前正试图制作类似于"魔兽世界"中可以看到的冷却效果.(看到上面有2米文字的广场?想法是以圆形的方式让方形''变亮'',也在http://www.youtube.com/watch?v=R51QXmkyelQ 0:23中说明).我正在使用GWT,所以我主要是寻找使用纯CSS和/或javascript来实现这一目标的方法.

为了达到这个目的,我只需要能够创建一个类似于1中暗区的方形图像.然后我可以将这个图像叠加到我的主图像中,并使用计时器来制作假象.

但是我不知道如何创建这样的图像.似乎可以仅使用CSS创建形状,但我无法理解是否以及如何创建我需要的东西是可能的.

我也发现了一些使用Silverlight的东西,但它不是我的选择.

我不确定我是否表达了我的需要.如果是这种情况,我会非常乐意添加说明.

提前感谢任何提示,
SébastienTromp

javascript css gwt

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

如何获得<div>的渲染大小

我有一个FlowPanel,其高度是固定的(它实际上是其父高度的百分比,这是固定的).
在这个面板中,我添加了几个div元素.使用CSS,我将其高度设置为其父级的100%.
我想要做的是使用javascript将其宽度设置为等于其高度.

我遇到的问题是我不知道何时运行这个javascript.我尝试将它添加到onLoad()我的容器的方法,但高度尚不知道(getOffsetHeight()返回0).

我看了类似的问题(比如GWT - 检索未显示的小部件的大小),但它们并不完全相同.

size gwt

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

在f:verbatim里面的getters在表单提交之前调用

我有以下页面:

<h:form id="gameSelectionForm">
    <h:selectOneMenu id="gameSelection">
        <f:selectItems value="#{gameBean.gameIds}" />
    </h:selectOneMenu>
    <h:commandButton id="gameSelector" value="Play" action="#{gameBean.changeGame}"  />
</h:form>

<h:panelGroup id="gameDiv">
    <f:verbatim>
        <iframe src="/levelup/resources/games/#{gameBean.gameId}/#{gameBean.htmlPage}"  width="700px" height="800px" frameborder="0"/>
    </f:verbatim>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)

当我点击"gameSelector"按钮时,这里是事件序列:1.调用gameBean.getGameId和gameBean.getHtmlPage 2.调用gameBean.changeGame 3.刷新页面.

我的问题在于1.和2. changeGame修改了getGameId和getHtmlPage使用的gameBean变量.因此,我希望它首先执行,以便在刷新其他面板时,它们包含正确的数据.

请注意,此问题似乎只发生在gameDiv元素中的调用(其他变量已正确刷新).

您是否知道我可以做什么来恢复1.和2.的顺序,以便changeGame()方法是第一个被调用的?

我在Tomcat 7.0上使用JavaServer Faces 2.0.

提前致谢

java jsf verbatim

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

JSF - 在引发WARN ValidatorException时阻止validationFailed

我有一个表单,它的字段使用验证器.这些验证器可以发回Severity.SEVERITY_ERROR或Severity.SEVERITY_WARN消息,如图所示:

if (!isInMainFamily) {
    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_WARN, "You should make sure to tag your competency in at least one main category", null);
    throw new ValidatorException(message);
}
Run Code Online (Sandbox Code Playgroud)

但是,SEVERITY_WARN消息对我没有阻止.它们只是告诉用户他们应该更正输入的一种方式,但不会阻止他们提交表单并保存他们的数据.

但是,似乎抛出任何类型的ValidatorException将FacesContext标记为"validationFailed",然后阻止提交表单.

有办法解决这个问题吗?还是我误解了什么?

非常感谢你的帮助,
塞巴斯蒂安

validation jsf

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