Quando você usa a classe com o main, ele está indo na mesmas pasta que a app web? Ou melhor, no mesmo computador? Ou com o main você testou numa máquina e com a webApp tentou em outra máquina. Se for este último exemplo, provavelmente você não possui permissão de criação de arquivo na pasta.
Se foi o primeiro exemplo, o usuário utilizado para rodar o ServerApp pode não ter essa permissão.