【发布时间】:2011-11-16 16:06:37
【问题描述】:
当我使用 jax-ws 生成服务类时,它会生成如下静态语句:
static {
URL url = null;
try {
URL baseUrl;
baseUrl = com.some.package.with.class.getResource(".");
url = new URL(baseUrl, "/META-INF/wsdl/thewsdl.wsdl");
} catch (MalformedURLException e) {
logger.warning("Failed to create URL for the wsdl Location: '/META-INF/wsd/thewsdl.wsdl', retrying as a local file");
logger.warning(e.getMessage());
}
SERVICE_WSDL_LOCATION = url;
}
在我们构建时,我们的 WSDL 被打包在 jar 元信息中,并且我们使用我们自己的工厂来正确地构建各种服务,使用带有 URL wsdlLocation、QName serviceName 的构造函数。所以这个静态声明最终会抛出误导性的警告,这对我们来说并不是真正的问题。我也不能轻易地将记录器配置为忽略它们(我可以告诉),因为每个服务都是它自己的命名空间(com.some.package)我们有很多不同的包,我宁愿能够做一些通用的事情而不是不得不列出日志配置中的每个服务类。
有没有办法让 jax-ws 根本不生成这个静态块?或者有谁知道一种简单的方法可以一次性禁用所有服务类的日志记录?
【问题讨论】: