1
如何將java.util.Collections$UnmodifiableRandomAccessList
轉換爲Collections.singletonList
? 爲了在兩個服務之間存儲會話,我找到了這個,但我無法弄清楚它們之間的一個步驟。 首先得到的cookie信息,我需要設置:
Map<String, Collections> headerInfo = (Map<String, Collections>)
((BindingProvider) port).getResponseContext()
.get(MessageContext.HTTP_RESPONSE_HEADERS);
現在,我可以得到的cookie信息,我需要; 如果我做了
System.out.println(headerInfo.get("Set-Cookie"));
我得到這樣的
Set-Cookie=[PHPSESSID=rpsnc2g7o4ltbr6l9qus177p14; path=/];
現在我只需要做到這一點:
((BindingProvider) port2).getRequestContext()
.put(MessageContext.HTTP_REQUEST_HEADERS,
Collections.singletonMap("Cookie", Collections.singletonList(cookieValue)));
但我無法弄清楚如何從 得到headerInfo.get("Set-Cookie")
發給:cookieValue
這是我發現我的問題的解決方案的Q中的第一部分的問題:
JAX-WS client: maintain session/cookies across multiple services
(這或許可以解釋我的問題有點太)
爲什麼您需要進行轉換,而不是隻保留原始列表? –
如果我試圖使用原始列表: ((BindingProvider)customer).getRequestContext()。put(MessageContext.HTTP_REQUEST_HEADERS,Collections.singletonMap(「Cookie」,headerInfo.get(「Set-Cookie」))); 時拋出此異常: java.util.Collections中的$ UnmodifiableRandomAccessList不能轉換到java.util.Collections中 – Steffen
更新: 你說得對,我並不需要轉換,恰到好處的類型轉換。謝謝! – Steffen