struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Newton <newton.d...@yahoo.com>
Subject Re: Download a Java ME application to mobile using StreamResult
Date Sun, 03 May 2009 16:51:57 GMT
Using the "stream" result is the canonical way to download files in S2.

It's not clear to me what you're trying to do with the 
DownloadInterceptor class, which looks like an interceptor, but extends 
a result. In most circumstances there should be no need to create an 
interceptor for downloading files.

Maybe the "stream" result docs will help. IIRC there's also a download 
example in showcase (could be wrong about that).

http://struts.apache.org/2.x/docs/stream-result.html

Dave

Niklas Johansson wrote:
> 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
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message