小编cen*_*tic的帖子

在参数化测试类中排除非参数测试

JUnit中是否有任何注释可以在参数化测试类中排除非参数测试?

java junit parameterized

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

Apache Commons Net FTPClient和listFiles()

任何人都可以解释我以下代码有什么问题吗?我尝试了不同的主机,FTPClientConfigs,它可以通过firefox/filezilla正确访问...问题是我总是得到空文件列表,没有任何异常(files.length == 0).我使用与Maven一起安装的commons-net-2.1.jar.

    FTPClientConfig config = new FTPClientConfig(FTPClientConfig.SYST_L8);

    FTPClient client = new FTPClient();
    client.configure(config);

    client.connect("c64.rulez.org");
    client.login("anonymous", "anonymous");
    client.enterRemotePassiveMode();

    FTPFile[] files = client.listFiles();
    Assert.assertTrue(files.length > 0);
Run Code Online (Sandbox Code Playgroud)

java ftp-client apache-commons

36
推荐指数
2
解决办法
4万
查看次数

当使用JUnit的@Parameterized时,我可以让一些测试仍然只运行一次

@Parameterized在很多情况下使用多个排列运行测试.这非常有效并且使测试代码本身变得简单和干净.

但是有时候我想让一些测试方法只运行一次,因为它们没有使用参数,JUnit是否有办法将测试方法标记为"singleton"或"run-once"?

注意:这不涉及在Eclipse中运行单个测试,我知道如何做到:)

java junit parameterized junit4

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

调整apache commons日志记录的日志级别?

我有一个简单的控制台应用程序,它使用apache的PDFBox库,后者又使用commons日志记录.我在我的控制台中收到了很多垃圾邮件,我想抑制它:

2011年2月15日下午3:56:40 org.apache.pdfbox.util.PDFStreamEngine processOperator信息:不支持/禁用操作:EI

在我的代码中,我试图重置日志级别无济于事:

Logger.getLogger("org.apache.pdfbox.util.PDFStreamEngine").setLevel(Level.OFF);
Logger.getLogger("org.apache.pdfbox.util").setLevel(Level.OFF);
Logger.getLogger("org.apache.pdfbox").setLevel(Level.OFF);
Run Code Online (Sandbox Code Playgroud)

尽管有这些设置,但消息仍然显示在控制台上.从Commons日志记录中检索日志对象也没有帮助,因为它似乎没有办法设置级别.

有没有办法以编程方式抑制这些消息?或者我是否需要添加配置文件?

java java.util.logging apache-commons-logging

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

如何将Apache Httpd正确配置为Load Balancer,其中某些主机可能不可用

我在多个Java Tomcat实例前面使用Apache Httpd实例作为代理.Apache充当Tomcat实例的负载平衡器.

apache配置基本上如下所示

<Proxy balancer://mycluster>
    BalancerMember ajp://host1:8280 route=jvmRoute-8280
    BalancerMember ajp://host2:8280 route=jvmRoute-8280
    BalancerMember ajp://host3:8280 route=jvmRoute-8280
</Proxy>
<VirtualHost *:80>
ProxyPass / balancer://mycluster/
ProxyPassReverse / balancer://mycluster/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

当在Tomcat实例中配置AJP端口时,这基本上有效.请求将发送到其中一个主机,负载将分布在Tomcat实例中.

然而,我发现只要其中一个主机不可用,Httpd内部就会出现非常长的延迟,即似乎Apache不记得其中一个主机不可用并且反复尝试将请求发送到丢失的主机而不是将其发送到其中一个可用主机并在稍后的某个时间尝试发生故障的主机.

有没有办法配置mod_proxy et.al. 从Apache Httpd支持这样的故障转移场景,即拥有多个主机,并且当一个主机出现故障时不会造成巨大延迟?Apache应该定期检查后台哪些主机已经消失,而不是任何请求.

我确实发现HAProxy似乎更适合这种事情,但我更愿意坚持使用Apache,原因有很多.


更新

与此同时,我发现我的问题的一部分是由客户端引起的,这些客户端使连接保持无限开放,因此没有更多的连接/线程可用.

