I am trying to use ClientBundle in GWT To load messages.
Here is my code: gwt.xml
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='StockWatcher'>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User'/>
<!-- We need the JUnit module in the main module, -->
<!-- otherwise eclipse complains (Google plugin bug?) -->
<inherits name='com.google.gwt.junit.JUnit'/>
<!-- Inherit the default GWT style sheet. You can change -->
<!-- the theme of your GWT application by uncommenting -->
<!-- any one of the following lines. -->
<inherits name='com.google.gwt.user.theme.standard.Standard'/>
<!-- <inherits name='com.google.gwt.user.theme.chrome.Chrome'/> -->
<!-- <inherits name='com.google.gwt.user.theme.dark.Dark'/> -->
<!-- Other module inherits -->
<!-- Specify the app entry point class. -->
<entry-point class='ro.gebs.master.client.StockWatcher'/>
<!-- Specify the paths for translatable code -->
<source path='client'/>
<source path='shared'/>
<source path='resources'/>
</module>
The interface that extends ClientBundle:
public interface Resources extends ClientBundle {
Resources IMPL = (Resources) GWT.create(Resources.class);
@Source("ro/gebs/master/resources/blogger.png")
ImageResource blogger();
@Source("ro/gebs/master/resources/delicious.png")
ImageResource delicious();
@Source("ro/gebs/master/resources/facebook.png")
ImageResource facebook();
}
Here i try to use the images in my EntryPoint class:
ImageResource[] icons = new ImageResource[]{
Resources.IMPL.blogger(),
Resources.IMPL.delicious(),
Resources.IMPL.facebook()
};
And the error i get:
Exception while loading module ro.gebs.master.client.StockWatcher. See Development Mode for details.
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:411)
at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:526)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.ExceptionInInitializerError
at ro.gebs.master.client.StockWatcher.onModuleLoad(StockWatcher.java:24)
... 9 more
Caused by: java.lang.RuntimeException: Deferred binding failed for 'ro.gebs.master.client.Resources' (did you forget to inherit a required module?)
at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:53)
at com.google.gwt.core.shared.GWT.create(GWT.java:72)
at com.google.gwt.core.client.GWT.create(GWT.java:86)
at ro.gebs.master.client.Resources.<clinit>(Resources.java:12)
... 10 more
Caused by: com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries)
at com.google.gwt.dev.shell.ModuleSpace.rebind(ModuleSpace.java:610)
at com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate(ModuleSpace.java:470)
at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:49)
... 13 more
The images are placed in a package named 'resources' but what i understand form the error is that the line with GWT.create()
seems to be the problem.
Try relative position as shown below
@Source("../resources/blogger.png")
ImageResource blogger();
@Source("../resources/delicious.png")
ImageResource delicious();
@Source("../resources/facebook.png")
ImageResource facebook();
Project structure
ro/gebs/master
|
|__resources
| |
| |__blogger.png
|
|__client
|
|__StockWatcher.java
--EDIT--
Make sure that images are placed under correct location with correct name and extension.