I tried a few things today but beside more problems, no solution yet.
1. Created a few POJOs and added a bunch of JPA annotations to them
(including the javax.persistence.CascadeType). In my RPC service
class, I manually instantiate a POJO and return it. This works fine.
The GWT compiler/shell is not complaining about any annotations. I'm
still using Gilead and GWT-SL with the -noserver option.
2. For my second attempt, I configured the above POJOs in my Spring
AnnotationSessionFactoryBean, e.g
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource"><ref bean="dataSource"/></property>
...
<property name="annotatedClasses">
<list>
...
<value>au.gov.vic.dpi.mpd.geodatavic2.module.domain.client.model.security.User</
value>
</list>
</property>
</bean>
Note, I still just manually create the User class in the RPC service
class, I'm not actually retrieving anything from database via
Hibernate but it didn't work. I got the following exception (on the
server):
SEVERE: Exception while dispatching incoming RPC call
java.lang.RuntimeException: java.lang.NullPointerException
at
org.gwtwidgets.server.spring.GWTRPCServiceExporter.handleExporterProcessingException
(GWTRPCServiceExporter.java:344)
at org.gwtwidgets.server.spring.GWTRPCServiceExporter.processCall
(GWTRPCServiceExporter.java:313)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost
(RemoteServiceServlet.java:86)
at org.gwtwidgets.server.spring.GWTRPCServiceExporter.handleRequest
(GWTRPCServiceExporter.java:363)
at
org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter.handle
(HttpRequestHandlerAdapter.java:49)
at org.springframework.web.servlet.DispatcherServlet.doDispatch
(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService
(DispatcherServlet.java:809)
at org.springframework.web.servlet.FrameworkServlet.processRequest
(FrameworkServlet.java:476)
at org.springframework.web.servlet.FrameworkServlet.doPost
(FrameworkServlet.java:441)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
447)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at net.sf.gilead.core.hibernate.HibernateUtil.isUnsavedValue
(HibernateUtil.java:1328)
at net.sf.gilead.core.hibernate.HibernateUtil.getId
(HibernateUtil.java:290)
at net.sf.gilead.core.hibernate.HibernateUtil.getId
(HibernateUtil.java:200)
at net.sf.gilead.core.hibernate.HibernateUtil.isPersistentPojo
(HibernateUtil.java:314)
at net.sf.gilead.core.PersistentBeanManager.clonePojo
(PersistentBeanManager.java:325)
at net.sf.gilead.core.PersistentBeanManager.clone
(PersistentBeanManager.java:241)
at net.sf.gilead.gwt.GileadRPCHelper.parseReturnValue
(GileadRPCHelper.java:129)
at
org.gwtwidgets.server.spring.hb4gwt.HB4GWTRPCServiceExporter.invokeMethodOnService
(HB4GWTRPCServiceExporter.java:63)
at org.gwtwidgets.server.spring.GWTRPCServiceExporter.processCall
(GWTRPCServiceExporter.java:298)
... 21 more
I'm still scratching my head about this one...
3. I did try to retrieve POJOs from the database instead of manually
creating them but I got the same result.
The POJOs are quite simple. Here's an example. Why this doesn't work
is a mistery to me.
@Entity
@Table(name = "USERS", schema = "SECURITY")
public class Users extends LightEntity implements java.io.Serializable
{
private String userId;
private Date endDate;
private Set<ApplicationRoles> applicationRoleses = new
HashSet<ApplicationRoles>(0);
public Users() {
}
@Id
@Column(name = "USER_ID", unique = true, nullable = false, length =
25)
public String getUserId() {
return this.userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
@Temporal(TemporalType.DATE)
@Column(name = "END_DATE", length = 7)
public Date getEndDate() {
return this.endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY,
mappedBy = "users")
public Set<ApplicationRoles> getApplicationRoleses() {
return this.applicationRoleses;
}
public void setApplicationRoleses(Set<ApplicationRoles>
applicationRoleses) {
this.applicationRoleses = applicationRoleses;
}
}
On Mar 5, 1:56 pm, sutarsa giri <[email protected]> wrote:
> Hi,
> you may need to take a look at -noserver option when running your gwt shell.
> with this, you could use your favorite servlet container as server for your
> gwt shell.
>
> regards,
> Gede sutarsa
>
> 2009/3/3 grishag <[email protected]>
>
>
>
> > Hi,
>
> > I have a problem running GWT in hosted mode using JPA annotated domain
> > classes. I can compile my project to JavaScript, package it up in a
> > war and run it on a server no problem but I can't do the same in
> > hosted mode. Really annoying, without hosted mode development is
> > really slow.
>
> > Here is what I have done:
>
> > 1. I have one module that defines my domain classes (sitting under the
> > GWT client package) and DAO classes (under GWT server pacakge). The
> > following is the gwt.xml file for this module:
>
> > <module>
> > <inherits name='net.sf.gilead.Adapter4Gwt15'/>
> > <inherits name='net.sf.gilead.emul.java5.ejb3.Ejb3'/>
> > </module>
>
> > 2. The second module implements the client UI and the RPC service that
> > uses the domain objects from the first module:
>
> > <module>
> > <inherits name="com.google.gwt.user.User"/>
> > <inherits name="com.extjs.gxt.ui.GXT"/>
> > <inherits name="com.extjs.gxt.themes.Themes" />
>
> > <inherits
> > name='au.gov.vic.dpi.mpd.geodatavic2.module.domain.DomainModel' />
>
> > <stylesheet src="css/ext-all.css" />
>
> > <entry-point
>
> > class='au.gov.vic.dpi.mpd.geodatavic2.module.legends.client.StratigraphicLegends'/
>
> > </module>
>
> > Like I said I can compile this using GWTCompiler and run it all on a
> > standalone server but not in hosted mode (I'm using the noserver
> > option).
>
> > I've been through my classpath multiple times and everything looks
> > fine but I'm still getting this error no matter what I do. If anyone
> > has any idea why this is happening and most importantly how to fix
> > this it would be greatly appreciated. I've been battling with this
> > thing for a day and a half and I'm out of ideas.
>
> > Thank you.
>
> > Buildfile: U:\projects\GeoDataVic2alt\build.xml
> > gwt.run:
> > [java] java.lang.NoClassDefFoundError: javax/persistence/
> > CascadeType
> > [java] at java.lang.Class.getDeclaredMethods0(Native Method)
> > [java] at java.lang.Class.privateGetDeclaredMethods(Unknown
> > Source)
> > [java] at java.lang.Class.getDeclaredMethods(Unknown Source)
> > [java] at
>
> > com.google.gwt.dev.shell.DispatchClassInfo.lazyInitTargetMembersUsingReflectionHelper
> > (DispatchClassInfo.java:184)
> > [java] at
> > com.google.gwt.dev.shell.DispatchClassInfo.lazyInitTargetMembers
> > (DispatchClassInfo.java:146)
> > [java] at com.google.gwt.dev.shell.DispatchClassInfo.getMemberId
> > (DispatchClassInfo.java:55)
> > [java] at com.google.gwt.dev.shell.CompilingClassLoader
> > $DispatchClassInfoOracle.getDispId(CompilingClassLoader.java:130)
> > [java] at com.google.gwt.dev.shell.CompilingClassLoader.getDispId
> > (CompilingClassLoader.java:531)
> > [java] at
> > com.google.gwt.dev.shell.ie.IDispatchProxy.getIDsOfNames
> > (IDispatchProxy.java:124)
> > [java] at com.google.gwt.dev.shell.ie.IDispatchImpl.GetIDsOfNames
> > (IDispatchImpl.java:273)
> > [java] at com.google.gwt.dev.shell.ie.IDispatchImpl.method5
> > (IDispatchImpl.java:189)
> > [java] at org.eclipse.swt.internal.ole.win32.COMObject.callback5
> > (COMObject.java:108)
> > [java] at org.eclipse.swt.internal.ole.win32.COM.VtblCall(Native
> > Method)
> > [java] at org.eclipse.swt.internal.ole.win32.IDispatch.Invoke
> > (IDispatch.java:64)
> > [java] at org.eclipse.swt.ole.win32.OleAutomation.invoke
> > (OleAutomation.java:493)
> > [java] at org.eclipse.swt.ole.win32.OleAutomation.invoke
> > (OleAutomation.java:417)
> > [java] at
> > com.google.gwt.dev.shell.ie.ModuleSpaceIE6.doInvokeOnWindow
> > (ModuleSpaceIE6.java:67)
> > [java] at com.google.gwt.dev.shell.ie.ModuleSpaceIE6.doInvoke
> > (ModuleSpaceIE6.java:152)
> > [java] at com.google.gwt.dev.shell.ModuleSpace.invokeNative
> > (ModuleSpace.java:447)
> > [java] at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject
> > (ModuleSpace.java:228)
> > [java] at
> > com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject
> > (JavaScriptHost.java:91)
> > [java] at
>
> > au.gov.vic.dpi.mpd.geodatavic2.module.legends.client.service.StratigraphicLegendsService_TypeSerializer.createMethodMap
> > (transient source for
>
> > au.gov.vic.dpi.mpd.geodatavic2.module.legends.client.service.StratigraphicLegendsService_TypeSerializer)
> > [java] at
>
> > au.gov.vic.dpi.mpd.geodatavic2.module.legends.client.service.StratigraphicLegendsService_TypeSerializer.<clinit>
> > (transient source for
>
> > au.gov.vic.dpi.mpd.geodatavic2.module.legends.client.service.StratigraphicLegendsService_TypeSerializer:
> > 10)
> > [java] at
>
> > au.gov.vic.dpi.mpd.geodatavic2.module.legends.client.service.StratigraphicLegendsService_Proxy.<clinit>
> > (transient source for
>
> > au.gov.vic.dpi.mpd.geodatavic2.module.legends.client.service.StratigraphicLegendsService_Proxy:
> > 12)
> > [java] at java.lang.Class.forName0(Native Method)
> > [java] at java.lang.Class.forName(Unknown Source)
> > [java] at
> > com.google.gwt.dev.shell.ModuleSpace.loadClassFromSourceName
> > (ModuleSpace.java:516)
> > [java] at com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate
> > (ModuleSpace.java:360)
> > [java] at com.google.gwt.dev.shell.GWTBridgeImpl.create
> > (GWTBridgeImpl.java:39)
> > [java] at com.google.gwt.core.client.GWT.create(GWT.java:97)
> > [java] at
>
> > au.gov.vic.dpi.mpd.geodatavic2.module.legends.client.StratigraphicLegends.<clinit>
> > (StratigraphicLegends.java:40)
> > [java] at java.lang.Class.forName0(Native Method)
> > [java] at java.lang.Class.forName(Unknown Source)
> > [java] at
> > com.google.gwt.dev.shell.ModuleSpace.loadClassFromSourceName
> > (ModuleSpace.java:516)
> > [java] at com.google.gwt.dev.shell.ModuleSpace.onLoad
> > (ModuleSpace.java:299)
> > [java] at
> > com.google.gwt.dev.shell.BrowserWidget.attachModuleSpace
> > (BrowserWidget.java:329)
> > [java] at com.google.gwt.dev.shell.ie.BrowserWidgetIE6.access$300
> > (BrowserWidgetIE6.java:37)
> > [java] at
> > com.google.gwt.dev.shell.ie.BrowserWidgetIE6$External.gwtOnLoad
> > (BrowserWidgetIE6.java:76)
> > [java] at
> > com.google.gwt.dev.shell.ie.BrowserWidgetIE6$External.invoke
> > (BrowserWidgetIE6.java:139)
> > [java] at com.google.gwt.dev.shell.ie.IDispatchImpl.Invoke
> > (IDispatchImpl.java:294)
> > [java] at com.google.gwt.dev.shell.ie.IDispatchImpl.method6
> > (IDispatchImpl.java:194)
> > [java] at org.eclipse.swt.internal.ole.win32.COMObject.callback6
> > (COMObject.java:117)
> > [java] at org.eclipse.swt.internal.win32.OS.DispatchMessageW
> > (Native Method)
> > [java] at org.eclipse.swt.internal.win32.OS.DispatchMessage
> > (OS.java:1925)
> > [java] at org.eclipse.swt.widgets.Display.readAndDispatch
> > (Display.java:2966)
> > [java] at com.google.gwt.dev.GWTShell.pumpEventLoop
> > (GWTShell.java:720)
> > [java] at com.google.gwt.dev.GWTShell.run(GWTShell.java:593)
> > [java] at com.google.gwt.dev.GWTShell.main(GWTShell.java:357)
> > [java] Caused by: java.lang.ClassNotFoundException:
> > javax.persistence.CascadeType
> > [java] at com.google.gwt.dev.shell.CompilingClassLoader.findClass
> > (CompilingClassLoader.java:579)
> > [java] at java.lang.ClassLoader.loadClass(Unknown Source)
> > [java] at java.lang.ClassLoader.loadClass(Unknown Source)
> > [java] at java.lang.ClassLoader.loadClassInternal(Unknown
> > Source)
> > [java] ... 48 more
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---