我有一个必须在Win或Linux机器上部署的java webapp.我现在想添加log4j用于日志记录,我想使用日志文件的相对路径,因为我不想在每个部署上更改文件路径.容器很可能是Tomcat,但不一定.
这样做的最佳方法是什么?
我正在从现有程序中将一些功能提取到一个单独的库中.这个程序使用Spring进行依赖注入和其他任务,我也想继续在库中使用它.
这个库需要监视文件系统的变化,因此它会启动某种单独的线程来执行此操作.
我真的不知道我对库的初始化有什么选择:
如何初始化库的上下文?我不能假设库用户也会使用Spring,但我可以将Spring与库一起分发.
如何管理文件系统监控线程?期望程序实例化库的主类和调用init或类似的东西是好的设计吗?
如果我finalize()
从程序代码中调用一个对象,当垃圾回收器处理这个对象时,JVM是否仍会再次运行该方法?
这将是一个近似的例子:
MyObject m = new MyObject();
m.finalize();
m = null;
System.gc()
Run Code Online (Sandbox Code Playgroud)
显式调用是否finalize()
会使JVM的垃圾收集器不在finalize()
对象上运行该方法m
?
我正在寻找一个基于Hibernate构建的ActiveRecord模式的Java实现.
在.Net中有一个开源项目Castle Windsor ActiveRecord,它在NHibernate之上实现了ActiveRecord模式.
我正在寻找类似的东西,除了坐在NHiberate persistence frameowork for Java之上.
我有以下代码:
<html>
Run Code Online (Sandbox Code Playgroud)
<style type="text/css">
DIV { display:inline; border: solid red 1px; }
.editable { background:yellow; }
</style>
Run Code Online (Sandbox Code Playgroud)
<div class="editable" contentEditable="true"> This is test text. This is test text.This is test text.This is test text.This is test text.Thihis is test text.This is test text.</div>
<div class="editable" contentEditable="true"> short </div>
<div class="editable" contentEditable="true"> This is test text.This is test text.This is test text.his is test text.Thihis is test text.Thihis is test text.Thihis is test text.Thi </div>
Run Code Online (Sandbox Code Playgroud)
我需要IE7(IE6不需要和FF3.x工作正常)正确包装文本,如果我从div中删除contentEditable ="true"它会这样做.只要尝试使用和不使用contentEditable的代码,你就会明白我的意思.使浏览器窗口足够小,以便您查看文本的包装方式.
谢谢.
前几天,我看到我的一位同事使用sort来排序他从文本文件中复制的一些行.
我一直在尝试自己复制它,我似乎无法找到它.
要求如下:
使用命令行中的sort,以及您需要添加的任何其他配置输入
从剪贴板粘贴要排序的文本
在控制台中获取排序结果
我有一些注释的方法
@Scheduled(fixedDelay = 6000)
private void myScheduledMethod(){
//do something
}
Run Code Online (Sandbox Code Playgroud)
我还有一组属性文件,我在其中配置特定于环境的值.出于测试目的,我希望可以配置延迟的值,理想情况是通过属性文件中的属性.
由于值fixedDelay
必须是常量,我正在寻找一种从属性文件中获取此集的方法,但还没有找到方法.
我希望在我的异步编程(beginInvoke/endInvoke)中有一个异常处理方法,其中如果任何一个线程(beginInvoke)失败,那么我希望所有其他异步处理线程停止工作.请建议一些解决方案?,下面我也附上我的示例代码:
public List<ThreadResultDto> SendMailAsynch(List<ThreadRequestDto> requestDto)
{
List<ThreadResultDto> resultDto = new List<ThreadResultDto>();
List<IAsyncResult> asyncResults = new List<IAsyncResult>();
foreach (ThreadRequestDto t in requestDto)
{
//Create a delegate.
DoSomeAsynchWorkDelegate del = new DoSomeAsynchWorkDelegate(DoSomeAsynchWork);
// Initiate the asynchronous call
IAsyncResult a = del.BeginInvoke(t,null, del);
//IAsyncResult a = del.BeginInvoke(t, null,null);
asyncResults.Add(a);
}
foreach (IAsyncResult ar in asyncResults)
{
// wait for each one to complete, then call EndInvoke, passing in the IAsyncResult.
// We cast ar.AsyncState to a DoSomeAsynchWorkDelegate, as we passed it in as …
Run Code Online (Sandbox Code Playgroud) 我正在测试某个班级.该类在内部实例化一个"GetMethod"对象,该对象被传递给"HttpClient"对象,该对象被注入到测试类中.
我正在嘲笑"HttpClient"类,但我还需要修改"GetMethod"类的一个方法的行为.我正在玩ArgumentCaptor,但我似乎无法在"when"调用中获取实例化对象.
例:
HttpClient mockHttpClient = mock(HttpClient.class);
ArgumentCaptor<GetMethod> getMethod = ArgumentCaptor.forClass(GetMethod.class);
when(mockHttpClient.executeMethod(getMethod.capture())).thenReturn(HttpStatus.SC_OK);
when(getMethod.getValue().getResponseBodyAsStream()).thenReturn(new FileInputStream(source));
Run Code Online (Sandbox Code Playgroud)
响应:
org.mockito.exceptions.base.MockitoException:
No argument value was captured!
You might have forgotten to use argument.capture() in verify()...
...or you used capture() in stubbing but stubbed method was not called.
Be aware that it is recommended to use capture() only with verify()
Run Code Online (Sandbox Code Playgroud) 我正在尝试从队列中编写用于JMS消息处理的多线程实现.
我尝试过使用DefaultMessageListenerContainer和SimpleMessageListenerContainer类.
我遇到的问题是,无论我如何配置它,似乎只是一个MessageListener类的实例被实例化.这迫使我不必要地编写无状态或线程安全的MessageListener实现,因为我将ListenerContainer配置为使用多个线程(concurrentConsumers = 8).
有一个明显的解决方案,我忽略了吗?
我正在寻找包含端到端测试框架的新项目.我们想要一些灵活的东西,我之前使用过Fitnesse,我认为我们需要类似的东西.
我们也在使用Hudson CI,正在寻找可以轻松集成的东西.
有明显的赢家吗?
更新:系统有很多组件,其中一些是在tomcat上运行的Web服务,也有一些NoSQL数据库,但目前还不需要进行UI测试.
如果需要进一步澄清项目细节,请添加评论.