Log4j:每个请求一个日志文件

我们有一个weblogic批处理应用程序,它同时处理来自消费者的多个请求。 我们使用log4j来记录目的。 现在我们为多个请求登录一个日志文件。 调试给定请求的问题与日志在单个文件中的所有请求一样变得冗长乏味。 所以计划是每个请求有一个日志文件。 消费者发送必须执行处理的请求ID。 现在,实际上可能有多个消费者将请求ID发送到我们的应用程序。 所以问题是如何根据请求分割日志文件。 我们无法每次启动和停止生产服务器,因此排除了使用带有日期时间戳或请求ID的重写文件追加器的重点。 这就是下面的文章中解释的: http : //veerasundar.com/blog/2009/08/how-to-create-a-new-log-file-for-each-time-the-application-runs/ 我也试过玩这些替代方案: http://cognitivecache.blogspot.com/2008/08/log4j-writing-to-dynamic-log-file-for.html http://www.mail-archive.com/log4j-user@logging.apache.org/msg05099.html 此方法提供了所需的结果,但如果同时发送多个请求,则无法正常工作。 由于一些并发问题,日志会随处可见。 我期待你们的帮助。 提前致谢….

在测试之间传递JUnit数据

我刚刚发现,在创建一些CRUD测试时,您无法在一次测试中设置数据,并在另一次测试中读取数据(数据在每次测试之间设置回初始化)。 我所要做的就是(C)用一个测试来创建一个对象,然后用(R)用下一个测试来创建它。 JUnit是否有办法做到这一点,或者它是否在意识形态上编码,以便不允许测试相互依赖?

无法在嵌入式Jetty服务器中加载JSTL taglib

我正在编写一个在嵌入式Jetty实例中运行的Web应用程序。 当我尝试执行JSTL语句时,收到以下exception: org.apache.jasper.JasperException:/index.jsp(1,63)PWC6188:绝对的uri: http : //java.sun.com/jsp/jstl/core无法在web.xml或jar文件中解析部署此应用程序 我在类路径上有以下jar ANT-1.6.5.jar ANT-1.7.1.jar ant发射-1.7.1.jar 核心3.1.1.jar docker,6.1.22.jar docker-UTIL-6.1.22.jar JSP的2.1-6.1.14.jar JSP-API-2.1.jar JSTL-1.2.jar servlet的API-2.5-20081211.jar servlet的API-2.5-6.1.14.jar 标准1.1.2.jar 我的web.xml看起来像这样: test 我的代码如下所示: Hello World! ${1+2} 我开始使用这样的嵌入式Jetty服务器: Server server = new Server(80); WebAppContext context = new WebAppContext(“pig-1.0-SNAPSHOT.war”,”/”); server.addHandler(context); server.start(); 过去两天我花了不少尝试jar文件,web.xml配置和标签库声明的各种组合,但无济于事。 如何在完整的JSTL支持下启动并运行嵌入式Jetty服务器?

Java String中的上标

Java String是否支持String中的上标? 如果是,那么我该如何使用它,我已经搜索了网络和API,但无法弄清楚如何将它用于我的目的 虽然这将打印在网页上,但我不能在这里使用html标签,请提出任何建议

如何在swing中手动调用Action?

