Hi Adam,
Thank you for the reply it definately helps! when you say it needs to
be well-formed javascript I have implemented a method that performs
the following:
/* (non-Javadoc)
* @see
javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest,
javax.servlet.http.HttpServletResponse)
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse
resp) throws ServletException, IOException
{
String output ="[{color: \"red\",value: \"#f00\"}]";
resp.setContentType("text/javascript");
resp.addHeader("Pragma", "no-cache");
resp.setStatus(200);
PrintWriter out = resp.getWriter();
out.println(output);
}
Would that be sufficient? Well I ask the question but I assume not as
with my implementation I successfully go back to my client handle
method now but the JavascriptObject passed in is always null.
My client side handle method is very basic as a test (shown below) and
I can confirm that when the claa is complete is definately hits this
method so the glue between is wrong somehow?
public void handleJsonResponse(JavaScriptObject jso)
{
if (jso == null)
{
Window.alert("Unable to parse JSON");
return;
}
else
{
Window.alert("Well done Woohoo!!");
}
}
eggsy
On Oct 6, 9:28 pm, Adam T <[EMAIL PROTECTED]> wrote:
> Eggsy,
>
> To get it to work you need to get the plumbing right, and it's not
> quite the same way as calling from code - btw, the example on that
> page is aimed at client side not server side. The server is any
> language you want as long as it returns a well-formed JavaScript
> segment of the form:
>
> mycallback({....some json content....})
>
> So your servlet would work as long as it returns something like the
> above.
>
> In this approach you don't call the servlet in the normal way from the
> program code, rather it gets called as a consequence of adding a
> <script> tag to the DOM - this is what the addScript() method in the
> example code does. Once the script is added to the DOM the browser
> accesses the defined url of your service and expects a response. As
> the response is a JavaScript function, it will get evaluated in the
> browser.
>
> If you also define a function in the DOM with the same name you expect
> back in the server response, e.g. mycallback, and that function calls
> the GWT handle() function then the loop is closed. The example code
> adds such a function using the setUp() method.
>
> The example code reserves a new function name for each "call" made to
> the server, adds that new function to the DOM and then the <script>
> tag.
>
> Where things usually go wrong are if the server returns a function
> name not set up, or the response is not a valid javascript expression.
>
> Hope that helps in some small way!
>
> //Adam
>
> this then gets evaluated in the browser
>
> On 6 Okt, 17:02, eggsy84 <[EMAIL PROTECTED]> wrote:
>
> > Hi all,
>
> > Taking the informative article by Dan Morrill at GWT
>
> > Link:http://code.google.com/support/bin/answer.py?answer=65632&topic=11368
>
> > It explains how to code for Server side mashups so that you can
> > perform cross site JSONP calls.
>
> > In the article he uses the handle method (Shown below) to handle the
> > return from the server side:
>
> > public void handle(JavaScriptObject jso) {
> > JSONObject json = new JSONObject(jso);
> > JSONArray ary =
> > json.get("feed").isObject().get("entry").isArray();
> > for (int i = 0; i < ary.size(); ++i) {
> > RootPanel.get().add(new
> > Label(ary.get(i).isObject().get("title").isObject().get("$t").toString()));
> > }
> > }
>
> > I have tried writing my own basic Java Servlet GET/POST we all know
> > the score and I can successfully call into my servlet but I never get
> > back to my client side, in this case after the servlet has done its
> > stuff, I never go back to the handle method to perform some whizz bang
> > GWT stuff - is there something specific you are required to do on the
> > server side? Such as extends RemoteServiceServlet as you would do in a
> > normal GWT AsyncCallback call? Anyone got any ideas?
>
> > Thanks all
>
> > eggsy
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---