在 WebSphere Application Server v8.0 中,有一項行為變更與
SipFactory createRequest()
和
createAddress()
使用字串位址參數的方法。
特定
javax.servlet.sip.SipFactory
與此變更相關聯且由此規則標示的方法如下:
-
Address createAddress(java.lang.String addr)
-
SipServletRequest createRequest(SipApplicationSession appSession,
java.lang.String method,
java.lang.String from,
java.lang.String to)
throws ServletParseException
此規則提供對可能受行為變更影響的程式碼進行檢查的機會。 行為變更的詳細資料如下:
- Feature Pack for Communications Enabled Applications (CEA Feature Pack) 新增了對於「SIP Servlet 規格 1.1,JSR 289」的支援。
- 關於
createRequest()
和
createAddress()
JSR289 API 陳述的方法:
" ... 如果 from 或 to 引數是包含參數的 SIP URI ,則 URI 必須以角括弧括住。 否則,將會剖析位址,如同參數屬於位址,而不是 URI。"
- 不過,如同最初提供之時,CEA Feature Pack 並沒有遵循 API。
沒有用角括弧括住的參數並不會如上述般執行,而是會被視為 URI 參數。 例如,根據 JSR,
-
sip:asaf@ibm.com;param1=1
應該等於
-
<sip:asaf@ibm.com>;param1=1
但卻被解讀為
-
<sip:asaf@ibm.com;param1=1>
.
- 在 CEA Feature Pack 服務發行自訂內容中,
sip.jsr289.parse.address
已新增,以啟用正確的行為。
- 在 WebSphere 8.0 版中,這個行為有了改變,預設行為就是正確的 API 標準行為。
在第 8 版中,如果這個自訂內容設為 false,就會得到原始行為。
如需相關資訊,請參閱文件: