Externalizer and Glassfish 3.1

20 views
Skip to first unread message

mianor

unread,
Jun 19, 2011, 10:50:10 PM6/19/11
to Granite Data Services Forum
Hi,

I am trying to make the 'graniteds_tide_cdi' example work on glassfish
3.1 but I after the login page, on persons page I get that exception:

[#|2011-06-19T18:25:24.682-0400|SEVERE|glassfish3.1|
org.granite.messaging.webapp.AMFMessageFilter|
_ThreadID=27;_ThreadName=http-thread-pool-8080(2);|AMF message error
org.granite.messaging.amf.io.AMF3SerializationException
at
org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:
97)
at
org.granite.messaging.amf.io.AMF3Deserializer.readAMF3Array(AMF3Deserializer.java:
274)
at
org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:
127)
at
org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:
91)
at
org.granite.messaging.amf.io.AMF3Deserializer.readAMF3Array(AMF3Deserializer.java:
274)
at
org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:
127)
at
org.granite.messaging.amf.io.AMF3Deserializer.readAMF3Object(AMF3Deserializer.java:
521)
at
org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:
129)
at
org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:
91)
at
org.granite.messaging.amf.io.AMF0Deserializer.readAMF3Data(AMF0Deserializer.java:
310)
at
org.granite.messaging.amf.io.AMF0Deserializer.readData(AMF0Deserializer.java:
362)
at
org.granite.messaging.amf.io.AMF0Deserializer.readArray(AMF0Deserializer.java:
225)
at
org.granite.messaging.amf.io.AMF0Deserializer.readData(AMF0Deserializer.java:
348)
at
org.granite.messaging.amf.io.AMF0Deserializer.readBodies(AMF0Deserializer.java:
141)
at
org.granite.messaging.amf.io.AMF0Deserializer.<init>(AMF0Deserializer.java:
79)
at
org.granite.messaging.webapp.AMFMessageFilter.doFilter(AMFMessageFilter.java:
110)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
256)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
215)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
279)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
175)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:
655)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:
98)
at
com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:
91)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
162)
at
org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:
326)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
227)
at
com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:
170)
at
com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:
822)
at
com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
at
com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:
225)
at
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:
137)
at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:
104)
at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:
90)
at
com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:
79)
at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:
54)
at
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:
59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool
$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool
$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.RuntimeException: The ActionScript3 class bound
to test.granite.cdi.entity.Person (ie:
[RemoteClass(alias="test.granite.cdi.entity.Person")]) implements
flash.utils.IExt
ernalizable but this Java class neither implements
java.io.Externalizable nor is in the scope of a configured
externalizer (please fix your granite-config.xml)
at
org.granite.messaging.amf.io.AMF3Deserializer.readAMF3Object(AMF3Deserializer.java:
498)
at
org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:
129)
at
org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:
91)
... 41 more

The message sounds clear (missing something in granite-config.xml).
But from that example, there is no granite-config.xml file.
Then I put the one from another example (graniteds_tide_ejb3) and even
with scan=true I still get that exception

<granite-config scan="true">

<security
type="org.granite.messaging.service.security.GlassFishV3SecurityService"/
>

<!--
! Enable all Spring Service components for Tide
!-->
<tide-components>
<tide-component instance-of="org.granite.tide.ejb.EjbIdentity"/>
<tide-component annotated-
with="org.granite.messaging.service.annotations.RemoteDestination"/>
</tide-components>

</granite-config>

How can I make it work?

Thanks!

mianor

unread,
Jun 21, 2011, 10:17:02 AM6/21/11
to Granite Data Services Forum
I forgot to say that I am using Hibernate for JPA implementation
instead of the default one for Glassfish 3 (EclipseLink).

So actually I was able to make it work using EclipseLink.
Do you know what I'll need to change to make it work with Hibernate?

I modified the build.xml to use:
<property name="gds-hibernate.lib" value="yes"/>
instead of
<property name="gds-eclipselink.lib" value="yes"/>

I modified persistence.xml to use Hibernate instead of EclipseLink

Is there any other change I need to do?

Thanks
Reply all
Reply to author
Forward
0 new messages