Criar Arquivo Txt Com Tomcat [RESOLVIDO]

Dia, srs estou com um problema que está complicado para resolver.

Estou tentando criar um arquivo txt na rede eu um diretorio que está com permissão full. Mais nao criar o arquivo. motivo: “Acesso Negado”.

Na maquina de testes o arquivo é criado normalmente e quando executo o programa no ambiente de produção da o erro de acesso negado.

As diferença entre as maquina são:

De testes: O acesso é pela rede no ip da maquina de testes
De Produção: O acesso vem por fora da rede

Att.
Leandrooooo

So para ficar mais claro.

Tenho:
maquina A - TESTE
maquina B - Produção
maquina C - Onde será gravado o arquivo.

Caminho iguais mais na maquina de produção não grava já no de testes grava normalmente.

Fala garoto!

É o seguinte, tive um problema semelhante aqui na empresa, logo você deve verificar duas hipóteses.
Primeira: saber se você possui permissão para criar o arquivo no servidor.
Segunda: Verificar se o firewall estar bloqueado esse processo.

Valew, vou dar uma olhada…

Arquivo eu crio sem problemas no servidor.
Acho que vai ser o firewall q deve estar bloqueando a criação do arquivo quando vem por fora da rede.

Cara, continua precisando da sua ajuda, já que passou por isso.

Olha que estranho, quando chamo o servlet para criar o arquivo tem dois erro diferente com caminhos diferentes, só que os dois caminhos são verdadeiros, ou seja, existe na maquina e são o mesmo diretorio, o que pode estar acontecendo? Estamos vendo no firewall e pelo que estou sendo informado não está bloqueando nada.

java.io.FileNotFoundException: \\IP DA MAQUINA\Comum\wk\20131205174129.txt (Acesso negado)
	java.io.FileOutputStream.open(Native Method)
	java.io.FileOutputStream.<init>(Unknown Source)
	java.io.FileOutputStream.<init>(Unknown Source)
	java.io.FileWriter.<init>(Unknown Source)
	Enviar.doPost(Enviar.java:54)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Esse erro é o mapeamento que criei no servidor web

java.io.FileNotFoundException: Q:\wk\20131205174129.txt (O sistema não pode encontrar o caminho especificado)
	java.io.FileOutputStream.open(Native Method)
	java.io.FileOutputStream.<init>(Unknown Source)
	java.io.FileOutputStream.<init>(Unknown Source)
	java.io.FileWriter.<init>(Unknown Source)
	Enviar.doPost(Enviar.java:54)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Desde já obrigado.

leandrooooo

Como esta o seu método ou sua classe que cria este arquivo?

Segue abaixo:

File diretorio = new File("\\IP\\Comum\\workflow");
				//File diretorio = new File("Q:/workflow");
				
				String arqResp = diretorio.getPath()+"/"+apr_codaprov+apr_pedaca+".txt";
				File arquivo = new File(arqResp);
				Writer dados = new BufferedWriter(new FileWriter(arquivo));
				dados.write("APROVADOR="+apr_codaprov+"|PEDIDO="+apr_pedido+"|STATUS="+apr_status.substring(0,8)+"|MOTIVO="+apr_motivo+"|\r\n" );
				dados.flush();
				dados.close()

É tudo o mesmo sistema operacional? Use File.Separator ao invés de “”

Só a maquina que está o firewall que é linux o resto é tudo win.

Acho que o problema é no firewall, mais não sei o que pode estar pegando, pois como ja disse na rede interna o programa roda normalmente e quando faço o acesso externo e que tem que passar pelo firewall apresenta os erro já citado.

Complicado?!?!?!?!?!?!
Vai saber o que pode estar acontecendo!

Faz o seguinte, starta o tomcat com o teu usuário de rede no servidor. Em alguns casos e necessário que se de permissão para o serviço.
basta procurar o serviço do tomcat no painel de Serviços. para acessar se usa o atalho services.msc no executar.
Depois click com o botão direito no serviço do tomcat depois em Propriedades, na aba Logon marque a opção Esta Conta
e informe seu usuário e senha de rede para finalizar.

Cara, deu certo, inseri o usuário de rede funcionou.

Eu nao entendi o pq que foi necessário inserir esse usuario, sendo que na maquina de testes não tem?

E outra, servidor web estava em outra maquina e funcionava redondinho sem o usuario de rede (Não me lembro mais acho q quando era esta maquina o tomcat era 5.x), foi a gente trocar de maquina q comecou a dar problema e quando trocamos de maquina instalei o tomcar 7.x.

Mais muito obrigado pela ajuda.

Att.
Leandroooo

Blz,!!

Porém o correto seria você criar uma pasta fora do tomcat e ativar permissão para criar arquivo na mesma, e caso necessário compartilha-la.
Neste caso você não tem permissão para criar arquivo dentro da pasta do tomcat no servidor!

Falow!