RequestFactory Validation Tool must be run for.... (error)??? How come?

1,302 views
Skip to first unread message

Brandon Donnelson

unread,
Oct 6, 2011, 9:26:54 PM10/6/11
to google-we...@googlegroups.com

Why am I getting this error "RequestFactory Validation Tool must be run for..." (below), would anybody know? I can't seem to figure it out yet. :)

My (future) Demo's Source Code:


Initializing App Engine server
Oct 7, 2011 1:11:52 AM com.google.apphosting.utils.jetty.JettyLogger info
INFO
: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger
Oct 7, 2011 1:11:52 AM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml
INFO
: Successfully processed /Users/branflake2267/Documents/workspace/DemoRequestFactory/war/WEB-INF/appengine-web.xml
Oct 7, 2011 1:11:53 AM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml
INFO
: Successfully processed /Users/branflake2267/Documents/workspace/DemoRequestFactory/war/WEB-INF/web.xml
Oct 6, 2011 6:11:54 PM com.google.appengine.tools.development.DevAppServerImpl start
INFO
: The server is running at http://localhost:8888/
Oct 6, 2011 6:12:09 PM com.google.web.bindery.requestfactory.server.RequestFactoryServlet doPost
SEVERE
: Unexpected error
java
.lang.RuntimeException: The RequestFactory ValidationTool must be run for the org.gonevertical.client.requestfactory.ApplicationRequestFactory RequestFactory type
        at com
.google.web.bindery.requestfactory.vm.impl.Deobfuscator$Builder.load(Deobfuscator.java:59)
        at com
.google.web.bindery.requestfactory.server.ResolverServiceLayer.updateDeobfuscator(ResolverServiceLayer.java:43)
        at com
.google.web.bindery.requestfactory.server.ResolverServiceLayer.resolveRequestFactory(ResolverServiceLayer.java:176)
        at com
.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172)
        at com
.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172)
        at com
.google.web.bindery.requestfactory.server.ServiceLayerDecorator.resolveRequestFactory(ServiceLayerDecorator.java:172)
        at sun
.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun
.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java
.lang.reflect.Method.invoke(Method.java:597)
        at com
.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
        at com
.google.web.bindery.requestfactory.server.ServiceLayerCache.getOrCache(ServiceLayerCache.java:233)
        at com
.google.web.bindery.requestfactory.server.ServiceLayerCache.resolveRequestFactory(ServiceLayerCache.java:198)
        at com
.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:207)
        at com
.google.web.bindery.requestfactory.server.SimpleRequestProcessor.process(SimpleRequestProcessor.java:127)
        at com
.google.web.bindery.requestfactory.server.RequestFactoryServlet.doPost(RequestFactoryServlet.java:133)
        at javax
.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax
.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org
.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
        at org
.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
        at com
.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35)
        at org
.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
        at com
.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58)
        at org
.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
        at com
.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
        at org
.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
        at com
.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122)
        at org
.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
        at com
.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97)
        at org
.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
        at org
.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
        at org
.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org
.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
        at org
.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        at org
.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
        at com
.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70)
        at org
.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at com
.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:351)
        at org
.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org
.mortbay.jetty.Server.handle(Server.java:326)
        at org
.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
        at org
.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:938)
        at org
.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755)
        at org
.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
        at org
.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at org
.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
        at org
.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)


Brandon Donnelson


Brandon Donnelson

unread,
Oct 6, 2011, 9:34:02 PM10/6/11
to google-we...@googlegroups.com

Brandon Donnelson

unread,
Oct 6, 2011, 9:41:18 PM10/6/11
to google-we...@googlegroups.com
I see this in Expenses Example (in gwt sdk) do I have to run this if I'm not running maven?

<!-- Run the RequestFactory ValidationTool -->
     
<plugin>
       
<groupId>org.codehaus.mojo</groupId>
       
<artifactId>exec-maven-plugin</artifactId>
       
<version>1.2</version>
       
<executions>
         
<execution>
           
<phase>process-classes</phase>
           
<configuration>
             
<id>VerifyRequestFactoryInterfaces</id>
             
<executable>java</executable>
             
<arguments>
               
