GWT in Aktion, 2ed (MEAP), S.218 besagt, dass wir serverseitige Klassen in Annotationen wie @ProxyFor im Clientcode verweisen können. Das ist logisch und was ich erwarten würde ... aber ich bin immer Ausnahmen von den GWT-Compiler:GWT RequestFactory: Verwenden von Serverklassen im Clientpaket
Validating newly compiled units
[ant:java] Errors in 'file:/C:/git/mvp_ap_test/src/de/mycompany/client/AppRequestFactory.java'
[ant:java] Line 9: The import de.mycompany.server.AnnotatedRfqServiceLocator cannot be resolved
[ant:java] Line 10: The import de.mycompany.server.dao.AnnotatedRfqService cannot be resolved
[ant:java] Line 15: AnnotatedRfqService cannot be resolved to a type
[ant:java] Line 15: AnnotatedRfqServiceLocator cannot be resolved to a type
[ant:java] Line 15: Class<AnnotatedRfqServiceLocator> cannot be resolved to a type
[ant:java] Errors in 'file:/C:/git/mvp_ap_test/src/de/mycompany/client/proxy/AnnotatedRfqProxy.java'
[ant:java] Line 9: The import de.mycompany.server.AnnotatedRfqServiceLocator cannot be resolved
[ant:java] Line 10: The import de.mycompany.server.domain.AnnotatedRfq cannot be resolved
[ant:java] Line 12: AnnotatedRfq cannot be resolved to a type
[ant:java] Line 12: AnnotatedRfqServiceLocator cannot be resolved to a type
[ant:java] Line 12: Class<AnnotatedRfqServiceLocator> cannot be resolved to a type
[ant:java] Errors in 'file:/C:/git/mvp_ap_test/src/de/mycompany/client/proxy/AnnotationProxy.java'
[ant:java] Line 6: The import de.mycompany.server.domain.Annotation cannot be resolved
[ant:java] Line 8: Annotation cannot be resolved to a type
[ant:java] Removing invalidated units
I Referenz keine serverseitigen Klassen außer in den Anmerkungen:
package de.mycompany.client;
import com.google.web.bindery.requestfactory.shared.Request;
import com.google.web.bindery.requestfactory.shared.RequestContext;
import com.google.web.bindery.requestfactory.shared.RequestFactory;
import com.google.web.bindery.requestfactory.shared.Service;
import de.mycompany.client.proxy.AnnotatedRfqProxy;
import de.mycompany.server.AnnotatedRfqServiceLocator;
import de.mycompany.server.dao.AnnotatedRfqService;
public interface AppRequestFactory extends RequestFactory {
AnnotatedRfqRequest annotatedRfqRequest();
@Service(value = AnnotatedRfqService.class, locator = AnnotatedRfqServiceLocator.class)
public interface AnnotatedRfqRequest extends RequestContext {
Request<AnnotatedRfqProxy> findOne(String id);
}
}