Criar Arquivo Txt Com Tomcat [RESOLVIDO]

11 respostas
L

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

11 Respostas

L

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.

A

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.

L

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.

L

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

A

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

L

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()
E

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

L

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!

A

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.

L

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

A

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!

Criado 10 de dezembro de 2013
Ultima resposta 12 de dez. de 2013
Respostas 11
Participantes 3