2010-11-23 7 views
0

Ich benutze ServiceMix 4 und versuche, die CXF-Jaxrs Demo zu ändern. Hier finden Sie meine pom.xmlpom.xml Third-Party-Import-Problem

http://maven.apache.org/maven-v4_0_0.xsd ">

<!-- 

    Licensed to the Apache Software Foundation (ASF) under one or more 
    contributor license agreements. See the NOTICE file distributed with 
    this work for additional information regarding copyright ownership. 
    The ASF licenses this file to You under the Apache License, Version 2.0 
    (the "License"); you may not use this file except in compliance with 
    the License. You may obtain a copy of the License at 

     http://www.apache.org/licenses/LICENSE-2.0 

    Unless required by applicable law or agreed to in writing, software 
    distributed under the License is distributed on an "AS IS" BASIS, 
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
    See the License for the specific language governing permissions and 
    limitations under the License. 
--> 

<modelVersion>4.0.0</modelVersion> 
<parent> 
    <groupId>org.apache.servicemix.examples</groupId> 
    <artifactId>examples</artifactId> 
    <version>4.2.0</version> 
</parent> 
<groupId>com.demo</groupId> 
<artifactId>calendar-service</artifactId> 
<packaging>bundle</packaging> 
<name>Calendar Api Demo :: CXF JAX-RS OSGI</name> 
<repositories> 
<repository> 
    <id>mandubian-mvn</id> 
    <url>http://mandubian-mvn.googlecode.com/svn/trunk/mandubian-mvn/repository</url> 
</repository> 
</repositories> 
<dependencies> 
    <dependency> 
     <groupId>com.google.collections</groupId> 
     <artifactId>google-collections</artifactId> 
     <version>1.0-rc5</version> 
    </dependency> 
    <dependency> 
     <groupId>net.sourceforge.findbugs</groupId> 
     <artifactId>jsr305</artifactId> 
     <version>1.3.2</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.gdata</groupId> 
     <artifactId>gdata-client-1.0</artifactId> 
     <version>1.41.5</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.gdata</groupId> 
     <artifactId>gdata-calendar-2.0</artifactId> 
     <version>1.41.5</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.gdata</groupId> 
     <artifactId>gdata-core-1.0</artifactId> 
     <version>1.41.5</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.gdata</groupId> 
     <artifactId>gdata-base-1.0</artifactId> 
     <version>1.41.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.servicemix.specs</groupId> 
     <artifactId>org.apache.servicemix.specs.jsr311-api-1.0</artifactId> 
     <version>1.3.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.servicemix.specs</groupId> 
     <artifactId>org.apache.servicemix.specs.jaxb-api-${jaxb.api.version}</artifactId> 
     <version>${servicemix.specs.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.servicemix.bundles</groupId> 
     <artifactId>org.apache.servicemix.bundles.commons-httpclient</artifactId> 
     <version>${commons-httpclient.version}</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.felix</groupId> 
      <artifactId>maven-bundle-plugin</artifactId> 
      <extensions>true</extensions> 
      <configuration> 
       <instructions> 
        <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName> 
        <Import-Package> 
          javax.wsdl, 
          javax.xml.bind, 
          javax.xml.bind.annotation, 
          javax.ws.rs, 
          META-INF.cxf, 
          META-INF.cxf.osgi, 
          org.apache.cxf.bus, 
          org.apache.cxf.bus.spring, 
          org.apache.cxf.bus.resource, 
          org.apache.cxf.resource, 
          org.apache.cxf.configuration.spring, 
          org.apache.cxf.binding, 
          org.apache.cxf.jaxrs.utils, 
          org.apache.cxf.transport.http_osgi, 
          org.springframework.beans.factory.config, 
          org.apache.commons.httpclient, 
          org.apache.commons.httpclient.methods, 
          com.google.gdata.client.calendar;resolution:=optional, 
          com.google.gdata.data;resolution:=optional, 
          com.google.gdata.data.calendar;resolution:=optional, 
          com.google.gdata.data.extensions;resolution:=optional, 
          com.google.gdata.util;resolution:=optional 
        </Import-Package> 
        <Require-Bundle>org.apache.cxf.bundle</Require-Bundle> 
        <Export-Package>com.demo.*;</Export-Package> 
        <DynamicImport-Package>javax.ws.rs.*</DynamicImport-Package> 
       </instructions> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>exec-maven-plugin</artifactId> 
      <configuration> 
       <mainClass>edu.berkeley.api.client.Client</mainClass> 
       <includePluginDependencies>false</includePluginDependencies> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Maven baut erfolgreich, aber wenn ich versuche zu implementieren es auf ServiceMix, erhalte ich:

verursacht durch: java.lang.ClassNotFoundException: com.google.gdata.data.calendar.CalendarEntry bei org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation (ModuleImpl.java:814) bei org.apache.felix.framework.ModuleImpl.access $ 100 (ModuleImpl.java:61) bei org.apache.felix.framework.ModuleImpl $ ModuleClassLoader.loadClass (ModuleImpl.java:1733) bei java.lang.ClassLoader .loadClass (ClassLoader.java:248) ... 42 mehr

Fehle ich einen Schritt? Jeder Einblick wird geschätzt.

Antwort

0

Versuchen Sie, "; resolution: = optional" aus "com.google.gdata.data.calender" zu entfernen, damit OSGi Sie informieren kann, wenn der erforderliche Import fehlt.

Ich habe mir das Manifest des JAR "gdata-calendar-2.0-1.41.5.jar" angeschaut und es fehlen OSGi-Daten. Dies bedeutet, dass Sie das JAR als OSGi-Paket verpacken müssen. Sie können dies in der Karaf-Konsole mit dem Befehl wrap tun: osgi: install -s wrap: mvn: com.google.gdata/gdata-calendar-2.0/1.41.5