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 <[email protected]>: > > 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
