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