martedì 15 settembre 2009

Quel maledetto "Content is not allowed in prolog"

Ogni documento XML su cui lavoriamo dovrebbe essere formattato correttamente, salvato con il giusto encoding ecc.
Un caso classico è il messaggio "Content is not allowed in prolog" (...SAXParseException)
Editiamo a mano il file con un editor (esadecimale) e togliamo in testa "ef bb bf"? Ogni volta ? Perchè lo faranno ancora...e ancora...
...visto che usiamo java molto meglio mettere un piccolo workaround di due righe di codice appena :

Matcher matcher = (Pattern.compile("^([\\W]+)<")).matcher( xmlString.trim() );
xmlString = matcher.replaceFirst("<");

Questo prima di passare il tutto al nostro oggetto SAXBuilder

SAXBuilder builder = new SAXBuilder();
Document document = builder.build(new StringReader(xmlString));





mercoledì 12 agosto 2009

knowledgebase linux : Installiamo Samba

Installiamo Samba su Ubuntu 9.04.

Vediamo come installare Samba con apt-get e configurare una semplice directory sotto la nostra home
a cui poter accedere per esempio da una macchina windows.

Per prima cosa installiamo samba con :

sudo apt-get install samba

creaiamo una password per il nostro utente (nell'esempio l'utente è il mio cioè mcaliman) che deve essere quello da cui stiamo usando sudo.

sudo smbpasswd -a mcaliman

ricordiamo che Samba usa account (e quindi anche password) separate da quelle di sistema e le memorizza in /etc/samba/smbpasswd

creaimo la nostra directory da condividere

mkdir /home/mcaliman/samba

facciamo una copia della configurazione prima di modificarla

sudo cp /etc/samba/smb.conf /home/mcaliman

Ora editiamo con gedit (o il nostro editor preferito) il file configurazione per Samba.

sudo gedit /etc/samba/smb.conf


Aggiungiamo dopo l'ultima riga in smb.conf le seguenti righe

[samba_share_for_mcaliman]
path = /home/mcaliman/samba
available = yes
valid users = mcaliman
read only = no
browsable = yes
public = yes
writable = yes

nessuno spazio tra le righe e un solo spazio prima e dopo il segno di = (per evitare di avere problemi con Samba)

Riavviamo samba per render le modifiche effettive

sudo /etc/init.d/samba restart

Per verificare che non ci siano stati errori di digitazione nel file di configurazione di Samba possiamo usare il comando:

sudo testparm

A questo punto da una macchina windows (per esempio) possiamo ricercare il percorso \\ip-macchina-samba\
ci apparirà la cartella samba_share_for_mcaliman a cui potremo accedere.

martedì 7 aprile 2009

knowledgebase java: esempi di uso di keytool e jarsigner

per estrarre un certificato che già sappiamo essere nel nostro "portachiavi"
keytool -export -alias mycompanyalias -file mycompany.crt

per firmare un nostro jar con il certificato sopra
jarsigner mycompany.jar mycompanyalias