GWT Incubator PagingScrollTable compile error - gwt

I'm trying to implement this example: http://zenoconsulting.wikidot.com/blog:17 in my gwt app but when i try to compile the project i have this error :
Compiling module com.myapp.security.GwtSpringSecurityProject
Validating newly compiled units
Ignored 2 units with compilation errors in first pass.
Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors.
Scanning for additional dependencies: jar:file:/C:/_work/Eclipse/MyApp/war/WEB-INF/lib/gwt-incubator-20101117-r1766.jar!/com/google/gwt/gen2/table/client/AbstractScrollTable.java
Computing all possible rebind results for 'com.google.gwt.gen2.table.client.AbstractScrollTable.Impl'
Rebinding com.google.gwt.gen2.table.client.AbstractScrollTable.Impl
Could not find an exact match rule. Using 'closest' rule <replace-with class='com.google.gwt.gen2.table.client.AbstractScrollTable.ImplIE6'/> based on fall back values. You may need to implement a specific binding in case the fall back behavior does not replace the missing binding
Scanning for additional dependencies: jar:file:/C:/_work/Eclipse/MyApp/war/WEB-INF/lib/gwt-incubator-20101117-r1766.jar!/com/google/gwt/gen2/table/client/FixedWidthTableImpl.java
Computing all possible rebind results for 'com.google.gwt.gen2.table.client.FixedWidthTableImpl.Impl'
Rebinding com.google.gwt.gen2.table.client.FixedWidthTableImpl.Impl
Could not find an exact match rule. Using 'closest' rule <replace-with class='com.google.gwt.gen2.table.client.FixedWidthTableImpl.ImplIE8'/> based on fall back values. You may need to implement a specific binding in case the fall back behavior does not replace the missing binding
[ERROR] An internal compiler exception occurred
com.google.gwt.dev.jjs.InternalCompilerException: Failed to get JNode
at com.google.gwt.dev.jjs.impl.TypeMap.get(TypeMap.java:140)
at com.google.gwt.dev.jjs.impl.TypeMap.internalGet(TypeMap.java:242)
at com.google.gwt.dev.jjs.impl.TypeMap.get(TypeMap.java:138)
at com.google.gwt.dev.jjs.impl.TypeMap.get(TypeMap.java:71)
at com.google.gwt.dev.jjs.impl.GenerateJavaAST$JavaASTGenerationVisitor.processExpression(GenerateJavaAST.java:1144)
at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gwt.dev.jjs.impl.GenerateJavaAST$JavaASTGenerationVisitor.dispatch(GenerateJavaAST.java:577)
at com.google.gwt.dev.jjs.impl.GenerateJavaAST$JavaASTGenerationVisitor.dispProcessExpression(GenerateJavaAST.java:603)
at com.google.gwt.dev.jjs.impl.GenerateJavaAST$JavaASTGenerationVisitor.processStatement(GenerateJavaAST.java:1771)
at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gwt.dev.jjs.impl.GenerateJavaAST$JavaASTGenerationVisitor.dispatch(GenerateJavaAST.java:577)
at com.google.gwt.dev.jjs.impl.GenerateJavaAST$JavaASTGenerationVisitor.dispProcessStatement(GenerateJavaAST.java:638)
at com.google.gwt.dev.jjs.impl.GenerateJavaAST$JavaASTGenerationVisitor.processStatements(GenerateJavaAST.java:1846)
at com.google.gwt.dev.jjs.impl.GenerateJavaAST$JavaASTGenerationVisitor.processMethod(GenerateJavaAST.java:1513)
at com.google.gwt.dev.jjs.impl.GenerateJavaAST$JavaASTGenerationVisitor.processType(GenerateJavaAST.java:501)
at com.google.gwt.dev.jjs.impl.GenerateJavaAST.exec(GenerateJavaAST.java:2958)
at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:608)
at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:33)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:284)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:233)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:145)
at com.google.gwt.dev.Compiler.run(Compiler.java:232)
at com.google.gwt.dev.Compiler.run(Compiler.java:198)
at com.google.gwt.dev.Compiler$1.run(Compiler.java:170)
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:177)
[ERROR] <no source info>: public abstract class java.text.DateFormat
extends java.text.Format
/* fields */
protected [unresolved] Unresolved type java.util.Calendar calendar
protected [unresolved] Unresolved type java.text.NumberFormat numberFormat
public static final [unresolved] int ERA_FIELD
public static final [unresolved] int YEAR_FIELD
public static final [unresolved] int MONTH_FIELD
public static final [unresolved] int DATE_FIELD
public static final [unresolved] int HOUR_OF_DAY1_FIELD
public static final [unresolved] int HOUR_OF_DAY0_FIELD
public static final [unresolved] int MINUTE_FIELD
public static final [unresolved] int SECOND_FIELD
public static final [unresolved] int MILLISECOND_FIELD
public static final [unresolved] int DAY_OF_WEEK_FIELD
public static final [unresolved] int DAY_OF_YEAR_FIELD
public static final [unresolved] int DAY_OF_WEEK_IN_MONTH_FIELD
public static final [unresolved] int WEEK_OF_YEAR_FIELD
public static final [unresolved] int WEEK_OF_MONTH_FIELD
public static final [unresolved] int AM_PM_FIELD
public static final [unresolved] int HOUR1_FIELD
public static final [unresolved] int HOUR0_FIELD
public static final [unresolved] int TIMEZONE_FIELD
private static final [unresolved] long serialVersionUID
public static final [unresolved] int FULL
public static final [unresolved] int LONG
public static final [unresolved] int MEDIUM
public static final [unresolved] int SHORT
public static final [unresolved] int DEFAULT
/* methods */
[unresolved] protected void <init>()
[unresolved] public java.lang.Object clone()
[unresolved] public boolean equals(java.lang.Object)
public final java.lang.String format(java.util.Date)
public final java.lang.StringBuffer format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition)
public abstract java.lang.StringBuffer format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition)
[unresolved] private static java.text.DateFormat get(int, int, int, Unresolved type java.util.Locale)
[unresolved] public static Unresolved type java.util.Locale[] getAvailableLocales()
[unresolved] public Unresolved type java.util.Calendar getCalendar()
[unresolved] public static final java.text.DateFormat getDateInstance()
[unresolved] public static final java.text.DateFormat getDateInstance(int)
[unresolved] public static final java.text.DateFormat getDateInstance(int, Unresolved type java.util.Locale)
[unresolved] public static final java.text.DateFormat getDateTimeInstance()
[unresolved] public static final java.text.DateFormat getDateTimeInstance(int, int)
[unresolved] public static final java.text.DateFormat getDateTimeInstance(int, int, Unresolved type java.util.Locale)
[unresolved] public static final java.text.DateFormat getInstance()
[unresolved] public Unresolved type java.text.NumberFormat getNumberFormat()
[unresolved] public static final java.text.DateFormat getTimeInstance()
[unresolved] public static final java.text.DateFormat getTimeInstance(int)
[unresolved] public static final java.text.DateFormat getTimeInstance(int, Unresolved type java.util.Locale)
[unresolved] public Unresolved type java.util.TimeZone getTimeZone()
[unresolved] public int hashCode()
[unresolved] public boolean isLenient()
[unresolved] public java.util.Date parse(java.lang.String) throws java.text.ParseException
[unresolved] public abstract java.util.Date parse(java.lang.String, Unresolved type java.text.ParsePosition)
[unresolved] public java.lang.Object parseObject(java.lang.String, Unresolved type java.text.ParsePosition)
[unresolved] public void setCalendar(Unresolved type java.util.Calendar)
[unresolved] public void setLenient(boolean)
[unresolved] public void setNumberFormat(Unresolved type java.text.NumberFormat)
[unresolved] public void setTimeZone(Unresolved type java.util.TimeZone)
/* members */
Unresolved type java.text.DateFormat$DateFormatGetter
Unresolved type java.text.DateFormat$Field
org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding
[ERROR] at PsTable.java(351): new SimpleDateFormat("MM/dd/yyyy").format(rowValue.getDate())
org.eclipse.jdt.internal.compiler.ast.MessageSend
[ERROR] at PsTable.java(351): return new SimpleDateFormat("MM/dd/yyyy").format(rowValue.getDate());
org.eclipse.jdt.internal.compiler.ast.ReturnStatement
[ERROR] at PsTable.java(350): public String getCellValue(Message rowValue);
com.google.gwt.dev.jjs.ast.JMethod
[ERROR] at PsTable.java(348): final class PsTable$DateColumnDefinition extends AbstractColumnDefinition
com.google.gwt.dev.jjs.ast.JClassType
i have simple added the class of this example in my app and i create a new PsTable in my gwt client class.

