nei commenti del codice c'è scritto che la risposta del metodo getCompletamenti è qualcosa di questo tipo:

"value":"3","label":"canzoni"

aggiungendoci le parentesi di inizio e fine e altri record del db dovrebbe diventare qualcosa del genere, un esempio:

codice:
["value":"1","label":"canzoni1",
"value":"2","label":"canzoni2",
"value":"3","label":"canzoni3"]
Questo formato non va bene, il formato dovrebbe essere questo:

codice:
[{"value":"1","label":"canzoni1"},
{"value":"2","label":"canzoni2"},
{"value":"3","label":"canzoni3"}]
Controlla che sia cosi.

Sempre leggendo i commenti sembra che dovete applicare un filtro sui dati ricevuti dal db, la variabile term dovrebbe rappresentare il filtro, quindi devi aggiungere il parametro nell'url dell'autocomplete

"ajax/ajaxCompletaCategorie.jsp?term="+$('#categoria').v al()