我正在使用 Sun的Metro 开发基于SOAP的Web服务。
我正面临着一个令人烦恼的错误,每次我将一个格式错误的SOAP对象发送到我的网络服务时,sun的api垃圾邮件就像System.out那样带有这样的日志:
javax.xml.ws.WebServiceException:com.sun.istack.XMLStreamException2:org.xml.sax.SAXParseException:cvc-complex-type.4:属性'type'必须出现在元素'object'上。 at com.sun.xml.ws.util.pipe.AbstractSchemaValidationTube.doProcess(AbstractSchemaValidationTube.java:206) at 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) at 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) at com.sun.xml.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:106) at com.sun.xml.ws.transport.http.server.WSHttpHandler.handle(WSHttpHandler.java:91) at com.sun.net.httpserver.Filter $ Chain.doFilter(Filter.java:65) 在sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:54) at com.sun.net.httpserver.Filter $ Chain.doFilter(Filter.java:68) at sun.net.httpserver.ServerImpl $ Exchange $ LinkHandler.handle(ServerImpl.java:555) at 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:属性'type'必须出现在元素'object'上。 at com.sun.xml.ws.util.xml.StAXSource $ 1.parse(StAXSource.java:185) at com.sun.xml.ws.util.xml.StAXSource $ 1.parse(StAXSource.java:170) at org.apache.xerces.jaxp.validation.ValidatorHandlerImpl.validate(未知来源) at org.apache.xerces.jaxp.validation.ValidatorImpl.validate(未知来源) 在javax.xml.validation.Validator.validate(Validator.java:127) at 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 变得更大&amp;更大,这不适合这种日志。
克里斯
答案 0 :(得分:0)
最坏情况解决方案:
System.setOut(new PrintStream(new FileOutputStream("debug.log")));