You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Pan Nick <pe...@hotmail.com> on 2010/03/19 23:22:47 UTC
DOSGi - Complex/User-Defined Object Cannot be Passed between the
client framework and the server framework
Hi,
We have problem trying to de-serializing objects with D-OSGi single bundle distribution v1.1.
Here is part of the remote-service.xml in the client side <service-description> <provide interface="org.ubc.tp.filter.api.Filter"/> <property name="service.exported.interfaces">*</property> <property name="service.exported.configs">org.apache.cxf.ws</property> <property name="org.apache.cxf.ws.address">http://localhost:9090/blur</property> </service-description>
Here's the code in activator of the remote object in the server side public void start(BundleContext context) throws Exception { blur b = new blur(); Properties props = new Properties(); props.put(MenuItem.PROPERTY_NAME, Filter.PROPERTY_NAME + "//" + blur.PROPERTY_NAME); props.put("service.exported.interfaces", "*"); props.put("service.exported.configs", "org.apache.cxf.ws"); props.put("org.apache.cxf.ws.address", "http://localhost:9090/blur");
context.registerService(Filter.class.getName(), b, props); }
When the client side calls the server service and passes an ActionEvent to the server side.
Exception is thrown at the Server Side:org.apache.cxf.interceptor.Fault: Couldn't instantiate class. java.awt.event.ActionEvent. Nested exception is java.lang.InstantiationException: java.awt.event.ActionEvent at org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:63) at org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:38) at org.apache.cxf.interceptor.DocLiteralInInterceptor.getPara(DocLiteralInInterceptor.java:238) at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:117) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:104) at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:302) at org.apache.cxf.transport.http_jetty.JettyHTTPDestin
ation.doService(JettyHTTPDestination.java:266) at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:324) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:729) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) at org.mortbay.thread.QueuedThr
eadPool$PoolThread.run(QueuedThreadPool.java:488)Caused by: org.apache.cxf.aegis.DatabindingException: Couldn't instantiate class. java.awt.event.ActionEvent. Nested exception isjava.lang.InstantiationException: java.awt.event.ActionEvent at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:181) at org.apache.cxf.aegis.AegisXMLStreamDataReader.read(AegisXMLStreamDataReader.java:82) at org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:61) ... 19 moreCaused by: java.lang.InstantiationException: java.awt.event.ActionEvent at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:131) ... 21 more
Exception at Client Side:-> Exception in thread "AWT-EventQueue-0" java.lang.reflect.UndeclaredThrowableException at $Proxy34.ActionPerformed(Unknown Source) at org.ubc.tp.mainframe.MenuBar$1.actionPerformed(MenuBar.java:119) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unkn
own Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatc
hThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)Caused by: java.lang.reflect.InvocationTargetException at org.apache.cxf.dosgi.dsw.handlers.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:72) ... 29 moreCaused by: org.osgi.framework.ServiceException: REMOTE ... 30 moreCaused by: java.lang.StackOverflowError at sun.misc.FloatingDecimal.developLongDigits(Unknown Source) at sun.misc.FloatingDecimal.dtoa(Unknown Source) at sun.misc.FloatingDecimal.<init>(Unknown Source) at java.lang.Double.toString(Unknown Source) at java.lang.String.valueOf(Unknown Source) at java.lang.Double.toString(Unknown Source) at org.apache.cxf.aegis.xml.AbstractMessageWriter.writeValueAsDouble(AbstractMessageWriter.java:87) at org.apache.cxf.aegis.type.basic.DoubleType.writeObject(DoubleType.java:38) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanTy
pe.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.bas
ic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) a
t org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380)...
Thanks for your time,Nick
_________________________________________________________________
Windows Live 提供您整理、編輯與分享相片的服務。
http://www.microsoft.com/taiwan/windows/windowslive/products/photo-gallery-edit.aspx
Re: DOSGi - Complex/User-Defined Object Cannot be Passed between the
client framework and the server framework
Posted by David Bosschaert <da...@gmail.com>.
Hi Nick,
This seems to be the same issue as discussed here:
http://old.nabble.com/Re:-Problem-with-Distributed-OSGi-and-complex-data-types-%28AWT%29-td26329316.html
Bottom line is, that you have to design your interfaces to be suitable
for remoting with DOSGi and the AWT classes aren't designed as such.
David
2010/3/19 Pan Nick <pe...@hotmail.com>:
>
> Hi,
> We have problem trying to de-serializing objects with D-OSGi single bundle distribution v1.1.
>
> Here is part of the remote-service.xml in the client side <service-description> <provide interface="org.ubc.tp.filter.api.Filter"/> <property name="service.exported.interfaces">*</property> <property name="service.exported.configs">org.apache.cxf.ws</property> <property name="org.apache.cxf.ws.address">http://localhost:9090/blur</property> </service-description>
> Here's the code in activator of the remote object in the server side public void start(BundleContext context) throws Exception { blur b = new blur(); Properties props = new Properties(); props.put(MenuItem.PROPERTY_NAME, Filter.PROPERTY_NAME + "//" + blur.PROPERTY_NAME); props.put("service.exported.interfaces", "*"); props.put("service.exported.configs", "org.apache.cxf.ws"); props.put("org.apache.cxf.ws.address", "http://localhost:9090/blur");
> context.registerService(Filter.class.getName(), b, props); }
> When the client side calls the server service and passes an ActionEvent to the server side.
>
>
>
>
>
> Exception is thrown at the Server Side:org.apache.cxf.interceptor.Fault: Couldn't instantiate class. java.awt.event.ActionEvent. Nested exception is java.lang.InstantiationException: java.awt.event.ActionEvent at org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:63) at org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:38) at org.apache.cxf.interceptor.DocLiteralInInterceptor.getPara(DocLiteralInInterceptor.java:238) at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:117) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:104) at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:302) at org.apache.cxf.transport.http_jetty.JettyHTTPDestin
> ation.doService(JettyHTTPDestination.java:266) at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:70) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:324) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:729) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:205) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) at org.mortbay.thread.QueuedThr
> eadPool$PoolThread.run(QueuedThreadPool.java:488)Caused by: org.apache.cxf.aegis.DatabindingException: Couldn't instantiate class. java.awt.event.ActionEvent. Nested exception isjava.lang.InstantiationException: java.awt.event.ActionEvent at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:181) at org.apache.cxf.aegis.AegisXMLStreamDataReader.read(AegisXMLStreamDataReader.java:82) at org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:61) ... 19 moreCaused by: java.lang.InstantiationException: java.awt.event.ActionEvent at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:131) ... 21 more
>
>
>
>
> Exception at Client Side:-> Exception in thread "AWT-EventQueue-0" java.lang.reflect.UndeclaredThrowableException at $Proxy34.ActionPerformed(Unknown Source) at org.ubc.tp.mainframe.MenuBar$1.actionPerformed(MenuBar.java:119) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unkn
> own Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatc
> hThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)Caused by: java.lang.reflect.InvocationTargetException at org.apache.cxf.dosgi.dsw.handlers.ServiceInvocationHandler.invoke(ServiceInvocationHandler.java:72) ... 29 moreCaused by: org.osgi.framework.ServiceException: REMOTE ... 30 moreCaused by: java.lang.StackOverflowError at sun.misc.FloatingDecimal.developLongDigits(Unknown Source) at sun.misc.FloatingDecimal.dtoa(Unknown Source) at sun.misc.FloatingDecimal.<init>(Unknown Source) at java.lang.Double.toString(Unknown Source) at java.lang.String.valueOf(Unknown Source) at java.lang.Double.toString(Unknown Source) at org.apache.cxf.aegis.xml.AbstractMessageWriter.writeValueAsDouble(AbstractMessageWriter.java:87) at org.apache.cxf.aegis.type.basic.DoubleType.writeObject(DoubleType.java:38) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanTy
> pe.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.bas
> ic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) at org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380) at org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:320) a
> t org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:396) at org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:380)...
>
>
>
>
>
>
> Thanks for your time,Nick
> _________________________________________________________________
> Windows Live 提供您整理、編輯與分享相片的服務。
> http://www.microsoft.com/taiwan/windows/windowslive/products/photo-gallery-edit.aspx