Feb 13, 2012 3:57:14 PM
com.google.web.bindery.requestfactory.server.ServiceLayerDecorator die
SEVERE: The domain type com.dummyPackage.thriftgen.ClassOtherDTO
cannot be sent to the client
Hi everyone,
I have 3 DTOs and 3 proxies, ClassOtherDTO, ClassSomethingDTO and
ClassAnotherDTO, each has it's own locator.
I have something like
classSomethingRequest.getSomething(100).with(getProperties()).fire(new
Receiver<List<ClassSomethingProxy>>() {
@Override
public void onSuccess(List<ClassSomethingProxy>
classSomethingList) {
(...)
}
where getProperties is a String[] {"property1", "property2"}
ClassSomethingProxy extends EntityProxy {
ClassAnotherProxy getProperty1();
List<ClassOtherProxy> getProperty2();
(...)
}
The requests brings me the information of ClassSomething and
ClassAnother but dies when I request information of ClassOther. With
the following message:
The domain type com.dummyPackage.thriftgen.ClassOtherDTO cannot be
sent to the client
I noticed that in class Builder , there is the following line:
Builder builder = builderClass.newInstance();
Somewhere in the process the following class is automatically
generated:
// Automatically Generated -- DO NOT EDIT
// com.dummyPackage.gwt.shared.ClientRequestFactory
package com.dummyPackage.gwt.shared;
import java.util.Arrays;
import com.google.web.bindery.requestfactory.vm.impl.OperationData;
import com.google.web.bindery.requestfactory.vm.impl.OperationKey;
public final class ClientRequestFactoryDeobfuscatorBuilder extends
com.google.web.bindery.requestfactory.vm.impl.Deobfuscator.Builder {
{
withOperation(new OperationKey("dw_W77IdEET0DW0FaU5srH7Tp8s="),
new OperationData.Builder()
.withClientMethodDescriptor("(Ljava/lang/String;)Lcom/google/web/
bindery/requestfactory/shared/Request;")
.withDomainMethodDescriptor("(Ljava/lang/String;)Lcom/dummyPackage/
thriftgen/ClassSomethingDTO;")
.withMethodName("findSomething")
.withRequestContext("com.dummyPackage.gwt.shared.ClientRequestFactory
$ClassSomethingRequest")
.build());
withOperation(new OperationKey("zc3JZ1NYIC1KtsEQ2bX8VtGyAag="),
new OperationData.Builder()
.withClientMethodDescriptor("(I)Lcom/google/web/bindery/
requestfactory/shared/Request;")
.withDomainMethodDescriptor("(I)Ljava/util/List;")
.withMethodName("getSomething")
.withRequestContext("com.dummyPackage.gwt.shared.ClientRequestFactory
$ClassSomethingRequest")
.build());
withRawTypeToken("w1Qg$YHpDaNcHrR5HZ$23y518nA=",
"com.google.web.bindery.requestfactory.shared.EntityProxy");
withRawTypeToken("FXHD5YU0TiUl3uBaepdkYaowx9k=",
"com.google.web.bindery.requestfactory.shared.BaseProxy");
withRawTypeToken("2V15tuS$Yny$aeAf45pmDIE2bFk=",
"com.dummyPackage.gwt.shared.ClassAnotherProxy");
withRawTypeToken("4EHxlUwpVRbxMNh_BZBl5aVN0uY=",
"com.dummyPackage.gwt.shared.ClassSomethingProxy");
withClientToDomainMappings("com.dummyPackage.thriftgen.ClassAnotherDTO",
Arrays.asList("com.dummyPackage.gwt.shared.ClassAnotherProxy"));
withClientToDomainMappings("com.theworkingcrowd.thriftgen.ClassSomethingDTO",
Arrays.asList("com.dummyPackage.gwt.shared.ClassSomethingProxy"));
}}
And there is nothing about ClassOtherDTO or ClassOtherProxy. How can
I see what's going on?
If I dont request for property2 everything goes right (ClassAnother
and ClassSomething work alright) but when i include property2 in the
request it tells me that it cannot be sent to the client.
All ClassAnother, ClassSomething and ClassOther (the problematic)
were automatically generated by thrift and if you see the code they
are very similar.
Could it be that the problem exist in that getProperty2 expects a list
of DTOs and not just one?
Thank you
--
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.