Google Gadget: works in hosted mode, but not in web mode (iGoogle)

20 views
Skip to first unread message

flokay

unread,
Nov 30, 2009, 10:17:24 AM11/30/09
to Google Web Toolkit
Hi,

I've got an issue with my Google Gadget:
- I'm trying to read an XML file via RequestBuilder and show it in the
gadget (only for testing purpose)
- If I try it in hosted mode with "onModuleLoad()" method and so on,
it works well
- But if i add it to iGoogle the string variable of response.getText()
is empty in Firefox and in IE there appears the following message:
"...url.. is invalid or violates the same-origin security restriction"
- My XML file from which should be read is exactly in the same
directory as my gadget XML file, so there actually couldn't be a same-
origin security restriction.

- I'm using GWT 1.7.1!

I've tried to fix this since over a week now and I don't know what
else to do!
Could anbody help me?

Best regards,

flokay

Eric Ayers

unread,
Nov 30, 2009, 11:52:20 AM11/30/09
to google-we...@googlegroups.com
See the Gadget RPC example in the gwt-google-apis project  for how to set the proxy in request builder.


--

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-we...@googlegroups.com.
To unsubscribe from this group, send email to google-web-tool...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.





--
Eric Z. Ayers
Google Web Toolkit, Atlanta, GA USA

flokay

unread,
Dec 1, 2009, 10:37:52 AM12/1/09
to Google Web Toolkit
OK thanks!

So I have made it with RPC now and in hosted mode, it works well
again!
But if I want to change it in a gadget the compiler writes the
following error message:

Compiling module
com.google.gwt.sample.cnsnews_rpc_gadget.CADENASNews_RPC_Gadget
Computing all possible rebind results for
'com.google.gwt.sample.cnsnews_rpc_gadget.client.CADENASNews_RPC_Gadget'
Rebinding
com.google.gwt.sample.cnsnews_rpc_gadget.client.CADENASNews_RPC_Gadget
Invoking <generate-with
class='com.google.gwt.gadgets.rebind.GadgetGenerator'/>
[ERROR] Generator
'com.google.gwt.gadgets.rebind.GadgetGenerator' threw threw an
exception while rebinding
'com.google.gwt.sample.cnsnews_rpc_gadget.client.CADENASNews_RPC_Gadget'
java.lang.NullPointerException
at
com.google.gwt.gadgets.rebind.GadgetGenerator.generateGadgetManifest
(GadgetGenerator.java:274)
at com.google.gwt.gadgets.rebind.GadgetGenerator.generate
(GadgetGenerator.java:142)
at com.google.gwt.dev.cfg.RuleGenerateWith.realize
(RuleGenerateWith.java:49)
at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.tryRebind
(StandardRebindOracle.java:113)
at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind
(StandardRebindOracle.java:62)
at com.google.gwt.dev.shell.StandardRebindOracle.rebind
(StandardRebindOracle.java:172)
at com.google.gwt.dev.shell.StandardRebindOracle.rebind
(StandardRebindOracle.java:161)
at com.google.gwt.dev.Precompile
$DistillerRebindPermutationOracle.getAllPossibleRebindAnswers
(Precompile.java:204)
at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile
(JavaToJavaScriptCompiler.java:250)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:300)
at com.google.gwt.dev.Compiler.run(Compiler.java:170)
at com.google.gwt.dev.Compiler$1.run(Compiler.java:124)
at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:
88)
at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger
(CompileTaskRunner.java:82)
at com.google.gwt.dev.Compiler.main(Compiler.java:131)

I'm already using the gwt-gadgets-noredist.jar file!
Any suggestions?
> > google-web-tool...@googlegroups.com<google-web-toolkit%2Bunsu...@googlegroups.com>
> > .

Eric Ayers

unread,
Dec 1, 2009, 11:14:33 AM12/1/09
to google-we...@googlegroups.com
This may be a conflict between different versions of xerces, because this part of the code is creating a new XML document.  You should be using the -noredist.jar file, and expecting to resolve xerces in your GWT build.  Are you explicitly including xerces in your build classpath?  

It may help to checkout the gwt-gadgets project from code and build a fresh .jar along with the version of GWT and xerces you are using.


To unsubscribe from this group, send email to google-web-tool...@googlegroups.com.

