我编写了一个REST类,其中包含一个调用查询数据库表的方法。有效。当时我很开心。直到我从weblogic日志中意识到该方法被多次调用,即使我调用了一次。
我写了另一个示例方法,同样的事情发生了。
下面:
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("all")
public String getJson(@DefaultValue("Nothing in a") @QueryParam("a") String a,
@DefaultValue("Nothing in b") @QueryParam("b") String b) {
System.out.println("CALLED DEFAULT SERVICE");
return "Test works: " + a + " " + b;
}
注意我打印了一个打印(CALLED DEFAULT SERVICE)。我想确定这个方法是不是被多次调用,或者我之前是否看过这些东西。
当我打电话给浏览器时,一切都像魅力一样,除了日志中我看到了:
INFO: Instantiated the Application class org.greenpole.webservices_rest.ApplicationConfig
CALLED DEFAULT SERVICE
Mar 22, 2015 11:42:53 AM weblogic.jaxrs.server.portable.JaxRsMonitoringProvider onResourceMethod
WARNING: Monitoring Disabled
<22-Mar-2015 11:42:53 o'clock WAT> <Warning> <weblogic.jaxrs.server.portable.JaxRsMonitoringProvider> <BEA-000000> <Monitoring Disabled>
CALLED DEFAULT SERVICE
CALLED DEFAULT SERVICE
在以下行之后调用该方法:“实例化Application类org.greenpole.webservices_rest.ApplicationConfig ”。之后,看着日志,我注意到它被调用两次,但是由什么和为什么??
以前有没有人经历过这个?
答案 0 :(得分:0)
在进行了大量研究和额外测试之后,我发现当我使用Chrome时会出现这种异常现象。我用Firefox测试了我的REST服务,没有发生任何事情。
我还添加了一个全局变量,只要多次调用该方法就会增加该变量,并且它只增加到1,即使打印输出多次出现 - 这意味着它实际上不会多次调用该方法。它只调用一次,只要它认为合适就重复打印日志。奇怪。
无论如何,我很高兴!