繁体   English   中英

重定向javax.xml.ws和com.sun.xml.ws的输出日志

[英]Redirect output logs of javax.xml.ws and com.sun.xml.ws

我正在使用Sun的Metro开发基于SOAP的Web服务。

我遇到一个烦人的错误,每次我将格式错误的SOAP对象发送到我的Web服务时,Sun的api垃圾邮件就会向System.out发送带有以下日志的日志:

javax.xml.ws.WebServiceException:com.sun.istack.XMLStreamException2:org.xml.sax.SAXParseException:cvc-complex-type.4:属性“ type”必须出现在元素“ object”上。 在com.sun.xml.ws.util.pipe.AbstractSchemaValidationTube.doProcess(AbstractSchemaValidationTube.java:206)在com.sun.xml.ws.util.pipe.AbstractSchemaValidationTube.java:206处com.sun.xml.ws.util.pipe.AbstractSchemaValidationTube.processRequest(AbstractSchemaValidationTube.java:175) com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)的com.sun.xml.ws的.xml.ws.api.pipe.Fiber .__ doRun(Fiber.java:595) com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)的com.sun.xml.ws.server.WSEndpointImpl的.api.pipe.Fiber.doRun(Fiber.java:539) com.sun.xml.ws.transport.http.HttpAdapter $ HttpToolkit.handle(HttpAdapter.java:444)处com.sun.xml.ws.transport.http.HttpAdapter的$ 2.process(WSEndpointImpl.java:243)。 com.sun.xml.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:106)上的com.sun.xml.ws.transport.http.server.WSHttpHandler上的handle(HttpAdapter.java:244)。在com.sun.net.httpserver.Filter $ Chain.doFilter(Filter.java:65)在sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:54)处处理(WSHttpHandler.java:91) .net.https erver.Filter $ Chain.doFilter(Filter.java:68)在sun.net.httpserver.ServerImpl $ Exchange $ LinkHandler.handle(ServerImpl.java:555)在com.sun.net.httpserver.Filter $ Chain.doFilter(在sun.net.httpserver.ServerImpl $ Exchange.run(ServerImpl.java:527)处的Filter.java:65)在sun.net.httpserver.ServerImpl $ DefaultExecutor.execute(ServerImpl.java:119)处的sun.net.httpserver位于sun.net的.ServerImpl $ Dispatcher.handle(ServerImpl.java:349)在java.lang.Thread.run(Thread.java:619)处的ServerImpl $ Dispatcher.run(ServerImpl.java:321) com.sun.istack.XMLStreamException2:org.xml.sax.SAXParseException:cvc-complex-type.4:属性“ type”必须出现在元素“ object”上。 在com.sun.xml.ws.util.xml.StAXSource $ 1.parse(StAXSource.java:170)在com.sun.xml.ws.util.xml.StAXSource $ 1.parse(StAXSource.java:185) org.apache.xerces.jaxp.validation.ValidatorImpl.validate(未知源)处的.apache.xerces.jaxp.validation.ValidatorHandlerImpl.validate(未知源)(javax.xml.validation.Validator.validate(Validator.java:127) )com.sun.xml.ws.util.pipe.AbstractSchemaValidationTube.doProcess(AbstractSchemaValidationTube.java:204)...另外20个

我想关闭此日志或将其重定向到log4j使用的error / warn / debug.log文件。

我试图在我的log4j.xml文件中添加一条规则:

<category name="javax.xml.ws">
 <priority value="error" />
</category>

它没有用。

所以我尝试了以下技巧:

java.util.logging.Logger.getLogger("javax.xml.ws.WebServiceException").setLevel(
            java.util.logging.Level.OFF);

它也不起作用。

有任何想法吗 ?

这不是一个大问题,但是它使我的catalina.log越来越大,因此它不适用于此类日志。

克里斯

最坏情况的解决方案:

System.setOut(new PrintStream(new FileOutputStream("debug.log")));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM