struts-user mailing list archives

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

Hello Dave,

I guess the link you sent is pointing to a similar way of doing it as I did. This 
is my reference: http://sheetalshundori.blogspot.com/2008/02/struts2-dynamic-file-download.html

The reason why I am doing like this is because I don't want it to be possible to 
download the file without entering some kind of "ordernumber". I.e. the file must be
protected. The reason why I chosed this solution is simply because that is the solution
I found while googleing. 

Is there perhaps a better way of doing this? 

Regards,
Niklas

----------------------------------------
> Date: Sun, 3 May 2009 12:51:57 -0400
> From: newton.dave@yahoo.com
> To: user@struts.apache.org
> Subject: Re: Download a Java ME application to mobile using StreamResult
>
> 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
>

_________________________________________________________________
Drag n’ drop—Get easy photo sharing with Windows Live™ Photos.

http://www.microsoft.com/windows/windowslive/products/photos.aspx
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message