No, and If you do what I said, in the bean thing, you will get it working.,..

This is a good read : 
http://gnodet.blogspot.com/2010/03/spring-dm-aries-blueprint-and-custom.html

You are right that the import with resolution:=optional is dangerous.


On Apr 18, 2010, at 8:51 PM, Jason Chaffee wrote:

> I have not problem with CXF working, if I don't refresh Spring AOP bundle 
> after installing the aspectj bundles.  The problem is that all bundles that 
> import META-INF/cxf/cxf.xml stop working after the Spring AOP refresh.  It is 
> a catcth 22, I can get CXF working without AOP and I can't AOP working 
> without CXF, but I can't get them both working at the same time.
> 
> 
> -----Original Message-----
> From: Johan Edstrom on behalf of Johan Edstrom
> Sent: Fri 4/16/2010 6:15 PM
> To: [email protected]
> Subject: Re: Spring AOP / AspectJ / CXF issues (the latest)
> 
> Here are two approaches that has worked.
> 
> -- I'm not entirely sure you'll wing it with aop as well int he spring 
> approach - but here is a sample bundle manifest that I used to get it 
> working from a feature installed via -r (Don't refresh)
> 
> This is using jaxws:endpoints and httpsj configs.
> 
> <plugin>
>                <groupId>org.apache.felix</groupId>
>                <artifactId>maven-bundle-plugin</artifactId>
>                <extensions>true</extensions>
>                <configuration>
>                    
> <manifestLocation>${project.build.directory}/META-INF</manifestLocation>
>                    <instructions>
>                        
> <Bundle-SymbolicName>${pom.groupId}.${pom.artifactId}</Bundle-SymbolicName>
>                        <Bundle-Name>${pom.artifactId}</Bundle-Name>
>                        <Import-Package>
> 
>                            
> com.sun.org.apache.xerces.internal.jaxp.datatype;resolution:=optional,
>                            org.apache.felix.karaf.jaas.boot,
>                            org.apache.ws.security.processor,
>                            org.apache.ws.security.transform,
>                            org.apache.ws.security.handler,
>                            javax.xml.soap,
>                            javax.xml,
>                            com.sun.xml.messaging.saaj,
>                            META-INF.cxf,
>                            javax.jws,
>                            javax.wsdl,
>                            org.apache.cxf.bus,
>                            org.apache.cxf.bus.resource,
>                            org.apache.cxf.bus.spring,
>                            org.apache.cxf.configuration.spring,
>                            org.apache.cxf.binding.soap.spring,
>                            org.apache.cxf.transport.http_osgi,
>                            org.apache.cxf.resource,
>                            org.springframework.beans.factory.config,
>                            org.springframework.context.annotation,
>                            *
>                        </Import-Package>
>                      <DynamicImport-Package>*</DynamicImport-Package>
>                        <Spring-Context>
>                            
> *;publish-context:=false;create-asynchronously:=true;wait-for-dependencies:=true;
>                        </Spring-Context>
>                        <Bundle-ClassPath>.</Bundle-ClassPath>
>                    <Include-Resource>src/main/resources</Include-Resource>
>                        
> <Embed-Dependency>cxf-rt-transports-http-jetty,org.apache.servicemix.bundles.jetty-bundle,cxf-ws-security</Embed-Dependency>
>                    </instructions>
>                </configuration>
>            </plugin>
> 
> 
> 2: Do it in a 'Normal' bean for a bundle like :
> 
> public class SimpleServer {
> 
>    JaxWsServerFactoryBean svrFactory;
>    Server srv;
>    SubscribeToNotifications subscriber;
> 
>    Logger logger = LoggerFactory.getLogger(SimpleServer.class);
> 
>    public void startServer() {
> 
>        svrFactory = new JaxWsServerFactoryBean();
> 
>        String busFactory = 
> System.getProperty(BusFactory.BUS_FACTORY_PROPERTY_NAME);
>        System.setProperty(BusFactory.BUS_FACTORY_PROPERTY_NAME, 
> "org.apache.cxf.bus.CXFBusFactory");
> 
>        JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean();
>        svrFactory.setServiceClass(NotificationProducer.class);
>        svrFactory.setAddress("http://localhost:9009/NotificationProducer";);
>        svrFactory.setServiceBean(subscriber);
>        svrFactory.getInInterceptors().add(new LoggingInInterceptor());
>        svrFactory.getOutInterceptors().add(new LoggingOutInterceptor());
> 
>        srv = svrFactory.create();
>        logger.info("Started blueprint context, notification service started 
> ");
> 
>    }
> 
>    public SimpleServer() {
>        // Not  until injection....
>    }
> 
>    public void shutDown() {
>        srv.stop();
>    }
> 
>       public SubscribeToNotifications getSubscriber() {
>               return subscriber;
>       }
> 
>       public void setSubscriber(SubscribeToNotifications subscriber) {
>               this.subscriber = subscriber;
>       }
> 
> }
> 
> 
> On Apr 16, 2010, at 5:21 PM, Jason Chaffee wrote:
> 
>> Here is a summary of the problems I have had and their resolution.  I am
>> stuck with an issue of CXF not working when I enable aspect.  Details
>> below:
>> 
>> 
>> 
>> 1.       NoClassDefFoundError:
>> org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
>> 
>> a.       This was resolved by installing the aspect bundles and
>> refreshing Spring AOP after they were installed.  The key here was to
>> refresh the Spring AOP bundle.
>> 
>> 2.       Dynamic proxy issue
>> 
>> a.       Resolved by using <aop:aspectj-autoproxy
>> proxy-target-class="true"/> before doing (1), but the issue didn't
>> appear after (1) and I was able to remove that configuration.
>> 
>> 3.       Any bundle that uses the org.apache.cxf.bundle now fails after
>> doing step (1) with the following error: NoClassDefFoundError:
>> org/springframework/beans/factory/support/ManagedSet.  This happens when
>> loading the META-INF/cxf/cxf.xml file.
>> 
>> 
>> 
>> I removed the jaxrs code from my hibernate/aop code and deployed them in
>> different bundles.  Once I did this, I got the hibernate/aop code
>> working right away after doing step (1).  Of course, this same step then
>> broke my jaxrs bundle.
>> 
>> 
>> 
>> I am stuck because I need to both and I can't get them working together.
>> The org.apache.cxf.bundle has org.springframework.beans.factory.support
>> as optional in the manifest, so I tried to refresh it, but to no avail.
>> It did not resolve all of the optional packages and put them in
>> import-package.  I even tried to building the cxf bundle myself and
>> changing the import-package logic in the pom.xml.  This didn't work
>> either, but I might have done something wrong.
>> 
>> 
>> 
>> Does anyone have any other ideas?  I am stuck on this one. 
>> 
>> 
>> 
>> Thanks,
>> 
>> 
>> 
>> Jason
>> 
> 
> Johan Edstrom
> 
> [email protected]
> 
> They that can give up essential liberty to purchase a little temporary 
> safety, deserve neither liberty nor safety.
> 
> Benjamin Franklin, Historical Review of Pennsylvania, 1759
> 
> 
> 
> 
> 
> 

Johan Edstrom

[email protected]

They that can give up essential liberty to purchase a little temporary safety, 
deserve neither liberty nor safety.

Benjamin Franklin, Historical Review of Pennsylvania, 1759





Reply via email to