Re: return type image from server

2010-05-19 Thread Stefan Bachert
Hi,

I would expect this code to run (data-url are ok, maybe IE6 has a
problem)

However, I would use this kind of code only when the (small) image may
change from time to time.
When the image could considered to be rather static I would just make
a classical http request for this image.
When the image is real static it should be part of  ClientBundle

Stefan Bachert
http://gwtworld.de

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: return type image from server

2010-05-18 Thread Professor Vagner
Try this.


import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

/**
 * The client side stub for the RPC service.
 */
@RemoteServiceRelativePath(greet)
public interface GreetingService extends RemoteService {
String getImage(String name) throws IllegalArgumentException;
}// end GreetingService

##

/**
 * The async counterpart of codeGreetingService/code.
 */
public interface GreetingServiceAsync {
void getImage(String input, AsyncCallbackString callback)
throws IllegalArgumentException;
}// end GreetingServiceAsync

##

package testes.gwt.server;

import java.io.FileInputStream;

import sun.misc.BASE64Encoder;
import testes.gwt.client.GreetingService;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

/**
 * The server side implementation of the RPC service.
 */
public class GreetingServiceImpl extends RemoteServiceServlet implements
GreetingService {

private static final long serialVersionUID = -7242788956943039085L;

public String getImage(String input) throws IllegalArgumentException {

try {
BASE64Encoder base64Encoder = new BASE64Encoder();
FileInputStream fileInputStream = new
FileInputStream(myImage);

byte[] buffer = new byte[fileInputStream.available()];

StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(data:image/png;base64,);
fileInputStream.read(buffer);
stringBuilder.append(base64Encoder.encode(buffer));
return stringBuilder.toString();
} catch (Exception e) {
e.printStackTrace();
}// end catch
return null;
}// end getImage
}// end GreetingServiceImpl


##


public void onFailure(Throwable caught) {}

public void onSuccess(String result) {
if (!img.isVisible())
   img.setVisible(true);
img.getElement().setPropertyObject(src, result);
 } // end onSuccess


-- 
Professor Vagner

O PLANETA É O MEU PAÍS, E A CIÊNCIA É A MINHA RELIGIÃO ! INDO AO INFINITO E
ALÉM... !!

-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.



Re: return type image from server

2010-05-18 Thread Sripathi Krishnan
I don't think it is possible to create an image using base64 encoded data.
Even if it were possible, you don't want to do it for a lot of reasons,
namely
a) RPC uses POST, which is not easily cacheable
b) Its a waste of bandwidh. RPC and base64 both have their overheads
c) You have to deal with the asynchronous nature of RPC
d) Its non-intuitive, and a lot more work

i cannot fetch it directly from the client since this image needs to be
 registered in the session of the GWT-server - image servlet, if i fetch it
 from the client it will be registered in the client session with the image
 servlet.

Could you explain this statement? It looks to me you are confused with the
concept of sessions. Serving images via a servlet is a pretty standard
technique, you need to better explain your problems with that approach.

--Sri


On 18 May 2010 23:57, Professor Vagner professorvag...@javaneses.comwrote:

 Try this.


 import com.google.gwt.user.client.rpc.RemoteService;
 import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

 /**
  * The client side stub for the RPC service.
  */
 @RemoteServiceRelativePath(greet)
 public interface GreetingService extends RemoteService {
 String getImage(String name) throws IllegalArgumentException;
 }// end GreetingService


 ##

 /**
  * The async counterpart of codeGreetingService/code.
  */
 public interface GreetingServiceAsync {
 void getImage(String input, AsyncCallbackString callback)
 throws IllegalArgumentException;
 }// end GreetingServiceAsync


 ##

 package testes.gwt.server;

 import java.io.FileInputStream;

 import sun.misc.BASE64Encoder;
 import testes.gwt.client.GreetingService;

 import com.google.gwt.user.server.rpc.RemoteServiceServlet;

 /**
  * The server side implementation of the RPC service.
  */
 public class GreetingServiceImpl extends RemoteServiceServlet implements
 GreetingService {

 private static final long serialVersionUID = -7242788956943039085L;

 public String getImage(String input) throws IllegalArgumentException {

 try {
 BASE64Encoder base64Encoder = new BASE64Encoder();
 FileInputStream fileInputStream = new
 FileInputStream(myImage);

 byte[] buffer = new byte[fileInputStream.available()];

 StringBuilder stringBuilder = new StringBuilder();
 stringBuilder.append(data:image/png;base64,);
 fileInputStream.read(buffer);
 stringBuilder.append(base64Encoder.encode(buffer));
 return stringBuilder.toString();
 } catch (Exception e) {
 e.printStackTrace();
 }// end catch
 return null;
 }// end getImage
 }// end GreetingServiceImpl



 ##


 public void onFailure(Throwable caught) {}

 public void onSuccess(String result) {
 if (!img.isVisible())
img.setVisible(true);
 img.getElement().setPropertyObject(src, result);
  } // end onSuccess


 --
 Professor Vagner

 O PLANETA É O MEU PAÍS, E A CIÊNCIA É A MINHA RELIGIÃO ! INDO AO INFINITO E
 ALÉM... !!

  --
 You received this message because you are subscribed to the Google Groups
 Google Web Toolkit group.
 To post to this group, send email to google-web-tool...@googlegroups.com.
 To unsubscribe from this group, send email to
 google-web-toolkit+unsubscr...@googlegroups.comgoogle-web-toolkit%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/google-web-toolkit?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
Google Web Toolkit group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.