问题标签 [apache-commons]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何将 java.util.logging 发送到 log4j?
我有一个现有的应用程序,它针对 log4j 执行所有日志记录。我们使用许多其他库,这些库要么也使用 log4j,要么针对 Commons Logging 进行日志记录,最终在我们的环境中使用 log4j。我们的依赖项之一甚至针对 slf4j 进行日志记录,这也可以正常工作,因为它最终也委托给 log4j。
现在,我想将 ehcache 添加到这个应用程序中以满足一些缓存需求。以前版本的 ehcache 使用 commons-logging,这在这种情况下可以完美运行,但是从1.6-beta1 版本开始,他们已经删除了对 commons-logging 的依赖,并将其替换为 java.util.logging。
不太熟悉 java.util.logging 提供的内置 JDK 日志记录,是否有一种简单的方法可以将发送到 JUL 的任何日志消息记录到 log4j 中,这样我就可以使用现有配置并设置任何即将到来的日志记录来自ehcache?
查看 JUL 的 javadocs,看起来我可以设置一堆环境变量来更改LogManager
使用的实现,也许可以使用它来将 log4j 包装Logger
在 JULLogger
类中。这是正确的方法吗?
具有讽刺意味的是,当(大多数)世界其他地方使用 3rd 方库时,库使用内置 JDK 日志记录会引起如此头痛。
java - 从 Apache Commons-Exec 捕获大量输出
我正在通过执行ffmpeg
并将其输出捕获到标准输出来用 Java 编写视频应用程序。我决定使用 Apache Commons-Exec 而不是 Java Runtime
,因为它看起来更好。但是,我很难捕获所有输出。
我认为使用管道将是可行的方法,因为它是进程间通信的标准方式。但是,我使用PipedInputStream
and的设置PipedOutputStream
是错误的。它似乎有效,但仅适用于流的前 1042 个字节,奇怪的是恰好是PipedInputStream.PIPE_SIZE
.
我不喜欢使用管道,但我想避免使用磁盘 I/O(如果可能的话),因为速度和数据量(512x384 分辨率的 1m 20s 视频会产生 690M
个管道数据)。
关于处理来自管道的大量数据的最佳解决方案的想法?我的两个课程的代码如下。(是的,sleep
很糟糕。对此有什么想法? wait()
和notifyAll()
?)
WriteFrames.java
YUV4MPEGPipeParser.java
java - 如何使用 Apache Commons DirectoryWalker?
我想弄清楚如何使用 Apache Commons IO DirectoryWalker
。很容易理解如何子类化DirectoryWalker
.
但是如何开始在特定目录上执行它呢?
java - 与多个协作者进行单元测试
今天我遇到了一个非常困难的 TDD 问题。我需要通过 HTTP POST 与服务器交互。我找到了 Apache Commons HttpClient,它可以满足我的需求。
然而,我最终得到了一堆来自 Apache Commons 的协作对象:
我有一个PostMethod
对象,一个RequestEntity
对象和一个HttpClient
对象。我觉得通过 ala 依赖注入比较舒服HttpClient
,但是我该怎么处理其他合作者呢?
我可以创建一堆工厂方法(或工厂类)来创建协作者,但我有点担心我会嘲笑太多。
跟进
感谢您的回答!我剩下的问题是这样的方法:
如何正确验证返回的值来自post.getResponseBodyAsString()
?post
我也必须嘲笑client
吗?
.net - .Net 中的 Apache Commons IO
是否有类似 Apache Commons IO for .Net 的库?
我正在寻找以下功能:
- IOUtils.toByteArray(Stream);
- IOUtils.toString(Stream);
- FileUtils.write*();
- 目录行者。
java - .Net 是否有 org.apache.commons.lang.Validate 的实现?
.Net 是否有 org.apache.commons.lang.Validate 的实现?
python - Python 等效于 PropertyUtilsBean
我想知道,是否有与 Apache commons 的 PropertyUtilsBean 等效的 Python?
编辑:
例如,我希望能够完成这项任务
给定 "y[2].z" 作为字符串。
请注意,我问只是因为我不想重新发明轮子:)
java - Java TelnetClient 在“按任意键继续”时挂起
我有一个在 Linux 上运行的 Java 程序,并使用org.apache.commons.net.telnet.TelnetClient
并执行一些命令远程登录到远程服务器。问题是当它到达一个要求用户“按任意键继续......”的输出显示时,它会间歇性挂起只有 3 台服务器有问题。此外,当我在 Windows 机器上运行相同的程序时,它一直都在工作。
我想知道是否有其他人遇到过这样的问题?
在测试服务器上,每次测试时我都可以让它挂起。我试图发送不会导致它挂起但没有运气的其他命令。我已经尝试了所有的回车、换行、添加字符和换行。似乎没有什么可以让它客户端继续。
忘了提到刷新缓冲区是我想到的第一件事。我将flush命令放在我认为可能有用的任何地方。
我还会提到,当我运行它并观察写入行的输出时,它确实找到了“按任意键”并继续运行,但挂起终端不会继续。
我打电话的代码:
StackTrace:java.net.SocketTimeoutException:在 java.io.BufferedInputStream.fill(BufferedInputStream.java) 的 java.net.SocketInputStream.read(SocketInputStream.java:129) 的 java.net.SocketInputStream.socketRead0(Native Method) 读取超时:218) 在 java.io.BufferedInputStream.read(BufferedInputStream.java:237) 在 java.io.FilterInputStream.read(FilterInputStream.java:66) 在 java.io.PushbackInputStream.read(PushbackInputStream.java:122) 在 org .apache.commons.net.io.FromNetASCIIInputStream.__read(FromNetASCIIInputStream.java:77) at org.apache.commons.net.io.FromNetASCIIInputStream.read(FromNetASCIIInputStream.java:175) at java.io.BufferedInputStream.fill(BufferedInputStream .java:218) 在 java.io.BufferedInputStream.read(BufferedInputStream.java:237) 在 org.apache.commons.net.telnet.TelnetInputStream。__read(TelnetInputStream.java:122) at org.apache.commons.net.telnet.TelnetInputStream.run(TelnetInputStream.java:564) at java.lang.Thread.run(Thread.java:619)
挂在哪里:英语 1 6000 4462 26 % 13826 11056 20 %
按任意键继续....
java - 我可以使用 Apache HttpClient 获取响应服务器名称/IP 吗?
我正在使用 Apache HttpClient 3.x 联系一个大 IP,然后它将我的请求重定向到 1-N 机器之一。我们需要知道 N 台机器中的哪台实际上收到了请求,但我不确定如何获取这些信息。我查看了响应标头没有运气,所以我想知道是否真的在任何地方提供了这些信息?是否有我可以用来获取任何其他元数据的帮助程序/实用程序类?
谢谢。
java - Apache 日期验证器模式问题
我正在使用 org.apache.commons.validator.routines.DateValidator 来验证具有简单日期模式“dd/mm/yyyy”的日期
不幸的是,如果我以“1992 年 2 月 2 日”格式传递一个日期,那么它会将其声明为无效日期,并且如果我使用“d/m/yyyy”格式(在 java SimpleDateFormat 中,这两种格式都适用于这两种情况) ,则日期“02/02/1992”无效。
我错过了什么吗?由于某些限制,无法更改代码以使用简单日期格式化程序。
任何想法将不胜感激。谢谢。