簡體   English   中英

編譯時找不到com.sun.xml.internal.ws.developer.JAXWSProperties

[英]com.sun.xml.internal.ws.developer.JAXWSProperties not found at compile

我們在代碼中使用com.sun.*包中的類JAXWSProperties來設置超時屬性,如下所示:

import com.sun.xml.internal.ws.developer.JAXWSProperties;
...
Map<String, Object> ctxt = ((BindingProvider) port).getRequestContext();
ctxt.put(JAXWSProperties.CONNECT_TIMEOUT, 10000);

它在本地Eclipse中編譯良好,但不在連續集成系統上編譯(兩者都使用JDK 1.6)。 通過研究這個問題,我了解到應該避免使用com.sun.*包。

所以我的問題是:

  • 導致編譯時導入失敗的原因是什么?
  • 應該使用什么代替JAXWSProperties

在將我們的一個項目轉換為在Maven下運行時,我遇到了同樣的問題。

我發現的解決方案並不是一個理想的解決方案,實際上它更像是一個“cludge”而不是“fix”,盡管它確實可以通過編譯器運行。 和你一樣,我對這個問題進行了一些研究,並發現Sun的評論說這些軟件包對編譯器是隱藏的,但可供JVM使用。

因此,我發現的解決方案是簡單地找到常量指向的字符串,並在本地使用它。

在你的情況下,它將是:

final static String CONNECT_TIMEOUT = "com.sun.xml.internal.ws.connect.timeout";
....
Map<String, Object> ctxt = ((BindingProvider) port).getRequestContext();
ctxt.put(CONNECT_TIMEOUT, 10000);

正如我所提到的,這並不理想,並且無法保證在將來的編譯器版本中工作,因此請謹慎使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM