as a workaround i removed the jdoconfig.xml file from the src/WEB-INF
directory and from the war/WEB-INF/classes/META-INF directory. then i
instantiated the persistence manager factory by using a map like the
following:

                final Map<String, String> map = new HashMap<String, String>();
                map.put("javax.jdo.PersistenceManagerFactoryClass",
"org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory");
                map.put("javax.jdo.option.ConnectionURL", "appengine");
                map.put("javax.jdo.option.NontransactionalRead", "true");
                map.put("javax.jdo.option.NontransactionalWrite", "true");
                map.put("javax.jdo.option.RetainValues", "true");
                map.put("datanucleus.appengine.autoCreateDatastoreTxns", 
"true");

                pmf = JDOHelper.getPersistenceManagerFactory(map);

this somehow lets the test run successfully but throws the following
exception nevertheless:

[WARN] StandardContext[]Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method
'public abstract crm.client.dto.AbstractDto
crm.client.CommonService.get(int,long)' threw an unexpected exception:
java.lang.NullPointerException: No API environment is registered for
this thread.
        at
com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:
378)
        at
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:
581)
        at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:
188)
        at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:
224)
        at
com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:
62)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
        at
com.google.gwt.dev.shell.GWTShellServlet.service(GWTShellServlet.java:
288)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
237)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
157)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
214)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:
104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
520)
        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:
198)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
152)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:
104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
520)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
137)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:
104)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
118)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:
102)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
520)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
109)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:
104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:
929)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:
160)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
799)
        at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:
577)
        at org.apache.tomcat.util.threads.ThreadPool
$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:637)
Caused by: java.lang.NullPointerException: No API environment is
registered for this thread.
        at
com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppId(DatastoreApiHelper.java:
74)
        at
com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:
84)
        at com.google.appengine.api.datastore.Query.<init>(Query.java:84)
        at
org.datanucleus.store.appengine.query.DatastoreQuery.validate(DatastoreQuery.java:
649)
        at
org.datanucleus.store.appengine.query.DatastoreQuery.performExecute(DatastoreQuery.java:
215)
        at
org.datanucleus.store.appengine.query.JDOQLQuery.performExecute(JDOQLQuery.java:
89)
        at org.datanucleus.store.query.Query.executeQuery(Query.java:1489)
        at org.datanucleus.store.query.Query.executeWithArray(Query.java:
1371)
        at org.datanucleus.store.query.Query.execute(Query.java:1344)
        at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:221)
        at
crm.server.AbstractCommonService.getDomainObject(AbstractCommonService.java:
75)
        at crm.server.CommonServiceReader.get(CommonServiceReader.java:48)
        at crm.server.CommonServiceImpl.get(CommonServiceImpl.java:54)
        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.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:
562)
        ... 31 more
logging for HtmlUnit thread
   [ERROR] Alert: class
com.google.gwt.user.client.rpc.StatusCodeException

another user describes this problem here:
http://www.mail-archive.com/google-gu...@googlegroups.com/msg02473.html

anyone?


