Enviar arquivo para uma Action!

2 respostas
Thiago_Francisco

Pessoal, eu tenho uma aplicação web usando framework struts e preciso que uma aplicação desktop leia algum arquivo físico e envia o mesmo para minha Action no caso eu receberia somente o stream do meu arquivo.
Alguém poderia me dizer como fazer essa comunicação entre minha aplicação desktop com a web passando algum arquivo?
Entenderam? Preciso enviar um arquivo para o protocolo http!?

public ActionForward showStream(ActionMapping mapping,ActionForm form,  
              HttpServletRequest request,HttpServletResponse response) throws Exception  
        {         
              
            //Aqui receberia o meu arquivo  
              
          return mapping.findForward("treeCubes");  
      }

2 Respostas

Thiago_Francisco

Thiago_Francisco

Ae galera eu consegui resolver, segue a solução.

Na aplicação desktop implementei a seguinte rotina:

public  LoadFileForAction(String filePath)
	{		    
			try 
			{
				String url ="http://localhost:8080/SimBrasilGeo/mci.do?method=showStream";				 
				HttpClient cli=new HttpClient();
				File file =new File(filePath);	
				 
				HttpMethod met=new GetMethod(url);
		         
		        HttpClient client = new HttpClient();
		        PostMethod httppost = new PostMethod("http://localhost:8080/SimBrasilGeo/mci.do?method=showStream");

		        httppost.setRequestEntity(new InputStreamRequestEntity( new FileInputStream(file), file.length()));

		        try {
		            client.executeMethod(httppost);

		            if (httppost.getStatusCode() == HttpStatus.SC_OK) {
		                System.out.println(httppost.getResponseBodyAsString());
		            } else {
		              System.out.println("Unexpected failure: " + httppost.getStatusLine().toString());
		            }
		        } finally {
		            httppost.releaseConnection();
		        }
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}  
		       
	}

No projeto web, Action

public ActionForward showStream(ActionMapping mapping,ActionForm form,
			HttpServletRequest request,HttpServletResponse response) throws Exception
	{	
	 
		 InputStream inputStream =request.getInputStream();
		 InputStreamReader isr = new InputStreamReader(inputStream);
		 int x = inputStream.read();
		 BufferedReader br =    new BufferedReader(isr);
	     String line = null;  
	     String novaLinha ="";
		     while( (line=br.readLine() ) != null ) {  
		        novaLinha = line.toUpperCase();  
		       
	     }   
		 return mapping.findForward("groupCube");
	}
Criado 2 de junho de 2009
Ultima resposta 3 de jun. de 2009
Respostas 2
Participantes 1