GWT Incubator's latest release is only compatible with GWT 2.1, and you're apparently using GWT 2.3 or later (the Could not find an exact match rule. Using 'closest' ruleā€¦ was added in 2.3 to support IE9). Add to that that GWT 2.2 breaks binary compatibility of generators (they have to be recompiled against GWT 2.2 or later) and you have a good reason for a failure.
From the GWT Incubator homepage, you should be able to replace PaagingScrollTable uses with GWT 2.4's DataGrid. It's admittedly a much different approach (cells vs. widgets) but it's the way to go nowadays: GWT Incubator is deprecated (for good reasons) and you really shouldn't use it, move away from it if your project used it, and absolutely do not start using it in new projects.
BTW, the article you link to is 3 years old. You can't expect anything good from such ancient code snippets.

Related

Is there a way to tell the scala compiler to generate private methods when compiling anonymous scala functions?

I have this code in Foo.scala
object Foo extends App
{
def bar() = () => println("hello")
bar()()
}
If I run
scalac Foo.scala
I obtain three .class files:
Foo$.class
Foo$delayedInit$body.class
Foo.class
If then I run
javap 'Foo$.class'
I get on stdout
Compiled from "Foo.scala"
public final class Foo$ implements scala.App {
public static Foo$ MODULE$;
public static {};
public java.lang.String[] args();
public void delayedInit(scala.Function0<scala.runtime.BoxedUnit>);
public void main(java.lang.String[]);
public long executionStart();
public java.lang.String[] scala$App$$_args();
public void scala$App$$_args_$eq(java.lang.String[]);
public scala.collection.mutable.ListBuffer<scala.Function0<scala.runtime.BoxedUnit>> scala$App$$initCode();
public void scala$App$_setter_$executionStart_$eq(long);
public final void scala$App$_setter_$scala$App$$initCode_$eq(scala.collection.mutable.ListBuffer<scala.Function0<scala.runtime.BoxedUnit>>);
public scala.Function0<scala.runtime.BoxedUnit> bar();
public static final void $anonfun$bar$1();
public final void delayedEndpoint$Foo$1();
}
As you can see the lambda that is returned from the bar method is
compiled into public static final void $anonfun$bar$1();
I would like to be able to have all the lambda used in my scala code compiled as private method instead of public ones (it shouldn't be a problem when those functions are just local method variables, since they can only be accessed from within the method in which they are declared). Is there a way to achieve that?
P.S.
I'm asking because I'm using Scala to create Java EE's EJB classes and EJB classes used with no-interface view cannot have methods that are both public and final (it must be possible to instantiate a subclass that overrides all the public methods to create a proxy)

Json custom deserializer not called in Websphere

I have simple class and field id is annotated with custom deserializer.
public class TestRequest implements Serializable {
#NotNull
#Pattern(regexp = "^[a-zA-Z0-9=+]*$")
#JsonDeserialize(using = StringDeserializer.class)
#JsonProperty
private String id;
//getter
//setter
}
and the custom deserializer class :
public class StringDeserializer extends JsonDeserializer<String> {
#Override
public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) {
Iterator<String> iterator = jsonParser.readValuesAs(String.class);
String id = iterator.next();
return id + "0000";
}
}
When i test with with Jersey REST test, the deserilizer is called and works as expected. But with websphere it does not called. Any idea why its not called.
I am using jaxrs 1.1
You may need to add the #Provider annotation to your StringDeserializer class, otherwise the JAX-RS runtime will not recognize the class as a provdier.
Even though your class extends JsonDeserializer<String>, which itself is probably annotated with #Provider, the JAX-RS runtime will not scan libraries for annotations, as doing negatively impacts performance.
I made it working in Websphere by moving the annotation #JsonDeserialize(using = StringDeserializer.class) to setter method of the class
public class TestRequest implements Serializable {
#NotNull
#Pattern(regexp = "^[a-zA-Z0-9=+]*$")
#JsonProperty
private String id;
#JsonDeserialize(using = StringDeserializer.class)
public setId(String id){
this.id=id;
}
//getter
//setter
}