因此,我将问题更改为:您将使用哪些配置选项来最小化此类效果?即在这种情况下允许许多打开的连接或快速关闭它们?否则这听起来像我当前配置的一个非常容易的DOS攻击?

apache proxy load-balancing

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

安装Xcode后,哪里有铿锵声?

我安装了最新版本的Xcode.

gcc,cc,clang,它们中的任何一个存在于终端中.

如何在Xcode使用的终端中找到c编译器?

macos xcode

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

如何将单元格格式设置为Text

我正在使用Apache-POI 3.14.我需要将单元格锁定为"文本"格式.我单元格中的数据可能都是数字,但仍然被认为是一个字符串.当我写单元格时,我这样做:

cell.setCellValue("001");
cell.setCellType(Cell.CELL_TYPE_STRING);
Run Code Online (Sandbox Code Playgroud)

当我在Excel中打开输出工作簿时,单元格包含正确的值("001"),并在角落中显示一个小的绿色三角形.将鼠标悬停在感叹号上会显示悬停文本The number in this cell is formatted as text or preceded by an apostrophe.当我查看单元格格式(右键单击 - >格式单元格)时,"类别"显示为"常规".我希望这是"文字".

当用户通过仅输入数字来修改单元格中的值时,就会出现问题.因为"类别"是"常规",所以输入值并显示为数字,删除前导零和右对齐.

如何获得与Excel的"格式单元格"对话框相同的结果?

java excel apache-poi

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

以编程方式关闭Jersey记录

在我的输出中,我有来自Jersey的JUL记录消息

03.12.2010 14:14:55 com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
Run Code Online (Sandbox Code Playgroud)

以编程方式我想把它们关掉,所以我尝试了

Logger.getLogger("com.sun.jersey.api.core.PackagesResourceConfig").setLevel( Level.SEVERE );
Run Code Online (Sandbox Code Playgroud)

要么

Logger.getLogger("com.sun.jersey").setLevel( Level.SEVERE );
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

有趣的是这个全局配置有效:

Logger.getLogger( "com" ).setLevel( Level.SEVERE );
Run Code Online (Sandbox Code Playgroud)

要么

Logger.getLogger( "" ).setLevel( Level.SEVERE );
Run Code Online (Sandbox Code Playgroud)

为什么?

java rest logging jersey java.util.logging

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

如何打印出 Gradle 多项目构建中的所有依赖项?

我有一个 Gradle 多项目构建,其中包含一个主目录,其中公共定义位于其中,一些项目通过include语句在 settings.gradle 中定义。

构建、测试、运行一切正常,但通过任务显示依赖项dependencies不起作用,它只打印:

$ g dependencies
master
:dependencies

------------------------------------------------------------
Root project
------------------------------------------------------------

No configurations

BUILD SUCCESSFUL
Run Code Online (Sandbox Code Playgroud)

这样做gradle :project1:dependencies的主目录按预期工作。

我怎样才能让 Gradle 打印出整个依赖树,包括包含的所有项目的所有第三方库?

dependency-management gradle

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

如何使用Java 10检测拉链炸弹

Apache POI定期打开zip文件,因为Microsoft Excel/Word/...文件是较新格式的zip文件.为了防止某些类型的拒绝服务攻击,它在打开Zip文件时不具有扩展大量扩展的文件的功能,因此可以通过提供一个小的恶意文件来淹没主内存未压缩到内存中.Apache POI称这种zip-bomb保护.

在Java 9之前,它可以通过反射使用一些解决方法将计数InputStream注入ZipFile/ZipEntry以检测扩展数据中的爆炸,这样就可以防止压缩炸弹.

但是在Java 10中,这是不可能的,因为ZipFile的实现以一种阻止这种方式的方式改变了(在ZipFile中硬编译为ZipFile $ ZipFileInputStream).

因此,我们正在寻找一种不同的方法来计算提取期间提取的字节数,以便在压缩率达到某个限制时能够立即停止.

有没有办法在不诉诸反射的情况下以不同的方式进行拉链炸弹检测?

java security zip apache-poi

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