struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Niklas Johansson <nic_s...@hotmail.com>
Subject Download a Java ME application to mobile using StreamResult
Date Sun, 03 May 2009 16:44:31 GMT

Hello,

I am trying to create an application for the mobile phone from which you can download a Java
ME application. 

I have gotten so far that I can download the .jad file but the only thing that happens is
that the content it is presented on the screen like this:
MIDlet-1: WLListenerMIDlet,,WLListenerMIDlet
MIDlet-Jar-Size: 44641
MIDlet-Jar-URL: MobileTrainer.jar
MIDlet-Name: MobileTrainer
MIDlet-Vendor: Vendor
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.1

I.e, the actual application (.jar) is not downloaded. 

The URL when this is presented is ending with "downloadMobileTrainer.action", i.e. not the
actual file. When accessing the .jad file directly it works. 

I am in a need of help because I am stuck and are getting no further. I also wonder if this
is the correct way of doing it, if it is possible at all
using StreamResult for my purpose. I would really like to use Struts2 built in feature for
this if possible. 

Here is my code: 

My download form in the jsp page:

	
    		    		
       		
  	


struts.xml:


    
     	
			 
	          
        		    		    		  		
			 
				 text/vnd.sun.j2me.app-descriptor 						
			  ../../jsp/mobile/error.jsp 
		    				
        
    




Extended StreamResult class:

public class DownloadInterceptor extends StreamResult{
	
		   protected void doExecute(String finalLocation, ActionInvocation invocation)
		   throws Exception {

		 String downloadedFileName = "MobileTraining.jad";
		  
		 contentDisposition = "filename=\"MobileTraining.jad";		  
		 contentLength = ""+ invocation.getStack().findValue(conditionalParse("size", invocation));
		 
		// contentType = "text/vnd.sun.j2me.app-descriptor";
		 
		  super.doExecute(finalLocation, invocation);

	}
}

My action class:


	      public class DownloadMTAction  extends ActionSupport {
			 
	      private File mobileTrainer;
	      private String contentType;
	      private String filename;

	      private InputStream inputStream;

	      public InputStream getInputStream()
	      {	    	 
	    	  try{	    		  
	    		  inputStream = new FileInputStream(new File("C:\\\\Users\\Niklas\\Documents\\JavaMESDKProjects\\MobileTrainer\\dist\\MobileTrainer.jad"));
	    	  }catch(Exception e){
	    		  System.out.println("Error in DownladMTAction " + e.getMessage());
	    		  e.printStackTrace();
	    	  }return inputStream;
	      }
	      
	      public void setInputStream(InputStream inputStream){
	    	  this.inputStream = inputStream; 
	      }
	      
	      public void setMobileTrainer(File mobileTrainer) {
	         this.mobileTrainer = mobileTrainer;
	      }
	
	      public void setMobileTrainerContentType(String contentType) {
	         this.contentType = contentType;
	      }

	      public void setMobileTrainerFileName(String filename) {
	         this.filename = filename;
	      }

	      public String execute() {
	    	  
	    	  this.inputStream = getInputStream();

	          if(inputStream !=null)
	          {
	            
	            return Action.SUCCESS;

	          }
	          else
	          {	            
	             return Action.ERROR;
	          } 	               	    	  	      
	      }
}

I have tried to set the content-type in both my struts.xml file and the extended StreamResult
class above (now commented out there). 

Thank you in advance!

Regards,
Niklas



_________________________________________________________________
Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy!
http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message