【问题标题】:Disbale jax-ws logging or static statements in generated services在生成的服务中禁用 jax-ws 日志记录或静态语句
【发布时间】: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 根本不生成这个静态块?或者有谁知道一种简单的方法可以一次性禁用所有服务类的日志记录?

【问题讨论】:

    标签: java log4j jax-ws


    【解决方案1】:

    我从来没有找到一个好的答案。一个杂乱无章的修复方法是将 wsdl 位置设置为 http,例如 http://localhost:8080//META-INF/wsdl/thewsdl.wsdl

    这会阻止静态块引发警告,但随后需要您在要构建服务时操纵位置。只是以一种邪恶为另一种。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-23
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 2017-09-05
      • 1970-01-01
      相关资源
      最近更新 更多