Now it blows up, albeit differently. I added the eager fetch:
@Basic(fetch=FetchType.EAGER)
@ManyToMany
@JoinTable(name = "team_users",
joinColumns = {_at_JoinColumn(name = "teamid", referencedColumnName =
"teamid")},
inverseJoinColumns = {_at_JoinColumn(name = "username",
referencedColumnName = "username")})
private java.util.Collection <com.lmco.gems.persistence.entity.Users>
userCollection;
And got this on deployment (note, both Users and Team entities implement
Serializable):
Exception Description: predeploy for PersistenceUnit [ZadigPU] failed.
Internal Exception: Exception [TOPLINK-7155] (Oracle TopLink Essentials -
2.0 (Build b40-rc (03/20/2007))):
oracle.toplink.essentials.exceptions.ValidationException
Exception Description: The type [interface java.util.Collection] for the
attribute [userCollection] on the entity class [class
com.my.persistence.entity.Team] is not a valid type for a serialized
mapping. The attribute type must implement the Serializable interface.
at
com.sun.enterprise.web.WebModuleListener.loadPersistenceUnits(WebModuleListe
ner.java:180)
at
com.sun.enterprise.web.WebModuleListener.lifecycleEvent(WebModuleListener.ja
va:155)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:130)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:5052)
at com.sun.enterprise.web.WebModule.start(WebModule.java:308)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:9
60)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:944)
at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:671)
at
com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1575)
at
com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1216)
at
com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebMod
uleDeployEventListener.java:169)
at
com.sun.enterprise.server.WebModuleDeployEventListener.moduleDeployed(WebMod
uleDeployEventListener.java:265)
at
com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEvent
Listener(AdminEventMulticaster.java:951)
at
com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent
(AdminEventMulticaster.java:938)
at
com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEvent
Multicaster.java:448)
at
com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEve
ntMulticaster.java:160)
at
com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastE
vent(DeploymentNotificationHelper.java:295)
at
com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(
DeploymentServiceUtils.java:210)
at
com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(
ServerDeploymentTarget.java:285)
at
com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(Applica
tionStartPhase.java:119)
at
com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(Deploymen
tPhase.java:95)
at
com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDe
ploymentService.java:892)
at
com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeployment
Service.java:564)
at
com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeployment
Service.java:608)
at
com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsCo
nfigMBean.java:731)
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.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:
353)
at
com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:
336)
at
com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:
448)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanSer
verInterceptor.java:836)
at
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:77)
at $Proxy1.invoke(Unknown Source)
at
com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInte
rceptor.java:297)
at
com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeC
aller.java:56)
at
com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(
MBeanServerRequestHandler.java:142)
at
com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet
.processRequest(RemoteJmxConnectorServlet.java:109)
at
com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet
.doPost(RemoteJmxConnectorServlet.java:180)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:818)
at
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFi
lterChain.java:398)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:277)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContext
Valve.java:255)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:188)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611
)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564
)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:81)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:193
)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611
)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564
)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:137)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611
)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564
)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:255)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(
DefaultProcessorTask.java:618)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(Defa
ultProcessorTask.java:549)
at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(Defaul
tProcessorTask.java:790)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTas
k(DefaultReadTask.java:326)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadT
ask.java:248)
at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadT
ask.java:199)
at
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
at
com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadIm
pl.java:103)
Caused by: javax.persistence.PersistenceException: Exception [TOPLINK-28018]
(Oracle TopLink Essentials - 2.0 (Build b40-rc (03/20/2007))):
oracle.toplink.essentials.exceptions.EntityManagerSetupException
Exception Description: predeploy for PersistenceUnit [ZadigPU] failed.
Internal Exception: Exception [TOPLINK-7155] (Oracle TopLink Essentials -
2.0 (Build b40-rc (03/20/2007))):
oracle.toplink.essentials.exceptions.ValidationException
Exception Description: The type [interface java.util.Collection] for the
attribute [userCollection] on the entity class [class
com.my.persistence.entity.Team] is not a valid type for a serialized
mapping. The attribute type must implement the Serializable interface.
at
oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.predeploy
(EntityManagerSetupImpl.java:615)
at
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createContai
nerEntityManagerFactory(EntityManagerFactoryProvider.java:178)
at
com.sun.enterprise.server.PersistenceUnitLoaderImpl.load(PersistenceUnitLoad
erImpl.java:136)
at
com.sun.enterprise.server.PersistenceUnitLoaderImpl.load(PersistenceUnitLoad
erImpl.java:71)
at
com.sun.enterprise.web.WebModuleListener.loadPersistenceUnits(WebModuleListe
ner.java:177)
... 71 more
-----Original Message-----
From: Marina.Vatkina_at_Sun.COM [mailto:Marina.Vatkina_at_Sun.COM]
Sent: Wednesday, March 28, 2007 5:46 PM
To: persistence_at_glassfish.dev.java.net
Subject: Re: Problem using ManyToMany relationship
Can you try if setting FetchType=EAGER on the userCollection makes a
difference?
thanks,
-marina
- application/x-pkcs7-signature attachment: smime.p7s