我有使用NetBeans IDE自動生成的JAX-WS樣式的Web服務客戶端。重用javax.xml.ws.Service對象是否安全?
生成的代理工廠(擴展javax.xml.ws.Service)將代理創建委託給各種Service.getPort方法。我維護的應用程序實例化工廠,並在每次調用目標服務時獲取代理。
由於爲每個實例化重新檢索了提供給工廠構造函數的WSDL文檔(一個HTTP URI),因此重複創建新的代理工廠實例顯示出代價很高。
我們成功地通過緩存WSDL來提高性能。但是這對我們來說具有難以維護和包裝的影響。
我想探索緩存代理工廠本身的適用性。它是否安全?例如,可以在同一個JVM上執行並針對同一個Web服務的兩個不同的客戶端類安全地使用相同的工廠來獲得不同的代理對象(或共享的,可重入的對象)?
我一直無法從JAX-WS規範或javax.xml.ws API文檔中找到指導。工廠代理的多樣性對我來說還不清楚。擁有Service.getPort而不是Service.createPort不會激發信心。