În WebSphere Application Server v8.0 există o schimbare de comportament asociată cu
SipFactory createRequest()
și
createAddress()
metode care folosesc parametri de adresă de șir.
Specificitatea
javax.servlet.sip.SipFactory
metodele asociate cu această modificare și care sunt marcate de această regulă sunt următoarele:
-
Address createAddress(java.lang.String addr)
-
SipServletRequest createRequest(SipApplicationSession appSession,
java.lang.String method,
java.lang.String from,
java.lang.String to)
throws ServletParseException
Această regulă oferă posibilitatea de a inspecta codul care poate fi afectat de modificarea de comportament. Detaliile acestei
modificări de comportament sunt după cum urmează:
- Feature Pack for Communications Enabled Applications (CEA Feature Pack) a adăugat suport pentru
SIP Servlet Specification 1.1, JSR 289.
- Cu privire la
createRequest()
și
createAddress()
JSR289 precizează:
" ... în cazul în care oricare dintre sau la argument este un SIP URI care conțin parametri, URI trebuie să fie închise în paranteze unghi. În caz contrar, adresa va fi analizată ca și cum parametrul are ține de adresă, și nu de URI.”
- Însă CEA Feature Pack, aşa cum a fost livrat iniţial, nu respecta API-ul.
În loc să se procedeze aşa cum s-a arătat anterior, parametrii care nu erau încadraţi cu paranteze unghiulare sunt trataţi ca
parametri de URI. De exemplu, conform JSR,
-
sip:asaf@ibm.com;param1=1
ar trebui să fie egală cu
-
<sip:asaf@ibm.com>;param1=1
dar în schimb a fost citit ca
-
<sip:asaf@ibm.com;param1=1>
.
- Intr-o versiune de serviciu CEA Feature Pack se elibereaza o proprietate personalizata,
sip.jsr289.parse.address
, a fost adăugat pentru a permite comportamentul corect.
- În WebSphere Versiunea 8.0, comportamentul a fost modificat, astfel încât comportamentul implicit este comportamentul API
compatibil.
În versiunea 8.0, dacă proprietatea de personalizare este setată la false, se revine la comportamentul original.
Pentru informații suplimentare consultaţi documentația: