Upload Primefaces, Caminho relativo da pasta

Boa noite a todos.
estou enfrentando um pequeno problema para localizar uma pasta para colocar as imagens.

Tenho a seguinte arvore de diretórios.

musicBay

/WebContent
/resources
/imagens
/artista
/album

eu gostaria de enviar as imagens que faço upload para pasta artista, no entanto não consegui nenhum método que me retornasse o caminho relativo
até a pasta.

já utilizei:
FacesContext.getCurrentInstance().getExternalContext().getRealPath(“artista/”);
mas ele me retorna:
/media/Sleipnir/Documents/LinuxJavaWorkspace[color=red]/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/musicbay/artista[/color]

[code]
public void copyFile(String fileName, InputStream in) {
String diretorio = FacesContext.getCurrentInstance().getExternalContext().getRealPath(“artista/”);

	System.out.println(diretorio);
	try {
    	   
    	    // write the inputStream to a FileOutputStream
            OutputStream out = new FileOutputStream(new File(diretorio+fileName));
         
            int read = 0;
            byte[] bytes = new byte[1024];
         
            while ((read = in.read(bytes)) != -1) {
                out.write(bytes, 0, read);
            }
         
            in.close();
            out.flush();
            out.close();
         
            System.out.println("New file created!");
            } catch (IOException e) {
            System.out.println(e.getMessage());
            }
}[/code]

gostaria de saber se alguém conhece um método capaz de retornar o path.
desde já agradeço. abraço

Não é boa prática copiar arquivos para dentro do servidor, ou das pastas do servidor.

Coloque em um diretório esterno.

ok amigo. no entanto conhece alguma forma para resolver esse problema ?

[quote=denisagui]ok amigo. no entanto conhece alguma forma para resolver esse problema ?[/quote]Veja c isso te ajuda: http://stackoverflow.com/questions/2698002/how-can-i-get-relative-path-of-the-folders-in-my-project-java

Mas fique esperto, o servidor poderá muito bem apagar a pasta que você criar/editar dentro dele. ^^

[quote=jakefrog][quote=denisagui]ok amigo. no entanto conhece alguma forma para resolver esse problema ?[/quote]Veja c isso te ajuda: http://stackoverflow.com/questions/2698002/how-can-i-get-relative-path-of-the-folders-in-my-project-java

Mas fique esperto, o servidor poderá muito bem apagar a pasta que você criar/editar dentro dele. ^^[/quote]

vou realizar o teste aqui.
eu entendo os problemas de colocar arquivos externos dentro do servidor, mas nesse caso eu necessito carrega-los com ele.

nenhum dos métodos utilizados naquele post foram uteis.
eu consigo pegar o caminho absoluto, no entanto isso não seria muito útil visto que a minha aplicação ficaria presa a um determinado sistema operacional.
algum outro método ?

procura no google get relative path java web

Se for local use dessa forma:

String caminho = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/") +"//web//seu_diretorio//"

No servidor deve ser assim:

String caminho = FacesContext.getCurrentInstance().getExternalContext().getRealPath("..//..") +"//web//seu_diretorio//"

Nesse momento estou procurando uma solução pra funcionar tanto local quanto no server, se eu resolver isso posto aqui.
Use um System.Out.Printll pra imprimir o caminho vai ajudar um pouco.

Boa sorte