簡體   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