GWT with JPA not working in hosted mode

104 views
Skip to first unread message

grishag

unread,
Mar 2, 2009, 9:48:13 PM3/2/09
to Google Web Toolkit
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

Arthur Kalmenson

unread,
Mar 3, 2009, 9:38:55 AM3/3/09
to Google-We...@googlegroups.com
Hmm, have you checked the classpath you use for your GWTCompile and
hosted mode launching in Ant? Make sure they're the same. Hosted mode
works fine with JPA annotations here (although we do use Maven). It
looks like it might be a classpath issue.

--
Arthur Kalmenson

noon

unread,
Mar 3, 2009, 1:19:57 PM3/3/09
to Google Web Toolkit
Some more precisions, since this is a recurrent issue related in
Gilead forum :
- The offending annotation is *always* CascadeType. The code
source is the same as regular JPA annotation.
- Not a classpath issue : I repoduced the issue with the JAR on
classpath, and no way to tell Hosted Mode to take it into account
- Only the "embedded" hosted mode fails, web mode is ok.

Regards
Bruno


On 3 mar, 15:38, Arthur Kalmenson <arthur.k...@gmail.com> wrote:
> Hmm, have you checked the classpath you use for your GWTCompile and
> hosted mode launching in Ant? Make sure they're the same. Hosted mode
> works fine with JPA annotations here (although we do use Maven). It
> looks like it might be a classpath issue.
>
> --
> Arthur Kalmenson
>

grishag

unread,
Mar 3, 2009, 5:57:36 PM3/3/09
to Google Web Toolkit
It's strange but I'm not running with the embedded Tomcat. I used the
"noserver" option and deployed my code to a standalone server (Tomcat
6.0.18). So according to your last comment it should be working. Could
you please post a link to the Gilead forum you've mentioned? I just
tried to find it with no luck. I don't see why this would work in the
web mode anyway because it still goes through the process of trying to
compile the annotated code. I actually had a look at the offending
line CompilingClassLoader line 579 and sure enough if the package
starts with java or javax it throws this exception. Why gwt emulation
not working when running in hosted mode but works during compiling
beats me.

Thanks for your help.
Message has been deleted

Arthur Kalmenson

unread,
Mar 4, 2009, 8:52:34 AM3/4/09
to Google-We...@googlegroups.com
That doesn't really make sense to me either. We use JPA annotated
beans on the client side all the time and all of them have
CascadeType. We don't use either Gilead or GXT, so it might have
something to do with those libraries. Can you try to create small
sample project without those libraries and see if hosted mode launches
with the JPA annotations? Then add the Gilead library, see if it
works, then add the GXT library and see if it works.

--
Arthur Kalmenson

noon

unread,
Mar 4, 2009, 4:29:36 PM3/4/09
to Google Web Toolkit
Hi,

I have a small template of this and will post it where you want me
to ;)
This afternoon, I analyzed stack trace and found some "strange" code
in CompilingClassLoader GWT class (http://code.google.com/p/google-web-
toolkit/source/browse/releases/1.5/dev/core/src/com/google/gwt/dev/
shell/CompilingClassLoader.java ):

@Override
protected synchronized Class<?> findClass(String className)
throws ClassNotFoundException {
if (className == null) {
throw new ClassNotFoundException("null class name",
new NullPointerException());
}

// Don't mess with anything in the standard Java packages.
//
if (isInStandardJavaPackage(className)) {
// make my superclass load it
throw new ClassNotFoundException(className);
}
....
}

As far as I understand, every class (and annotations) from java and
javax package are not managed by this class loader, which could lead
to the issue.
I still have to validate this analysis by debugging this method step
by step.

If I am right, I will open an issue about it in GWT project.

Regards
Bruno


On 4 mar, 14:52, Arthur Kalmenson <arthur.k...@gmail.com> wrote:
> That doesn't really make sense to me either. We use JPA annotated
> beans on the client side all the time and all of them have
> CascadeType. We don't use either Gilead or GXT, so it might have
> something to do with those libraries. Can you try to create small
> sample project without those libraries and see if hosted mode launches
> with the JPA annotations? Then add the Gilead library, see if it
> works, then add the GXT library and see if it works.
>
> --
> Arthur Kalmenson
>
> ...
>
> plus de détails »

sutarsa giri

unread,
Mar 4, 2009, 9:56:31 PM3/4/09
to Google-Web-Toolkit
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 <grigori...@gmail.com>

grishag

unread,
Mar 5, 2009, 1:07:14 AM3/5/09
to Google Web Toolkit
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 <sutarsa.g...@gmail.com> 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 <grigori.gold...@gmail.com>

noon

unread,
Mar 5, 2009, 6:00:34 AM3/5/09
to Google Web Toolkit
Hi,