<argument>-cp</argument>
               
<classpath />
               
<argument>com.google.web.bindery.requestfactory.apt.ValidationTool</argument>
               
<argument>${project.build.outputDirectory}</argument>
               
<argument>com.google.gwt.sample.mobilewebapp.shared.MobileWebAppRequestFactory</argument>
             
</arguments>
           
</configuration>
           
<goals>
             
<goal>exec</goal>
           
</goals>
         
</execution>
       
</executions>
     
</plugin>

Aidan O'Kelly

unread,
Oct 6, 2011, 10:08:09 PM10/6/11
to google-we...@googlegroups.com
Starting with GWT 2.4, you need to follow the instructions here: http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryInterfaceValidation 

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/bJX-zae1vwkJ.

To post to this group, send email to google-we...@googlegroups.com.
To unsubscribe from this group, send email to google-web-tool...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

Krishna Kishore k

unread,
Oct 6, 2011, 10:30:00 PM10/6/11
to google-we...@googlegroups.com
After you follow the instructions in http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryInterfaceValidation check the web-inf classes folder and find your *YourRequestFactory*.class file. In the same location if you fine *YourRequestFactory*DeobfuscatorBuilder.class file then it means that the validation has been run successfully.

Brandon Donnelson

unread,
Oct 6, 2011, 10:34:55 PM10/6/11
to google-we...@googlegroups.com
Awesome. Thank you :)



On Thu, Oct 6, 2011 at 7:30 PM, Krishna Kishore k <kishor...@gmail.com> wrote:
After you follow the instructions in http://code.google.com/p/google-web-toolkit/wiki/RequestFactoryInterfaceValidation check the web-inf classes folder and find your *YourRequestFactory*.class file. In the same location if you fine *YourRequestFactory*DeobfuscatorBuilder.class file then it means that the validation has been run successfully.

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.

Brandon Donnelson

unread,
Oct 7, 2011, 7:20:34 AM10/7/11
to google-we...@googlegroups.com
I got this to run below and it allows the project to move foward, but I still have a few bugs in my code. Thanks to the comments above!


#!/bin/sh
# made by Brandon Donnelson
# http://gwt-examples.googlecode.com

# Project Path to Web-inf folder (with no trailing /)
BASE
="/Users/branflake2267/Documents/workspace/DemoRequestFactory/war/WEB-INF";

#----------------------------
# don't have to edit below

OUTPUT
="$BASE/classes";

CP
="";
CP
="$CP$BASE/classes:";
CP
="$CP$BASE/lib/*:"; # '*' will only work with java 1.6+

# these need to be in there
#CP="$CP$BASE/lib/requestfactory-apt.jar:";
#CP="$CP$BASE/lib/requestfactory-server+src.jar:";

echo
"DEBUG ClassPath: $CP";

java
-cp $CP com.google.web.bindery.requestfactory.apt.ValidationTool $OUTPUT \
  org
.gonevertical.client.requestfactory.ApplicationRequestFactory
 

# the end
exit;

Jens

unread,
Oct 7, 2011, 8:13:16 AM10/7/11
to google-we...@googlegroups.com
With GWT 2.4 your RequestFactory interfaces have to be validated. To do so you have to configure your Eclipse to use the RequestFactory Annotation Processor found in requestfactory-apt.jar in your SDK. See: http://code.google.com/p/google-web-toolkit/wiki/RequestFactory_2_4#RequestFactorySource_and_Annotation_Processing

Brandon Donnelson

unread,
Oct 7, 2011, 8:40:51 AM10/7/11
to google-we...@googlegroups.com
I got my demo working thanks to all who commented! :)

Brandon Donnelson

unread,
Oct 7, 2011, 8:43:01 AM10/7/11
to google-we...@googlegroups.com
Jens, for some reason I don't have the ability in Eclipse Indigo to add Annotation processor, or I just don't get it yet. Hmmm... Thanks for pointing that out. 

lounes...@gmail.com

unread,
Jun 15, 2013, 7:28:48 PM6/15/13
to google-we...@googlegroups.com
can you help me for building your exemple using netbeans?
Reply all
Reply to author
Forward
0 new messages