dataNucleus enhancement runtime error: dnSetid NoSuchMethodError

dataNucleus 5.1.1: dnSetid NoSuchMethodError
#MappedSuperclass
public class Foo {
#Transient
public Long getId() {
...
}
public void setId(Long id) {
...
}
}
#Entity
public class Bar extends Foo {
#Id
#GeneratedValue(strategy=GenerationType.TABLE, generator="gen")
#TableGenerator(name="gen", ...)
public Long getId() {
...
}
}
java.lang.NoSuchMethodError: No virtual method dnSetid(Long) in class com.example.Bar
at com.example.Bar.dnCopyKeyFieldsFromObjectId(Unknown Source:15)
at com.example.Bar.dnNewInstance(Unknown Source:10)
at org.datanucleus.enhancer.EnhancementHelper.newInstance(EnhancementHelper.java:178)
at org.datanucleus.state.StateManagerImpl.initialiseForHollow(StateManagerImpl.java:373)
at org.datanucleus.state.ObjectProviderFactoryImpl.newForHollow(ObjectProviderFactoryImpl.java:113)
at org.datanucleus.ExecutionContextImpl.findObject(ExecutionContextImpl.java:3194)
at org.datanucleus.store.rdbms.query.PersistentClassROF.findObjectWithIdAndLoadFields(PersistentClassROF.java:458)
at org.datanucleus.store.rdbms.query.PersistentClassROF.getObject(PersistentClassROF.java:364)
at org.datanucleus.store.rdbms.query.ForwardQueryResult.nextResultSetElement(ForwardQueryResult.java:180)
at org.datanucleus.store.rdbms.query.ForwardQueryResult$QueryResultIterator.next(ForwardQueryResult.java:408)
at org.datanucleus.store.rdbms.query.ForwardQueryResult.processNumberOfResults(ForwardQueryResult.java:136)
at org.datanucleus.store.rdbms.query.ForwardQueryResult.advanceToEndOfResultSet(ForwardQueryResult.java:164)
at org.datanucleus.store.rdbms.query.ForwardQueryResult.closingConnection(ForwardQueryResult.java:290)
at org.datanucleus.store.query.AbstractQueryResult.disconnect(AbstractQueryResult.java:105)
at org.datanucleus.store.rdbms.query.AbstractRDBMSQueryResult.disconnect(AbstractRDBMSQueryResult.java:251)
at org.datanucleus.store.rdbms.query.JPQLQuery$2.managedConnectionPreClose(JPQLQuery.java:654)
at org.datanucleus.store.rdbms.ConnectionFactoryImpl$ManagedConnectionImpl.close(ConnectionFactoryImpl.java:532)
at org.datanucleus.store.connection.AbstractManagedConnection.release(AbstractManagedConnection.java:83)
at org.datanucleus.store.rdbms.ConnectionFactoryImpl$ManagedConnectionImpl.release(ConnectionFactoryImpl.java:371)
at org.datanucleus.store.rdbms.query.JPQLQuery.performExecute(JPQLQuery.java:730)
at org.datanucleus.store.query.Query.executeQuery(Query.java:1966)
at org.datanucleus.store.query.Query.executeWithMap(Query.java:1873)
dnSetid should be added by enhancement. Decompiled Bar.class: there is no such method. It contains dnGetid() and other methods dn****.
The only way of overriding is to override BOTH getter AND setter.
Likely the enhancer relies on both being there, whether it is for a defined property or an overridden property.