On 2 Jun., 19:16, ingo <ingo.jaec...@googlemail.com> wrote:
> hello everyone,
>
> does anyone know the root cause of this problem? i thought the reason
> might be duplicate jdoconfig.xml file. however, it turns out that
> deleting this file from the src/META-INF/ directory is not a good idea
> since it creates even more exceptions:
>
> [WARN] StandardWrapperValve[shell]: Servlet.service() for servlet
> shell threw exception
> java.lang.ExceptionInInitializerError
>         at
> crm.server.AbstractCommonService.<clinit>(AbstractCommonService.java:
> 37)
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Class.java:169)
>         at
> com.google.gwt.dev.shell.GWTShellServlet.tryGetOrLoadServlet(GWTShellServle 
> t.java:
> 953)
>         at
> com.google.gwt.dev.shell.GWTShellServlet.service(GWTShellServlet.java:
> 276)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio 
> nFilterChain.java:
> 237)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC 
> hain.java:
> 157)
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j 
> ava:
> 214)
>         at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte 
> xt.java:
> 104)
>         at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 520)
>         at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContex 
> tValve.java:
> 198)
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.j 
> ava:
> 152)
>         at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte 
> xt.java:
> 104)
>         at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 520)
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
> 137)
>         at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte 
> xt.java:
> 104)
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
> 118)
>         at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte 
> xt.java:
> 102)
>         at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 520)
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.jav a:
> 109)
>         at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte 
> xt.java:
> 104)
>         at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> 520)
>         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:
> 929)
>         at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:
> 160)
>         at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
> 799)
>         at org.apache.coyote.http11.Http11Protocol
> $Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
>         at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:
> 577)
>         at org.apache.tomcat.util.threads.ThreadPool
> $ControlRunnable.run(ThreadPool.java:683)
>         at java.lang.Thread.run(Thread.java:637)
> Caused by: javax.jdo.JDOFatalUserException: A property named
> javax.jdo.PersistenceManagerFactoryClass must be specified, or a jar
> file with
> a META-INF/services/javax.jdo.PersistenceManagerFactory entry must be
> in the classpath, or a property named javax.jdo.option.PersistenceUnit
> Name must be specified.
> NestedThrowables:
> javax.jdo.JDOUserException: You have either specified for this PMF to
> use a "persistence-unit" of "transactions-optional" (yet this doesnt e
> xist!) or you called JDOHelper.getPersistenceManagerFactory with
> "transactions-optional" as the name of a properties file (and this
> doesnt e
> xist in the CLASSPATH)
>         at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:
> 856)
>         at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:
> 1092)
>         at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:
> 914)
>         at crm.server.PMF.<clinit>(PMF.java:20)
>         ... 30 more
> Caused by: javax.jdo.JDOUserException: You have either specified for
> this PMF to use a "persistence-unit" of "transactions-optional" (yet
> th
> is doesnt exist!) or you called JDOHelper.getPersistenceManagerFactory
> with "transactions-optional" as the name of a properties file (and th
> is doesnt exist in the CLASSPATH)
>         at
> org.datanucleus.jdo.JDOPersistenceManagerFactory.initialiseProperties(JDOPe 
> rsistenceManagerFactory.java:
> 377)
>         at
> org.datanucleus.jdo.JDOPersistenceManagerFactory.<init>(JDOPersistenceManag 
> erFactory.java:
> 260)
>         at
> org.datanucleus.jdo.JDOPersistenceManagerFactory.getPersistenceManagerFacto 
> ry(JDOPersistenceManagerFactory.java:
> 173)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp 
> l.java:
> 25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at javax.jdo.JDOHelper$16.run(JDOHelper.java:1956)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at javax.jdo.JDOHelper.invoke(JDOHelper.java:1951)
>         at
> javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOH 
> elper.java:
> 1159)
>         at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:
> 839)
>         ... 33 more
> logging for HtmlUnit thread
>    [ERROR] Alert: class
> com.google.gwt.user.client.rpc.StatusCodeException
>
> On 2 Jun., 11:54, ingo <ingo.jaec...@googlemail.com> wrote:
>
>
>
> > hello everyone,
>
> > i am currently doing the honeycrm projecthttp://code.google.com/p/honeycrm/.
> > i wrote some server side tests that run without any 
> > problems:http://code.google.com/p/honeycrm/source/browse/#svn/trunk/src/crm/se...
>
> > now, i would like to test the user interface code (e.g. testing
> > visibility of widgets as well as testing client-server-rpc
> > communication with timeouts). however, i am still unable to run the
> > user interface test code. for example, when i run the ServiceTest case
> > (http://code.google.com/p/honeycrm/source/browse/trunk/src/crm/client/
> > test/ServiceTest.java) i get the following exception:
>
> > Caused by: javax.jdo.JDOFatalUserException: Duplicate PMF name
> > "transactions-optional" found in file:/Users/ingo/svn/honeycrm_all/
> > trunk/src/
> > META-INF/jdoconfig.xml and file:/Users/ingo/svn/honeycrm_all/trunk/war/
> > WEB-INF/classes/META-INF/jdoconfig.xml.
> >         at javax.jdo.JDOHelper.getNamedPMFProperties(JDOHelper.java:1300)
> >         at javax.jdo.JDOHelper.getPropertiesFromJdoconfig(JDOHelper.java:
> > 1232)
> >         at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:
> > 1079)
> >         at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:
> > 914)
> >         at crm.server.PMF.<clinit>(PMF.java:20)
> >         ... 30 more
>
> > running the DetailViewTest (http://code.google.com/p/honeycrm/source/
> > browse/trunk/src/crm/client/test/DetailViewTest.java) case throws the
> > following exception (however, it seems like the test code is executed
> > nevertheless since the output is printed properly):
>
> > Starting HTTP on port 0
> >    HTTP listening on port 55998
> > Startinghttp://10.10.10.100:55998/crm.Gae.JUnit/junit.html?gwt.codesvr=10.10....
> > on browser FF3
> > Module crm.Gae.JUnit has been loaded
> > All clients connected (Limiting future permutations to: gecko1_8)
> > is not null
> > [WARN] StandardWrapperValve[shell]: Servlet.service() for servlet
> > shell threw exception
> > java.lang.ExceptionInInitializerError
> >         at
> > crm.server.AbstractCommonService.<clinit>(AbstractCommonService.java:
> > 37)
> >         at java.lang.Class.forName0(Native Method)
> >         at java.lang.Class.forName(Class.java:169)
> >         at
> > com.google.gwt.dev.shell.GWTShellServlet.tryGetOrLoadServlet(GWTShellServle 
> > t.java:
> > 953)
> >         at
> > com.google.gwt.dev.shell.GWTShellServlet.service(GWTShellServlet.java:
> > 276)
> >         at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> >         at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio 
> > nFilterChain.java:
> > 237)
> >         at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC 
> > hain.java:
> > 157)
> >         at
> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j 
> > ava:
> > 214)
> >         at
> > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte 
> > xt.java:
> > 104)
> >         at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> > 520)
> >         at
> > org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContex 
> > tValve.java:
> > 198)
> >         at
> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.j 
> > ava:
> > 152)
> >         at
> > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte 
> > xt.java:
> > 104)
> >         at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> > 520)
> >         at
> > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
> > 137)
> >         at
> > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte 
> > xt.java:
> > 104)
> >         at
> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
> > 118)
> >         at
> > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte 
> > xt.java:
> > 102)
> >         at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> > 520)
> >         at
> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.jav 
> > a:
> > 109)
> >         at
> > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte 
> > xt.java:
> > 104)
> >         at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
> > 520)
> >         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:
> > 929)
> >         at 
> > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:
> > 160)
> >      ...
>
> Erfahren Sie mehr »

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to