对于我的生活,我似乎无法找到关于Java Swing Actions的详细信息:’(当我遇到它们时,我立即意识到它们的用处。到目前为止,这一切都很容易使用。现在我被困在一个小东西:如何我手动运行它们?我的意思是代码?注意我正在使用Netbeans构建GUI(如果这有任何区别)。我已经到了: Application a = Application.getInstance(JPADemoApp.class); ApplicationContext ctx = a.getContext(); ActionMap am = ctx.getActionMap(JPADemoView.class, this.app); Action act = am.get(“fetchOrders”); (我在单独的行上写了所有内容以简化调试) 所以现在我对Action有了一个有效的参考。 现在我该如何运行它?

无法通过代理隧道。 代理通过https返回“HTTP / 1.1 407”

我面临着java6 / 8的奇怪行为。 我尝试隧道通过需要基本用户身份validation的代理。 通过标准的java Authenticator执行此操作。 如果我尝试访问https url作为第一个url,则抛出exception: java.io.IOException:无法通过代理进行隧道传输。 代理返回“需要HTTP / 1.1 407代理身份validation” 但是,如果我首先访问http URL,然后访问https URL,则https访问可以正常工作。 鉴于该代码: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.Authenticator; import java.net.HttpURLConnection; import java.net.InetSocketAddress; import java.net.PasswordAuthentication; import java.net.Proxy; import java.net.URL; public class ProxyPass { public ProxyPass( String proxyHost, int proxyPort, final String userid, final String password, String url […]

Spring:@Resource注入在JDK9下停止工作

在我的@Configuration类中,我有如下的dependendies: @Configuration public class MyConfig { @Resource(name = “firstDataSource”) private DataSource firstDataSource; // more code } dependency injection在Oracle JDK 8中工作: firstDataSource字段已成功注入非null值。 现在我尝试在JDK 9中运行应用程序(没有修改)。结果是@Resource不再触发dependency injection:使用此批注注释的所有内容都保持为null 。 @Resource停止工作的原因是什么? Spring 4.0.9用于项目中。 这是一个展示问题的测试项目: https : //github.com/rpuch/test-spring-injection-jdk9 它包含一个测试:我从IDE运行的MainTest 。 当我使用JDK 8时,它会输出 сен 29, 2017 10:45:13 PM org.springframework.context.annotation.AnnotationConfigApplicationContext prepareRefresh INFO: Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@5f8ed237: startup date [Fri Sep 29 22:45:13 SAMT 2017]; root […]

如何在没有垃圾收集的情况下在Java 5上进行堆转储?

我们有一个运行Java 5的长期运行的服务器应用程序,并对其进行分析,我们可以看到老一代随着时间的推移缓慢增长。 它在完整的GC上正确释放,但我希望能够使用堆转储查看Eclipse MAT中无法访问的对象。 我已成功使用+ XX:HeapDumpOnCtrlBreak获取堆转储,但JVM在转储堆之前总是执行GC。 显然这不会发生在Java 6上,但我们暂时停留在5。 有什么办法可以防止这种情况吗?

日期TimeZone在java中的转换?

我一直在寻找将格林威治标准时间转换为当地时间的最简单方法。 当然,要考虑适当的DST日期并尽可能标准。 我能想出的最直接的代码是: SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); String inpt = “2011-23-03 16:40:44”; Date inptdate = null; try { inptdate = sdf.parse(inpt); } catch (ParseException e) {e.printStackTrace();} Calendar tgmt = new GregorianCalendar(TimeZone.getTimeZone(“GMT”)); tgmt.setTime(inptdate); Calendar tmad = new GregorianCalendar(TimeZone.getTimeZone(“Europe/Madrid”)); tmad.setTime(inptdate); System.out.println(“GMT:\t\t” + sdf.format(tgmt.getTime())); System.out.println(“Europe/Madrid:\t” + sdf.format(tmad.getTime())); 但我认为我没有得到getTime将返回的正确概念。

如何使用Java代码中的Scala varargs

有很多关于从Scala代码调用Java varargs的文章,但我唯一能找到相反的方法就是这个问题: 在java中使用scala vararg方法 ,它没有任何具体的例子。 我试图从一些Java代码中使用scala.Console ,因为java.io.Console在Eclipse中不起作用,而Scala则起作用。 但我无法得到这种方法 def readLine (text: String, args: Any*): String 工作,因为它似乎期待第二个参数的scala.collection.Seq[Any] ,我不知道如何在Java中创建Seq 。 我该如何解决这个问题? 我尝试过的事情: 1)使用null // Java String s = scala.Console.readLine(“Enter text: “, null); – 获得NullPointerException奖励。 2)用scala.collection.Seq.empty() )替换null ,但是javac会报告各种错误,例如Seq没有empty方法。 3)在scala.collection.immutable包对象中使用Nil对象,但这里建议的语法是scala.collection.immutable.package$Nil$.MODULE$ ,但是无法解析。 当然我可以使用不带varargs的readLine()方法,但这太容易了。