Я работаю над веб-службой на основе 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