For point 2 and 3, it is a known bug of Gilead 1.2.1 : it has been
fixed in project SVN (branch 1.2) and will be part of the next release
(probably this month.

About the CascadeType issue, what suprise me is that it happens even
when no annoted pojo is sent : see http://sourceforge.net/forum/forum.php?thread_id=3000451&forum_id=868076
for details

Regards
Bruno
> ...
>
> plus de détails »

grishag

unread,
Mar 5, 2009, 11:25:49 PM3/5/09
to Google Web Toolkit
Thanks for the link to the Gilead forum.

As per your discussion there, I removed this line from my gwt.xml file
just to see what it would do:

<inherits name='net.sf.gilead.emul.java5.ejb3.Ejb3'/>

To my surprise my hosted mode with the -noserver option started
working. So, I'm a bit confused now. Do I need to keep this line in my
configuration or not? What exactly does it do? I was under the
impression that it was there to make GWT behave when it encounters
EJB3 annotations (as per the instructions in the Stateless Mode doco)
but clearly that's not the case.

Does this make sense to you?

Regards,
Grigori

PS: Thanks for the good work you've done/doing on Gilead. It is a
great tool and is much appreciated.

On Mar 5, 10:00 pm, noon <bruno.marches...@gmail.com> wrote:
> Hi,
>
> For point 2 and 3, it is a known bug of Gilead 1.2.1 : it has been
> fixed in project SVN (branch 1.2) and will be part of the next release
> (probably this month.
>
> About the CascadeType issue, what suprise me is that it happens even
> when no annoted pojo is sent : seehttp://sourceforge.net/forum/forum.php?thread_id=3000451&forum_id=868076
> ...
>
> read more »
Message has been deleted

noon

unread,
Mar 6, 2009, 5:01:34 AM3/6/09
to Google Web Toolkit
Of course, I already tested the annotation emulation before releasing
it.
What puzzles me is that a even a project that do not use the JPA
annotations but add the annotation emulation fails :-(

I am trying to investigate this issue to determine if it is on my side
or on GWT one...

Regards
Bruno

PS : as far as I know, using JPA annotations without the Gilead
emulation just leads to warnings, so removing the line will not
prevent you to work.
> ...
>
> plus de détails »

noon

unread,
Mar 9, 2009, 5:49:37 PM3/9/09
to Google Web Toolkit
Hi all,

After some investiation, I confirm that the issue was on GWT side (and
especially in CompilingClassLoader.findClass method).
I write "was" because the issue is fixed since SVN release 4417
(http://code.google.com/p/google-web-toolkit/source/detail?
r=4417&path=/releases/1.6/dev/core/src/com/google/gwt/dev/shell/
CompilingClassLoader.java) and is available in GWT 1.6.

The test project, that failed with GWT 1.5.3 now works fine with GWT
1.6M2.

Best Regards
Bruno
> ...
>
> plus de détails »

grishag

unread,
Mar 10, 2009, 7:50:07 PM3/10/09
to Google Web Toolkit
I have tested with the new GWT release and it does work.

Thank you for your help Bruno.

On Mar 10, 8:49 am, noon <bruno.marches...@gmail.com> wrote:
> Hi all,
>
> After some investiation, I confirm that the issue was onGWTside (and
> especially in CompilingClassLoader.findClass method).
> I write "was" because the issue is fixed since SVN release 4417
> (http://code.google.com/p/google-web-toolkit/source/detail?
> r=4417&path=/releases/1.6/dev/core/src/com/google/gwt/dev/shell/
> CompilingClassLoader.java) and is available inGWT1.6.
>
> The test project, that failed withGWT1.5.3 now works fine withGWT
> 1.6M2.
>
> Best Regards
> Bruno
>
> On 6 mar, 11:01, noon <bruno.marches...@gmail.com> wrote:
>
> > Of course, I already tested the annotation emulation before releasing
> > it.
> > What puzzles me is that a even a project that donotuse theJPA
> > annotations but add the annotation emulation fails :-(
>
> > I am trying to investigate this issue to determine if it is on my side
> > or onGWTone...
>
> > Regards
> > Bruno
>
> > PS : as far as I know, usingJPAannotations without the Gilead
> > emulation just leads to warnings, so removing the line willnot
> > prevent you to work.
>
> > On 6 mar, 05:25, grishag <grigori.gold...@gmail.com> wrote:
>
> > > Thanks for the link to the Gilead forum.
>
> > > As per your discussion there, I removed this line from mygwt.xml file
> > > just to see what it would do:
>
> > > <inherits name='net.sf.gilead.emul.java5.ejb3.Ejb3'/>
>
> > > To my surprise myhostedmodewith the -noserver option started
> > >working. So, I'm a bit confused now. Do I need to keep this line in my
> > > configuration ornot? What exactly does it do? I was under the
> > > impression that it was there to makeGWTbehave when it encounters
> > > EJB3 annotations (as per the instructions in the StatelessModedoco)
> > > but clearly that'snotthe case.
>
> > > Does this make sense to you?
>
> > > Regards,
> > > Grigori
>
> > > PS: Thanks for the good work you've done/doing on Gilead. It is a
> > > great tool and is much appreciated.
>
> > > On Mar 5, 10:00 pm, noon <bruno.marches...@gmail.com> wrote:
>
> > > > Hi,
>
> > > > For point 2 and 3, it is a known bug of Gilead 1.2.1 : it has been
> > > > fixed in project SVN (branch 1.2) and will be part of the next release
> > > > (probably this month.
>
> > > > About the CascadeType issue, what suprise me is that it happens even
> > > > when no annoted pojo is sent : seehttp://sourceforge.net/forum/forum.php?thread_id=3000451&forum_id=868076
> > > > for details
>
> > > > Regards
> > > > Bruno
>
> > > > On 5 mar, 07:07, grishag <grigori.gold...@gmail.com> wrote:
>
> > > > > I tried a few things today but beside more problems, no solution yet.
>
> > > > > 1. Created a few POJOs and added a bunch ofJPAannotations to them
> > > > > (including the javax.persistence.CascadeType). In my RPC service
> > > > > class, I manually instantiate a POJO and return it. This works fine.
> > > > > TheGWTcompiler/shell isnotcomplaining about any annotations. I'm
> > > > > still using Gilead andGWT-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'mnotactually retrieving anything from database via
> ...
>
> read more »
Reply all
Reply to author
Forward
0 new messages