For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.


flokay

unread,
Dec 3, 2009, 9:03:38 AM12/3/09
to Google Web Toolkit
Now if I want to make the rpc call the "onFailureMethod" is invoked
and the error message:

"unable to initiate the asynchronous service invocation -- check the
network connection"

What could be wrong here?
> > <google-web-toolkit%2Bunsu...@googlegroups.com<google-web-toolkit%252Buns...@googlegroups.com>

flokay

unread,
Dec 14, 2009, 3:25:10 AM12/14/09
to Google Web Toolkit
I have still difficulties with RPC call in a gadget. In hosted mode it
works again, but not in iGoogle.
Here is my Code:

package com.google.gwt.sample.cnsnews_rpc_gadget.client;

import java.io.Serializable;

import com.google.gwt.sample.cnsnews_rpc_gadget.client.FakeResponse;
import com.google.gwt.sample.cnsnews_rpc_gadget.client.GadgetResponse;
import com.google.gwt.core.client.GWT;
import com.google.gwt.gadgets.client.Gadget;
import com.google.gwt.gadgets.client.IntrinsicFeature;
import com.google.gwt.gadgets.client.NeedsIntrinsics;
import com.google.gwt.gadgets.client.Gadget.ModulePrefs;
import com.google.gwt.http.client.RequestBuilder;
import com.google.gwt.http.client.RequestCallback;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;


@ModulePrefs(title = "CADENAS News", author = "mr")
public class CADENASNews_RPC_Gadget extends Gadget<NewsPreferences>
implements NeedsIntrinsics, AsyncCallback<String>
{


IntrinsicFeature intrinsicMethods;
private final static GadgetServiceAsync gadgetService =
(GadgetServiceAsync) GWT.create(GadgetService.class);


static {
disableStats();
}

private static native void disableStats() /*-{
$wnd.$stats = null;
}-*/;


public void initializeFeature(IntrinsicFeature feature) {
this.intrinsicMethods=feature;
}

public void init(NewsPreferences preferences) {


ServiceDefTarget serviceDef = (ServiceDefTarget) gadgetService;
String rpcUrl = serviceDef.getServiceEntryPoint();
rpcUrl = intrinsicMethods.getCachedUrl(rpcUrl);
String protocol = rpcUrl.substring(0, rpcUrl.indexOf(':'));
String file = rpcUrl.substring(rpcUrl.indexOf('/', rpcUrl.indexOf
(':')+3));
serviceDef.setServiceEntryPoint(protocol+"://"+ getDomain() + file);

RequestBuilder requestBuilder = gadgetService.getXML
(CADENASNews_RPC_Gadget.this);

String url = requestBuilder.getUrl();
makeGetRequest(url, requestBuilder.getRequestData(),
requestBuilder.getCallback());

}

private static native String getDomain() /*-{
return $wnd.document.domain;
}-*/;

public void onFailure(Throwable caught) {
Label lbl2 = new HTML(caught.getLocalizedMessage());
RootPanel.get().add(lbl2);
}

public void onSuccess(String result) {
Label lbl = new HTML(result);
RootPanel.get().add(lbl);
}

private native void makeGetRequest(String url, String postdata,
RequestCallback callback) /*-{
var params = {};
params[$wnd.gadgets.io.RequestParameters.METHOD] =
$wnd.gadgets.io.MethodType.GET;
params[$wnd.gadgets.io.RequestParameters.POST_DATA]= postdata;
$wnd.gadgets.io.makeRequest(url, response, params);

function response(obj) {

@com.google.gwt.sample.cnsnews_rpc_gadget.client.CADENASNews_RPC_Gadget::onSuccessInternal
(Lcom/google/gwt/sample/cnsnews_rpc_gadget/client/GadgetResponse;Lcom/
google/gwt/http/client/RequestCallback;)(obj, callback);
};
}-*/;

static void onSuccessInternal(final GadgetResponse response,
RequestCallback callback) {
try {
String responseText = response.getText();
callback.onResponseReceived(null, new FakeResponse(response));

} catch (Exception e) {
callback.onError(null, e);
}
}
}

Does anyone know what's wrong here?
> > > > > - If I try it inhostedmodewith "onModuleLoad()" method and so on,
Reply all
Reply to author
Forward
0 new messages