Перенаправить выходные журналы javax.xml.ws и com.sun.xml.ws - PullRequest
0 голосов
/ 18 мая 2010

Я работаю над веб-службой на основе SOAP с Sun's Metro .

Я сталкиваюсь с досадной ошибкой, каждый раз, когда я отправляю неверно сформированный объект SOAP в мой веб-сервис, api-спам Sun System.out с такими журналами:

javax.xml.ws.WebServiceException: com.sun.istack.XMLStreamException2: org.xml.sax.SAXParseException: cvc-complex-type.4: атрибут «тип» должен появляться в элементе «объект». на com.sun.xml.ws.util.pipe.AbstractSchemaValidationTube.doProcess (AbstractSchemaValidationTube.java:206) на com.sun.xml.ws.util.pipe.AbstractSchemaValidationTube.processRequest (AbstractSchemaValidationTube.java:175) на com.sun.xml.ws.api.pipe.Fiber .__ doRun (Fiber.java:595) на com.sun.xml.ws.api.pipe.Fiber._doRun (Fiber.java:554) на com.sun.xml.ws.api.pipe.Fiber.doRun (Fiber.java:539) на com.sun.xml.ws.api.pipe.Fiber.runSync (Fiber.java:436) в com.sun.xml.ws.server.WSEndpointImpl $ 2.process (WSEndpointImpl.java:243) в com.sun.xml.ws.transport.http.HttpAdapter $ HttpToolkit.handle (HttpAdapter.java:444) на com.sun.xml.ws.transport.http.HttpAdapter.handle (HttpAdapter.java:244) на com.sun.xml.ws.transport.http.server.WSHttpHandler.handleExchange (WSHttpHandler.java:106) в com.sun.xml.ws.transport.http.server.WSHttpHandler.handle (WSHttpHandler.java:91) на com.sun.net.httpserver.Filter $ Chain.doFilter (Filter.java:65) на sun.net.httpserver.AuthFilter.doFilter (AuthFilter.java:54) на com.sun.net.httpserver.Filter $ Chain.doFilter (Filter.java:68) at sun.net.httpserver.ServerImpl $ Exchange $ LinkHandler.handle (ServerImpl.java:555) на com.sun.net.httpserver.Filter $ Chain.doFilter (Filter.java:65) at sun.net.httpserver.ServerImpl $ Exchange.run (ServerImpl.java:527) at sun.net.httpserver.ServerImpl $ DefaultExecutor.execute (ServerImpl.java:119) at sun.net.httpserver.ServerImpl $ Dispatcher.handle (ServerImpl.java:349) at sun.net.httpserver.ServerImpl $ Dispatcher.run (ServerImpl.java:321) на java.lang.Thread.run (Thread.java:619) Вызывается: com.sun.istack.XMLStreamException2: org.xml.sax.SAXParseException: cvc-complex-type.4: атрибут «тип» должен появляться в элементе «объект». в com.sun.xml.ws.util.xml.StAXSource $ 1.parse (StAXSource.java:185) в com.sun.xml.ws.util.xml.StAXSource $ 1.parse (StAXSource.java:170) в org.apache.xerces.jaxp.validation.ValidatorHandlerImpl.validate (неизвестный источник) at org.apache.xerces.jaxp.validation.ValidatorImpl.validate (Неизвестный источник) в javax.xml.validation.Validator.validate (Validator.java:127) на com.sun.xml.ws.util.pipe.AbstractSchemaValidationTube.doProcess (AbstractSchemaValidationTube.java:204) ... еще 20

Я хотел бы отключить этот журнал или перенаправить его в мои error / warn / debug.log файлы, используемые log4j.

Я пытался добавить правило в мой 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 все больше и больше, и это не подходящее место для такого рода бревен.

Chris

1 Ответ

0 голосов
/ 19 мая 2010

Решение сценария наихудшего случая:

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