blank blank
Hvordan overstyre standardbibliotekene i WebSphere?
Du har et prosjekt der du ønsker å bruke en nyere versjon av et bibliotekene som følger med i J2EE. F.eks JavaMail. Du skaffer siste versjon av biblioteket og legger det inn som en del av applikasjonen.

Setting:
Du har et prosjekt der du ønsker å bruke en nyere versjon av et bibliotekene som følger med i J2EE. F.eks JavaMail. Du skaffer siste versjon av biblioteket og legger det inn som en del av applikasjonen.

Problem:
Den versjonen som du ønsker å bruke ser ikke ut til å bli brukt likevel.

Forklaring:
Du har satt ClassLoader Mode i Enterprise Application settings til PARENT_FIRST.

Da vil alltid klassene som tilfører den versjon av J2EE som du bruker bli lastet før class loader prøver å finne klassene noe annet sted.

Mulige løsninger og deres respektiver problemer og farer:

1. Du kan sette ClassLoaderMode til PARENT_LAST. Da vil alltid klassen som ligger i samme JAR fil lastes før den går og sjekker hovedbibliotekene. Hvis klassen refereres flere steder så må du passe på at de nye class filene ligger nærmest tilgjengelig på samtlige steder. Ellers kan du risikere at standardklassene blir lastet likevel. Og når du så etterpå kommer dit du ønsker å laste den så er den allerede lastet og blir ikke lastet på nytt.

Hvis du noe sted har lagt ved eldre versjoner av noen av klassene i biblioteket så er det stor risiko for at de lastes først og dermed sperrer for de nyere versjonene av standard-bibliotekene, og dette kan gi kompatibilitetsproblemer på helt andre steder i programmet, og kan gi følgefeil i alle rutiner som forventer standard-versjonene. Det vil lett oppstå ClassCastException eller LinkageError. Sjekk grundig for disse før du kan føle deg trygg på at det fungerer som ønsket.

2. Er du helt sikker på at du må ha nyeste versjon? Du kan sjekke hvilke versjoner som er tilgjengelig som standard i den J2EE versjonen du bruker og holde deg til metodene som finnes i disse. Trenger du noe som ikke er med så prøv å skrive om rutinene dine slik at det funker med det gamle biblioteket likevel, og /eller skriv workarounds for bugs som er rettet i senere versjoner. Behold dette inntil de bibliotekene du savner kommer med i en senere versjon av J2EE. Hvis dette er overkommelig så er det sterkt å anbefale for å unngå problemer med kompatibilitet som nevnt over.

 


Copyright © 2005 - 2009 BAR Consult AS      |      Rundtjernveien 6, 0672 Oslo - Tlf. 92 49 45 55


Om BAR Consult    Nyheter    Tjenester    Produkter    Tips & Triks    Kontakt oss