Base64 base64UrlFriendly = new Base64(true); // Nixpix! |
Idag sprang jag på en irriterande bugg i Glassfish v. 3.0.1. Det var när jag försökte använda biblioteket
Apache Commons Codec
(version 1.5) i en webbapplikation byggd i Netbeans som det började strula. Jag ville använda klassen Base64 i s.k. 'urlSafe'-läge för att verifiera en signerad request från Facebook (se tidigare post). Det gick fint att bygga och deploya men applikationen kastade ett Exception i runtime.java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.<init>(Z)V
Hmm, märkligt eftersom JAR-filen för commons-codec-1.5 byggdes in i WEB-INF/lib enligt konstens alla regler. Extra konstigt att metoden inte fanns? Efter en del efterforskningar visade det sig att Glassfish har en egen version av Commons Codec (äldre än 1.4) som ligger under
${GLASSFISH_HOME}/modules
och den heter commons-codec-repackaged.jar
som uppenbarligen laddas istället för den version jag ville använda. Min lösning på problemet fick bli att ersätta denna version med commons-codec-1.5.jar
omdöpt till commons-codec-repackaged.jar
. Det kändes inte speciellt bra, frågan är vad man gör om man skall deploya till en server som man inte har kontroll över?
Inga kommentarer:
Skicka en kommentar