小编Ald*_*ian的帖子

如何在不安装大型整个WTP包的情况下将Tomcat 8添加到Eclipse Kepler

好的我正在运行Eclipse Kepler.今天尝试为Tomcat 8设置它,但适配器不会出现在列表中.

用Google搜索了一下,发现TUTOS对SO,nixmashvitalflux,所有款项以同样的方式:下载最新的Eclipse 3.6和WTP在Eclipse目录解压.

但是我不希望我的开普勒全部升级到Luna WTP版本(根据我的理解,这是实际发生的事情).我正在寻找一种只选择服务器适配器的方法.我怎么做?

java eclipse tomcat eclipse-plugin

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

从Logstash文件输入中了解sincedb文件

在Logstash中使用文件输入时,会写入sincedb文件以跟踪受监视日志文件的当前位置.如何理解其内容?

sincedb文件的示例:

 286105 0 19 20678374
Run Code Online (Sandbox Code Playgroud)

logstash

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

由于公共私人领域的矛盾,使用Junit @Rule的CdiUnit测试是不可能的

以下代码段足以重现我的问题:

  • 我设置thrown属性public并获取错误org.jboss.weld.exceptions.DefinitionException: WELD-000075: Normal scoped managed bean implementation class has a public field
  • 或者我删除public修饰符并获取错误org.junit.internal.runners.rules.ValidationError: The @Rule 'thrown' must be public.
  • 我还试图让public修饰符到位并@Dependent在类上添加注释范围,但是出现了错误org.jboss.weld.exceptions.DefinitionException: WELD-000046: At most one scope may be specified on [EnhancedAnnotatedTypeImpl] public @Dependent @ApplicationScoped @RunWith

我删除了所有不必要的代码,但这是一个非常复杂的单元测试,通过CDI进行模拟,服务注入,并且一些测试方法预计会引发异常.

import org.jglue.cdiunit.CdiRunner;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.junit.runner.RunWith;

@RunWith(CdiRunner.class)
public class FooBarTest {

    @Rule
    public ExpectedException thrown = ExpectedException.none();

    @Test
    public void test() {

    }
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,一方面Weld希望所有字段都不公开,因为否则它将无法代理该类,另一方面,JUnit希望规则字段是公共的,因为它使用反射来访问它们setAccessible(true)由于安全管理器处于活动状态,因此不希望使用该方法.如何处理这个悖论? …

java junit cdi junit-rule cdi-unit

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

与同一个 H2 内存数据库建立多个连接

我经常遇到同样的问题:我想使用内存数据库对我的 DAO 执行单元测试。我正在使用 H2,但我相信问题与 HSQLDB 几乎相同。我的单元测试涉及三个步骤:

  • 创建数据库并设置数据库模式(例如使用 SQL 脚本)
  • 在数据库中插入测试所需的数据(例如:使用 DbUnit)
  • 进行实际测试

在非常简单的情况下,可以对所有三个步骤使用完全相同的连接,但是一旦事情变得稍微复杂一点(例如,当使用查询数据库的框架而不是使用直接的PreparedStatements时),每个步骤一个连接需要执行步骤。

问题:一旦连接关闭,数据库似乎就会被删除。怎么解决呢?

java unit-testing jdbc h2

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

使用 ThreadLocal 对象存储 Web 请求元数据是一种不好的做法吗?

我正在开发一个分为几个模块的 j2ee webapp。我有一些元数据,例如用户名和首选项,我想从应用程序的任何地方访问它们,并且可能还收集类似于日志信息但特定于请求的数据并将其存储在这些元数据中,以便我可以选择将其发回作为调试信息给用户。

除了在从上层表示类到下层 daos 的每个方法中传递通用上下文对象或使用 AOP 之外,想到的唯一解决方案是使用与会话 BTW 非常相似的线程本地“上下文”对象,并为对正在进行的请求进行绑定并在响应时解除绑定。

但是这样的事情感觉有点麻烦,因为这打破了几种模式,并且在测试和调试时可能会使事情变得复杂,所以我想问一下根据您的经验是否可以这样进行?

java thread-local jakarta-ee

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

理解运算符优先级

正在修复我们的代码中的错误,发现这个行为不端的奇怪功能:

private String calculate(String a, String b) {
    return a == null ? "" : a + a != null && b != null ? "\n" : "" + b == null ? "" : b;
}
Run Code Online (Sandbox Code Playgroud)

匆匆忙忙,我只是添加了一些括号,让它像这样工作:

private String calculatePar(String a, String b) {
    return a == null ? "" : a + (a != null && b != null ? "\n" : "") + (b == null ? "" : b);
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,这不是最优雅的做法,但两者实际上都来自我编写的(简化的)测试用例示例.

现在我对有缺陷的第一个功能进行了一些测试,这就是我想到的:

  • 如果a == null,它将返回""(空字符串)
  • 如果a!= …

java string ternary-operator conditional-statements

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

在渲染响应阶段究竟发生了什么?

我在我的应用程序中添加了一个受BalusC 代码教程启发的生命周期侦听器,并添加了时间戳以监控每个阶段花费的时间。我原以为“调用应用程序”阶段会花费最长的时间,但是日志让我意识到它花费了大约 827 毫秒,而“渲染响应”阶段花费了 2890 毫秒,然后我想知道在此期间花费了多少时间“渲染响应”阶段。

据我快速浏览后了解规范,在此阶段唯一完成的事情就是“渲染”(并且还保存响应的状态,但在这里无关紧要),而所有应用程序代码都应该更早地调用. 它总是真的吗?

例如,如果我的页面包含一个默认值为 #{myBean.valueAfterPost} 的表单,则 valueAfterPost 的 getter 是在“调用应用程序”期间还是在“渲染响应”期间调用?

什么容易在渲染响应阶段消耗大量时间?

jsf page-lifecycle

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