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

Java 如何在jax-ws客户端中隐藏由jax-ws库(可能)引起的警告,java,web-services,jax-ws,Java,Web Services,Jax Ws,我正在使用netbeans在我的应用程序中生成web服务客户端。我的程序使用jax ws库设置调用web服务的超时 出现此问题的原因是,每当我启动此程序时,它都会生成大量此警告消息: 2010年12月13日下午4:35:21 [com.sun.xml.ws.policy.EffectiveAlternativeSelector] 选择备选方案警告:WSP0075: 策略断言 “{}可转移性” 被评估为“未知” 12月13日, 2010年4:35:21下午 [com.sun.xml.ws.poli

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

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

2010年12月13日下午4:35:21 [com.sun.xml.ws.policy.EffectiveAlternativeSelector] 选择备选方案警告:WSP0075: 策略断言 “{}可转移性” 被评估为“未知”

12月13日, 2010年4:35:21下午 [com.sun.xml.ws.policy.EffectiveAlternativeSelector] 选择备选方案警告:WSP0075: 策略断言 “{}ATAssertion” 被评估为“未知”

12月13日, 2010年4:35:21下午 [com.sun.xml.ws.policy.EffectiveAlternativeSelector] 选择备选方案警告:WSP0019: 选择了次优策略替代方案 在健身方面 “未知”

我在这里发现了和我一样的问题:,但直到现在也没有答案


有没有办法隐藏这个警告?我尝试使用google搜索,但找不到任何与此问题匹配的答案。

您一定使用了过时的jax ws版本(我在2.2.1版本中没有找到有效的AlternativeSelector),但让我试试

  • 在启动应用程序时可以访问的路径上创建logging.properties文件(至少可以使用
    $JAVA\u HOME/lib/logging.properties
  • 将以下行添加到该文件:
    com.sun.xml.ws.policy.EffectiveAlternativeSelector.level=OFF
  • 以以下方式启动应用程序:

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

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

    如果不需要WS-AtomicTransaction,则有两个选项可以消除这些警告:

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

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

    这里有@SupersWarning(value=“?”)的用处吗?

    我认为调试不是一个解决方案


    描述修复此问题的方法。

    在这种情况下,@superswarnings()没有帮助。该注释告诉编译器,当您可能误用某些java类型时,不要向您发出警告。这些ws-Warning在问题提出9年后通过管道传输到System.err,但可能其他人需要在2019年在java代码中设置它

    如果您只想隐藏警告(而不是解决根本问题),可以像这样轻松地在代码中设置日志记录级别,并且不应显示任何消息:

          PolicyLogger logger = PolicyLogger.getLogger(EffectiveAlternativeSelector.class);
          logger.setLevel(Level.OFF);
    

    几天前,我使用从Oracle主下载页面下载的JavaSE7U2SDK遇到了这个问题。javac和java报告版本1.7.0_02。Oracle发布的是过时的发行版吗?我指的是jax ws发行版。你是怎么得到的?它是和Java SDK捆绑在一起的吗?它一定是和Java SDK捆绑在一起的,因为我没有安装任何其他东西。wsimport生成的代码说“这个类是由JAX-WSRI生成的。*JAX-WSRI 2.2.4-b01*生成的源代码版本:2.2”我在java 1.7中遇到了这个问题,但在1.6.45中工作得很好在我的特定情况下,WSDL包含一个wsaw:UsingAddressing策略断言。这是WSDL中唯一的策略断言。关于如何设置客户机以正确处理寻址要求,有何建议?wsaw:UsingAddressing不是一个策略断言,而是一个WSDL扩展,这是另外一回事。您在特定情况下收到的警告消息是什么?2011年12月29日下午2:10:34[com.sun.xml.internal.ws.policy.EffectiveAlternativeSelector]Selectives警告:WSP0075:策略断言“{}UsingAddressing”被评估为“未知”。2011年12月29日下午2:10:34[com.sun.xml.internal.ws.policy.EffectiveAlternativeSelector]Selectives警告:WSP0019:在客户端选择了适合度为“未知”的次优策略替代方案。您能将WSDL发布到某个地方吗,或者至少是显示UsingAddressing元素如何使用的相关片段。。。