Hi, As far as I can tell, Aries doesn't use AOP or CGLIB to proxy the service. Instead they use an interceptor mechanism: a Java class that contains methods to define the behaviour to be executed before and after the service invocation is done.
Kr, Frederik. -----Original Message----- From: Sergey Beryozkin [mailto:[email protected]] Sent: woensdag 16 november 2011 14:15 To: [email protected] Subject: Re: CXF DOSGI and transactions Hi On 16/11/11 11:20, De Backer Frederik (DBB) wrote: > Hello, > I have installed the latest single bundle release of CXF DOSGI in > Apache Aries 0.3. I have played around a bit with it and it works ok > to remotely expose a service (see blueprint definition below). > However, when I add a transaction attribute on the bean definition (in > comment below), the service is not exposed anymore. The purpose is not > to do transaction propagation from client to service but just to start > a transaction when the service method is invoked. > <service interface="dexia.osgipoc.sedm3.service.BankService" > ref="bankServiceBean"> > <service-properties> > <entry key="service.exported.interfaces" value="*" /> <entry > key="service.exported.configs" value="org.apache.cxf.ws" /> <entry > key="org.apache.cxf.ws.address" > value="http://localhost:9090/bankservice" /> </service-properties> > </service> <bean id="bankServiceBean" > class="dexia.osgipoc.sedm3.service.BankServiceImpl" > activation="lazy"> > <!-- tx:transaction method="*" value="Required" /--> <property > name="actorService" ref="actorServiceRef" /> <property > name="accountService" ref="accountServiceRef" /> </bean> In the > console log I see (NULL for EndpointDescription): > 16-nov-2011 10:41:09 > org.apache.cxf.dosgi.topologymanager.TopologyManager$2 run > INFO: TopologyManager: export sucessful Endpoints:[Endpoint > Desctiption for Serv iceReference > {dexia.osgipoc.sedm3.service.BankService}={osgi.service.blueprint.c > ompname=bankServiceBean, > org.apache.cxf.ws.address=http://localhost:9090/bankser > vice, service.exported.interfaces=*, > service.exported.configs=org.apache.cxf.ws, > service.id=107} > *** EndpointDescription: **** > ---> NULL<---- > *** Exception: null **** > *** isClosed : false **** > ] > It is most likely a bug to do with DOSGi CXF not able to get to the actual interface class given that Aries must be proxifying it.. CXF has utilities to deal with such cases but I'm wondering, how the proxification is done in this case, if Spring AOP or CGLIB is used then a fix may be applied, can you create a simple test case somehow ? As a workaround, please try experimenting with forcing CGLIB be used Cheers, Sergey While in the case that it works correctly, I see: > INFO: TopologyManager: export sucessful Endpoints:[Endpoint > Desctiption for Serv iceReference > {dexia.osgipoc.sedm3.service.BankService}={osgi.service.blueprint.c > ompname=bankServiceBean, > org.apache.cxf.ws.address=http://localhost:9090/bankser > vice, service.exported.interfaces=*, > service.exported.configs=org.apache.cxf.ws, > service.id=111} > *** EndpointDescription: **** > endpoint.framework.uuid => c39d5ef1-ca55-4141-9901-d976b0e59ed1 > endpoint.id => http://localhost:9090/bankservice > endpoint.package.version.dexia.osgipoc.sedm3.service => > 0.0.1.SNAPSHOT endpoint.service.id => 111 objectClass => > [Ljava.lang.String;@c67f69 org.apache.cxf.ws.address => > http://localhost:9090/bankservice osgi.service.blueprint.compname => > bankServiceBean service.imported => true service.imported.configs => > [Ljava.lang.String;@1d6e4a4 service.intents => > [Ljava.lang.String;@13ceab3 > *** Exception: null **** > *** isClosed : false **** > ] > Thx a lot for the support, > Frederik. > > ---------------------------------------------------------------------- > --- > Dexia disclaimer: > > http://www.dexia.com/maildisclaimer.htm > ---------------------------------------------------------------------- > --- > > ------------------------------------------------------------------------- Dexia disclaimer: http://www.dexia.com/maildisclaimer.htm -------------------------------------------------------------------------