Validating a Spring ResourceSupport-ed parent resource as a not empty property in a child resource

I'm looking for guidelines into validating a parent admin resource (AdminResource extending the Spring ResourceSupport class) as not being empty (#NotEmpty) in a child admin module resource (AdminModuleResource extending the Spring ResourceSupport class).
I understand the AdminResource class should also implement the Serializable interface ? Is that the way to go with Spring ResourceSupport-ed resources ?
Here are my resources:
public class AdminResource extends AbstractResource {
private String firstname;
private String lastname;
#NotEmpty
#Email
private String email;
private String password;
private String passwordSalt;
}
public class AdminModuleResource extends AbstractResource {
#NotEmpty
private String module;
#NotEmpty
private AdminResource adminResource;
}
public abstract class AbstractResource extends ResourceSupport {
#JsonProperty("id")
private Long resourceId;
public AbstractResource() {
}
public Long getResourceId() {
return resourceId;
}
public void setResourceId(Long resourceId) {
this.resourceId = resourceId;
}
}
As of now, the #NotEmpty validator annotation gives me the error: No validator could be found for type...
But adding the "implements Serializable" to the resources did not help and the exception remained when using the #NotEmpty validator annotation.
public abstract class AbstractResource extends ResourceSupport implements Serializable {
}
Of course, commenting out the #NotEmpty validator annotation makes the Maven build successful.
Thanks for any directions tips !
Kind Regards,
Stephane
#NotEmpty is only supported for CharSequences (String), Collections, Maps and arrays. It either checks whether the string or collection/array is empty. What does it even mean that a AdminResource is not empty. Do you mean #NotNull?
If it really would make semantically sense to have a #NotEmpty for AdminResource, you would have to implement a custom ConstraintValidator for it and registering it via XML (see also http://beanvalidation.org/1.1/spec/#xml-mapping-constraintdefinition).

