如何在jax-ws客户端中隐藏警告(可能)由jax-ws库引起

FJE*_*FJE 10 java web-services jax-ws

我正在使用netbeans在我的应用程序中生成Web服务客户端.我的程序使用jax-ws库来设置调用Web服务的超时.

出现问题是因为每当我启动此程序时它会生成大量此警告消息:

2010年12月13日下午4:35:21 [com.sun.xml.ws.policy.EffectiveAlternativeSelector] selectAlternatives警告:WSP0075:策略断言"{ http://schemas.xmlsoap.org/ws/2004/10/wsat } ATAlwaysCapability"被评为"未知".

2010年12月13日下午4:35:21 [com.sun.xml.ws.policy.EffectiveAlternativeSelector] selectAlternatives警告:WSP0075:策略断言"{ http://schemas.xmlsoap.org/ws/2004/10/wsat } ATAssertion"被评为"未知".

2010年12月13日下午4:35:21 [com.sun.xml.ws.policy.EffectiveAlternativeSelector] selectAlternatives警告:WSP0019:在客户端选择健身"UNKNOWN"的次优策略备选方案.

我在这里发现了同样的问题:http://forums.java.net/node/707265,但直到现在它也没有答案.

有没有办法隐藏这个警告?我尝试使用谷歌搜索,并找不到任何匹配的问题答案..

Ale*_*lov 5

您必须使用过时版本的jax-ws(我在2.2.1副本中找不到EffectiveAlternativeSelector),但让我试一试.

  1. 在启动应用程序时可访问的某个路径上创建logging.properties文件(至少您可以使用找到的那个$JAVA_HOME/lib/logging.properties)
  2. 将以下行添加到该文件: com.sun.xml.ws.policy.EffectiveAlternativeSelector.level=OFF
  3. 启动您的应用程序

java -Djava.util.logging.config.file=/path/to/your/logging.properties MainClass


And*_*hen 4

我的猜测是,生成客户端的 WSDL 包含与 WS-AtomicTransaction 相关的策略断言。由于 WS-AtomicTransaction 需要事务管理器,而 JRE 不包含事务管理器,因此 JRE 中的 JAX-WS 运行时不支持 WS-AtomicTransaction 并且不理解这些策略断言也就不足为奇了。

如果您不需要 WS-AtomicTransaction,那么您有两种选择来消除这些警告:

  • 配置日志记录以抑制这些警告。
  • 从 WSDL 中删除断言。

如果您需要 WS-AtomicTransaction,那么您可能必须在应用程序服务器中或作为 Java EE 应用程序客户端运行代码。