PDA

View Full Version : com.extjs.gxt.ui.client.data.BeanModelLookup not found



sumncc
29 Aug 2009, 6:13 PM
Hi,
Is there anyone fix this for me please. I am having trouble with this old "com.extjs.gxt.ui.client.data.BeanModelLookup not found"
bugs in project.(I knwo this old topics but I am really stuck with it)
I am using eclipse ganymede 3.4.2. I have downloaded the GXT2.01 and followed the readme file in that to create my project. Then I created a bean using provided bean super class for my combos.
Its very simple program(one bean and one
Portlet class to test.If you could kindly recreate the installation. I can run on hosted mode but can not compile it.

I know that the classpath setting should include the scr and as well as classes to get this done. I have done this but unfortunately no result. If some one could tell me how to get the roght class path for this.

NB. I cam email my little test project to make it easy to recreate the problem,if someone wish to investigate for me.

Arno.Nyhm
31 Aug 2009, 4:30 AM
pls post your testcase here.

sumncc
31 Aug 2009, 7:42 AM
pls post your testcase here.

Hi , Many thanks fo this so far. I have pasted all three clsses execpt the main class. The setting as I said earlier is accroding to the read only file comes with GXT2.0 distribution.

BEAN CLASS
=====================================
package demo.app.client.model;
import com.extjs.gxt.ui.client.data.BaseModelData;
public class Country extends BaseModelData {
public Country() {
}
public Country(String abbr, String name,String flag) {
setAbbr(abbr);
setName(name);
setFLag(flag);
}
public String getName() {
return get("name");
}
public void setName(String name) {
set("name", name);
}
public String getAbbr() {
return get("abbr");
}
public void setAbbr(String abbr) {
set("abbr", abbr);
}

public String getFlag() {
return get("flag");
}
public void setFLag(String flag) {
set("flag", flag);
}
}


TEST DATA Class
==============================================
public class TestData {

public static List<Country> getCountries() {
List<Country> countries = new ArrayList<Country>();
countries.add(new Country("AUD", "Australia, Dollars","au"));
countries.add(new Country("BDT", "Bangladesh, Taka","bd"));

countries.add(new Country("CAD","Canada, Dollars","ca"));
countries.add(new Country("CUP", "Cuba, Pesos","cu"));
countries.add(new Country("CNY", "China, Yuan Renminbi ","cn"));
countries.add(new Country("EUR", "Europe, Euro","europeanunion"));
countries.add(new Country("BRL", "Brazil, Real","br"));
countries.add(new Country("GBP", "Britain (United Kingdom), Pounds","gb"));

countries.add(new Country("EGP", "Egypt, Pounds ","eg"));

countries.add(new Country("HKD", "Hong Kong, Dollars ","hk"));
countries.add(new Country("INR", "India Rupees","in"));
countries.add(new Country("JPY", "Japan, Yen ","jp"));
countries.add(new Country("ZAR", "South Africa, Rand ","sa"));
countries.add(new Country("MYR", "Malaysia, Ringgits ","ml"));
countries.add(new Country("NPR", "Nepal, Rupees ","np"));
countries.add(new Country("PKR", "Pakistan, Rupees ","pk"));
countries.add(new Country("SAR", "Saudi Arabia, Riyals","sa"));
countries.add(new Country("SGD", "Singapore, Dollars ","sg"));
countries.add(new Country("SEK", "Sweden, Kronor","se"));
countries.add(new Country("THB", "Thailand, Baht ","th"));
countries.add(new Country("TRY", "Turkey, New Lira ","tr"));
countries.add(new Country("USD", "USA, Dollars","us"));



return countries;
}
}


PORLET CLASS TO CALL ON MODULE LOAD
============================================


package demo.app.client;


import com.extjs.gxt.ui.client.Style.Orientation;

import com.extjs.gxt.ui.client.store.ListStore;

import com.extjs.gxt.ui.client.util.Margins;

import com.extjs.gxt.ui.client.util.Padding;

import com.extjs.gxt.ui.client.widget.LayoutContainer;

import com.extjs.gxt.ui.client.widget.Text;

import com.extjs.gxt.ui.client.widget.custom.Portlet;

import com.extjs.gxt.ui.client.widget.form.ComboBox;

import com.extjs.gxt.ui.client.widget.layout.HBoxLayout;

import com.extjs.gxt.ui.client.widget.layout.HBoxLayoutData;

import com.extjs.gxt.ui.client.widget.layout.RowData;

import com.extjs.gxt.ui.client.widget.layout.RowLayout;

import com.extjs.gxt.ui.client.widget.layout.VBoxLayout;

import com.extjs.gxt.ui.client.widget.layout.VBoxLayoutData;

import com.extjs.gxt.ui.client.widget.layout.HBoxLayout.HBoxLayoutAlign;

import com.google.gwt.user.client.Window;

import com.google.gwt.user.client.ui.Label;


import demo.app.client.model.Country;


public class MoneyConversion extends Portlet{

 

private ComboBox<Country> comboFirst;
private ComboBox<Country> comboSecond;

 
 
public MoneyConversion() {

setHeading("Money Conversion");
setSize(600, 140);
setBodyStyle("fontSize: 14px; padding: 0px; backgroundColor: #CCFFFF");

HBoxLayout layout = new HBoxLayout();
layout.setPadding(new Padding(5));
layout.setHBoxLayoutAlign(HBoxLayoutAlign.TOP);

setLayout(layout);

//drawRadios();

drawCombsALL();

 
}
public void drawCombsALL(){
LayoutContainer allContainer = new LayoutContainer();
allContainer.setSize(480, 140);

VBoxLayout layout = new VBoxLayout();
layout.setPadding(new Padding(0));

allContainer.setLayout(layout);
//----------------------Combos----------------

ListStore<Country> countries = new ListStore<Country>();
countries.add(TestData.getCountries());

 

//combo Fisrt Conatiner==========================

LayoutContainer comboFisrtConatiner = new LayoutContainer();
comboFisrtConatiner.setSize(480, 20);

comboFisrtConatiner.setLayout(new RowLayout(Orientation.HORIZONTAL));

Label labelFisrt =new Label("From Currency :");
comboFisrtConatiner.add(labelFisrt,new RowData(.25,20, new Margins(2)));

 
 
comboFirst = new ComboBox();
comboFirst.setWidth(150);
comboFirst.setStore(countries);
comboFirst.select(3);

comboFirst.setShadow(true);
comboFirst.setTemplate(getFlagTemplate(isExplorer() ? "" : "../../"));
comboFirst.setDisplayField("name");
comboFirst.setSelection(countries.getModels());
comboFirst.setValue(countries.getAt(7));

comboFisrtConatiner.add(comboFirst,new RowData(.5,20, new Margins(2)));
comboFisrtConatiner.add(new Text(),new RowData(.1,20, new Margins(0,0,0,50)));

allContainer.add(comboFisrtConatiner,new VBoxLayoutData(10, 5, 2, 15));



// combo Second Conatiner---------------------

LayoutContainer comboSecondConatiner = new LayoutContainer();
comboSecondConatiner.setSize(480, 20);
comboSecondConatiner.setLayout(new RowLayout(Orientation.HORIZONTAL));

Label label =new Label("To Currency :");
comboSecondConatiner.add(label,new RowData(.25,20, new Margins(2)));

 
 
comboSecond = new ComboBox();
comboSecond.setWidth(150);
comboSecond.setShadow(true);
comboSecond.setStore(countries);
comboSecond.setTemplate(getFlagTemplate(isExplorer() ? "" : "../../"));
comboSecond.setDisplayField("name");
comboSecond.setValue(countries.getAt(1));

comboSecondConatiner.add(comboSecond,new RowData(.5,20, new Margins(2)));

allContainer.add(comboSecondConatiner,new VBoxLayoutData(4, 5, 5, 15));


add(allContainer,new HBoxLayoutData(new Margins(0, 5, 0, 0)));
}

 



public static boolean isExplorer() {
String test = Window.Location.getPath();
if (test.indexOf("pages") != -1) {
return false;
}
return true;
}

 
private native String getFlagTemplate(String base) /*-{
return [
'<tpl for=".">',
'<div class="x-combo-list-item"><img width="16px" height="11px" src="' + base + 'res/flags/{[values.flag]}.png"> {[values.name]}</div>',
'</tpl>'
].join("");
}-*/;

 
 
}

Arno.Nyhm
1 Sep 2009, 5:44 AM
i used your code as a testcase and so far i dont found a error like you described!?
did you miss something? pls post also your main class. maybe the error is there.
when your error is thrown?

sumncc
1 Sep 2009, 9:51 AM
i used your code as a testcase and so far i dont found a error like you described!?
did you miss something? pls post also your main class. maybe the error is there.
when your error is thrown?


Here is my main class. Thanks again for your time and effort regardless you can solve the problem or not.



please note that I can run this on hosted mode with no problem. The error msg comes only when I try to compile it from the hosted mode window. One more thing-as I believe this is about the project settings, could please set up your workspace according the following way so that you can recreate the problem.


===========================
Quick Setup for Ext GWT 2.X
===========================
Note : Ext GWT 2.X requires GWT 1.6.x
STEP 1 -> Create a GWT 1.6.x project within Eclipse.
Copy the contents of the /resources folder in the download to a {foldername} location with your war folder.
Substitute {foldername} with the name of the folder you've created for resources within your war folder.
STEP 3 -> Add the following stylesheet to your host page.
<link rel="stylesheet" type="text/css" href="{foldername}/css/gxt-all.css" />
STEP 3b -> If you are using Charts, add the following script to your host page.
<script language='javascript' src='{foldername}/flash/swfobject.js'></script>
STEP 4 -> Add the following entry to you projects module xml file.
<inherits name='com.extjs.gxt.ui.GXT'/>
STEP 5 -> Ext GWT requires the following doctype (quirksmode).
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
STEP 6 -> Eclipse Setup (should be similar for other development environments)
These instructions assume you have a existing project and launch configuration.
1. Add gxt.jar to the project.
a. Right click on project name in 'Package Explorer'.
b. Select 'Properties' from content menu.
c. Select 'Java Build Path'.
d. Select 'Libraries' tab.
e. Add the gxt.jar either with 'Add JARs...' or 'Add External JARs...'.

2. Add GXT jar to launch configuration.
a. Choose Run / Open Run Dialog.
b. Select your appropriate launch configuration under 'Java Application'.
c. Select the 'Classpath' tab.
d. Add the gxt.jar to the classpath.
=======================================================================

package demo.app.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class Demo1 implements EntryPoint {
/**
* The message displayed to the user when the server cannot be reached or
* returns an error.
*/
private static final String SERVER_ERROR = "An error occurred while "
+ "attempting to contact the server. Please check your network "
+ "connection and try again.";
/**
* Create a remote service proxy to talk to the server-side Greeting service.
*/
private final GreetingServiceAsync greetingService = GWT
.create(GreetingService.class);


public void onModuleLoad() {
RootPanel.get().add(new PortalExample());


}
}

Arno.Nyhm
2 Sep 2009, 3:44 AM
private final GreetingServiceAsync greetingService = GWT
.create(GreetingService.class);

this is the only point where it can comes from ... check this Service pls

sumncc
2 Sep 2009, 12:17 PM
Hi,
I think there is a fundemental misunderstanding on this discussion. I apolozies if I failed make it clear to you.
The bug you pointed is not a bug for me because I have that class in my project. Even I tried to remove the lines and tried to compile it and failed as usual. My problem is not a syntax error.

please note that I can run the test program with no problem on hosted mode. I can play with combos with no problem at all.

My problem is I can not compile using the "Complie" button on the hosted mode window. i mean to compile it to get ready to deploy.
I did not mean the biuld process on eclipse. Its the gwt compilation process.

Have tried to compile the test case ?Please try the button on the hosetd mode window not the eclipse build/compile.
Thanks again.

Arno.Nyhm
2 Sep 2009, 1:08 PM
mhhh i think there should be also an other button in eclipse to compile it.

but you write you have this error "com.extjs.gxt.ui.client.data.BeanModelLookup not found"

can you post also a full stacktrace of this error. and / or some lines below or after the output log where this error is.

sumncc
2 Sep 2009, 1:16 PM
Compiling module demo.app.Demo1
Scanning for additional dependencies: jar:file:/C:/GXT2M-26-augest/gxt-2.0.1/gxt.jar!/com/extjs/gxt/ui/client/data/BeanModelLookup.java
Computing all possible rebind results for 'com.extjs.gxt.ui.client.data.BeanModelLookup'
Rebinding com.extjs.gxt.ui.client.data.BeanModelLookup
Invoking <generate-with class='com.extjs.gxt.ui.rebind.core.BeanModelGenerator'/>
[ERROR] Class com.extjs.gxt.ui.client.data.BeanModelLookup not found.
java.lang.NullPointerException
at com.extjs.gxt.ui.rebind.core.BeanModelGenerator.getMarkerBean(BeanModelGenerator.java:184)
at com.extjs.gxt.ui.rebind.core.BeanModelGenerator.generate(BeanModelGenerator.java:54)
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.jdt.WebModeCompilerFrontEnd.doFindAdditionalTypesUsingRebinds(WebModeCompilerFrontEnd.java:128)
at com.google.gwt.dev.jdt.AbstractCompiler$CompilerImpl.process(AbstractCompiler.java:151)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444)
at com.google.gwt.dev.jdt.AbstractCompiler$CompilerImpl.compile(AbstractCompiler.java:85)
at com.google.gwt.dev.jdt.AbstractCompiler$CompilerImpl.compile(AbstractCompiler.java:181)
at com.google.gwt.dev.jdt.AbstractCompiler$CompilerImpl.access$400(AbstractCompiler.java:71)
at com.google.gwt.dev.jdt.AbstractCompiler.compile(AbstractCompiler.java:473)
at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.getCompilationUnitDeclarations(WebModeCompilerFrontEnd.java:73)
at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:254)
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:84)
at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:78)
at com.google.gwt.dev.Compiler.main(Compiler.java:131)
[ERROR] Errors in 'jar:file:/C:/GXT2M-26-augest/gxt-2.0.1/gxt.jar!/com/extjs/gxt/ui/client/data/BeanModelLookup.java'
[ERROR] Line 33: Failed to resolve 'com.extjs.gxt.ui.client.data.BeanModelLookup' via deferred binding
[ERROR] Cannot proceed due to previous errors

sven
2 Sep 2009, 1:57 PM
You added somewhere a @Bean annotaiton that is not correct.

sumncc
2 Sep 2009, 2:04 PM
I search the word '@Bean' on entire workspace but no match.