gwt rpc serialize generic class

I need to pass a class object through the gwt rpc connection as a generic but it seems that rpc does not cooperate with it. The class is serialized using the java.io.Serializable. I have checked it using the gwt IsSerializable but i still have the error.
Here is my code
MySource.java
#SuppressWarnings("serial")
#PersistenceCapable
#Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE)
public abstract class MySource implements Serializable {
#PrimaryKey
#Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
#Persistent
private String userId;
#Persistent
private String title;
#Persistent
private String description;
#Persistent
private String blobKey;
#Persistent
private String youtubeLink;
#Persistent
private String personalLink;
#Persistent
private Date submitedDate;
#Persistent
private float price;
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getBlobKey() {
return blobKey;
}
public void setBlobKey(String blobKey) {
this.blobKey = blobKey;
}
public String getYoutubeLink() {
return youtubeLink;
}
public void setYoutubeLink(String youtubeLink) {
this.youtubeLink = youtubeLink;
}
public String getPersonalLink() {
return personalLink;
}
public void setPersonalLink(String personalLink) {
this.personalLink = personalLink;
}
public Date getSubmitedDate() {
return submitedDate;
}
public void setSubmitedDate(Date submitedDate) {
this.submitedDate = submitedDate;
}
public Long getId() {
return id;
}
}
AndroidSource.java
#SuppressWarnings("serial")
#PersistenceCapable
public class AndroidSource extends MySource{
public AndroidSource() {
super();
}
}
CategoryBrowseService.java which is the remoteservice model
#RemoteServiceRelativePath("categoryService")
public interface CategoryBrowseService extends RemoteService{
ArrayList<MySource> getSourceList(Class<? extends MySource> classType);
}
CategoryBrowseServiceAsync.java
public interface CategoryBrowseServiceAsync {
void getSourceList(Class<? extends MySource> classType,
AsyncCallback<ArrayList<MySource>> callback);
}
CategoryBrowsePresenter.java where the rpc is called
private void retrieveSources(Class<? extends MySource> classType) {
CategoryBrowseServiceAsync rpcService = GWT.create(CategoryBrowseService.class);
rpcService.getSourceList(classType, new AsyncCallback<ArrayList<MySource>>() {
#Override
public void onFailure(Throwable caught) {
Window.alert("Ooops!!!Sorry!Something went wrong.I am still beta!");
}
#Override
public void onSuccess(ArrayList<MySource> result) {
sourceList = result;
display.setSourceContent(sourceList);
}
});
}
CategoryBrowseServiceImpl.java
#SuppressWarnings("serial")
public class CategoryBrowseServiceImpl extends RemoteServiceServlet implements CategoryBrowseService{
private SourceDatastore dataStore;
public CategoryBrowseServiceImpl() {
dataStore = new SourceDatastore();
}
#Override
public ArrayList<MySource> getSourceList(Class<? extends MySource> classType) {
return dataStore.getSources(classType);
}
}
Here is the error that i get.
Compiling module com.sourcebay.SourceBay
Scanning for additional dependencies: file:/home/santaris/workspace/SourceBay/src/com/sourcebay/client/presenter/mybay/browse/CategoryBrowsePresenter.java
Computing all possible rebind results for 'com.sourcebay.client.model.mybay.browse.CategoryBrowseService'
Rebinding com.sourcebay.client.model.mybay.browse.CategoryBrowseService
Invoking generator com.google.gwt.user.rebind.rpc.ServiceInterfaceProxyGenerator
Generating client proxy for remote service interface 'com.sourcebay.client.model.mybay.browse.CategoryBrowseService'
[ERROR] java.lang.Class<T> is not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' or 'java.io.Serializable' nor does it have a custom field serializer (reached via java.lang.Class<? extends com.sourcebay.shared.source.MySource>)
[ERROR] java.lang.Class<T> has no available instantiable subtypes. (reached via java.lang.Class<? extends com.sourcebay.shared.source.MySource>)
[ERROR] subtype java.lang.Class<T> is not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' or 'java.io.Serializable' nor does it have a custom field serializer (reached via java.lang.Class<? extends com.sourcebay.shared.source.MySource>)
[ERROR] Errors in 'file:/home/santaris/workspace/SourceBay/src/com/sourcebay/client/presenter/mybay/browse/CategoryBrowsePresenter.java'
[ERROR] Line 75: Failed to resolve 'com.sourcebay.client.model.mybay.browse.CategoryBrowseService' via deferred binding
The paradox is that when i am running my application through the eclipse plugin everything works fine. Could anyone help me please? I have checked to fix the problem through the DTO solution without any success. Moreover i have tried to implement a CustomFieldSerializer as Google suggests without any success too.
Thanks in advance,
Stefanos Antaris
P.S. Sorry for the huge post :-)
Well the problem is that you trying to transport a Class object over the network. I have no idea why it is working in dev mode (I've tried it on local project and it failed), but it shouldn't work. You have to use something else instead of Class name for example String, which will contain a name of class. Theoretically it can work if you create CustomFieldSerializer for Class, but using String instead of Class will be easier.
Classes with persistence annotations can work well on the server side, but if you want to pass its data to the client you must create a plain java serializable class to transport data from server to client.
As noted in the previous answer, persistence annotations are not supported in the client side, as they cannot be translated to equivalent javascript code (and it makes sense since the client doesn't have the responsability of persistence).
It could be that the persistence-related annotations in MySource.java make it implossible to translate to javascript. Try removing the annotations to see if it's related. Also make sure that MySource.java is in a package declared as translatable in the module xml file ("source" element).
Try using implements Serializable for defining you class.
I mean like this:
public class AndroidSource extends MySource implements Serializable{
public AndroidSource() {
super();
}
}
Your RPC Services must deal just with Serializable Objects. Domain classes are not translatable to JavaScript So GWT can't send and receive via network (RPC Protocole) such objects. You need to create DTO classes (wich shadows domain class) implementing java.io.Serializable and then reconfigure all your RPC Service to use in input DTOs and output DTOs. Good Luck for your project.