[英]How to hide warning in jax-ws client which (maybe) caused by jax-ws library
我正在使用 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:在客戶端選擇了次優策略替代方案,適應度為“未知”。
我在這里發現了同樣的問題: http : //forums.java.net/node/707265 ,但直到現在它也沒有答案。
有沒有辦法隱藏這個警告? 我嘗試使用 google 進行搜索,但找不到此問題的任何匹配答案。
您必須使用過時的 jax-ws 版本(我在 2.2.1 副本中沒有找到 EffectiveAlternativeSelector),但讓我嘗試一下。
$JAVA_HOME/lib/logging.properties
)com.sun.xml.ws.policy.EffectiveAlternativeSelector.level=OFF
下行添加到該文件: 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,那么您有兩種選擇可以擺脫這些警告:
如果您需要 WS-AtomicTransaction,那么您可能必須在應用程序服務器中或作為 Java EE 應用程序客戶端運行代碼。
問題提出 9 年后,但也許其他人需要在 2019 年在 Java 代碼中設置它。
如果您只想隱藏警告(而不是解決潛在問題),您可以像這樣輕松地在代碼中設置日志記錄級別,並且不應該出現任何消息:
PolicyLogger logger = PolicyLogger.getLogger(EffectiveAlternativeSelector.class);
logger.setLevel(Level.OFF);
我認為關閉調試不是解決方案
http://dannythorpe.com/2012/01/04/java-wcf-usingaddressing-warning/描述了解決此問題的方法。
@SupressWarnings() 在這種情況下沒有幫助。 該注釋是為了告訴編譯器在您可能誤用某些 Java 類型時不要警告您。 這些 ws 警告正在通過管道傳輸到 System.err
@SupressWarning(value="?") 在這里有用嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.