2010-03-27 38 views
7

Tôi đang cố gắng tạo gói bằng cách sử dụng HttpService để đăng ký Servlet bằng cách sử dụng maven-bundle-plugin.Maven: Tham chiếu chưa được giải quyết tới [org.osgi.service.http]

Các pom.xml của dự án là:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>felix-tutorial</groupId> 
<artifactId>example-1</artifactId> 
<version>1.0</version> 
<packaging>bundle</packaging> 
<name>Apache Felix Tutorial Example 1</name> 
<description>Apache Felix Tutorial Example 1</description> 

<!-- Build Configuration --> 
<build> 
    <plugins> 
    <plugin> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>maven-bundle-plugin</artifactId> 
    <extensions>true</extensions> 
    <configuration> 
    <instructions> 
     <Bundle-SymbolicName>${pom.groupId}.${pom.artifactId}</Bundle-SymbolicName> 
     <Bundle-Name>Service listener example</Bundle-Name> 
     <Bundle-Description>A bundle that displays messages at startup and when service events occur</Bundle-Description> 
     <Bundle-Vendor>Apache Felix</Bundle-Vendor> 
     <Bundle-Version>1.0.0</Bundle-Version> 
     <Bundle-Activator>tutorial.example1.Activator</Bundle-Activator> 
     <Import-Package>org.osgi.framework;version="1.0.0", javax.servlet, javax.servlet.http</Import-Package> 
    </instructions> 
    </configuration> 
    </plugin> 
    </plugins> 
</build> 

<!-- Dependecies Management --> 
<dependencies> 
    <dependency> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>org.apache.felix.framework</artifactId> 
    <version>2.0.4</version> 
    </dependency> 
    <dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.8.1</version> 
    <scope>test</scope> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>org.apache.felix.http.api</artifactId> 
    <version>2.0.4</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>org.apache.felix.http.base</artifactId> 
    <version>2.0.4</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>org.apache.felix.http.bridge</artifactId> 
    <version>2.0.4</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>org.apache.felix.http.bundle</artifactId> 
    <version>2.0.4</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>org.apache.felix.http.proxy</artifactId> 
    <version>2.0.4</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>org.apache.felix.http.whiteboard</artifactId> 
    <version>2.0.4</version> 
    </dependency> 
    <dependency> 
    <groupId>org.osgi</groupId> 
    <artifactId>osgi_R4_compendium</artifactId> 
    <version>1.0</version> 
    </dependency> 
</dependencies> 
</project> 

"mvn cài đặt" lệnh trả về lỗi sau:

[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Apache Felix Tutorial Example 1 
[INFO] task-segment: [install] 
[INFO] ------------------------------------------------------------------------ 
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.3/maven-resources-plugin-2.3.pom 

Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-resources-plugin/2.3/maven-resources-plugin-2.3.jar 

Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.2/maven-install-plugin-2.2.pom 

Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-install-plugin/2.2/maven-install-plugin-2.2.jar 

Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-filtering/1.0-beta-2/maven-filtering-1.0-beta-2.pom 

Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.pom 

Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interpolation/1.6/plexus-interpolation-1.6.jar 
Downloading: http://repo1.maven.org/maven2/org/apache/maven/shared/maven-filtering/1.0-beta-2/maven-filtering-1.0-beta-2.jar 


[INFO] [resources:resources {execution: default-resources}] 
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! 
[INFO] skip non existing resourceDirectory C:\eclipse\ws\stripes-bundle\src\main\resources 
[INFO] [compiler:compile {execution: default-compile}] 
[INFO] Nothing to compile - all classes are up to date 
[INFO] [resources:testResources {execution: default-testResources}] 
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent! 
[INFO] skip non existing resourceDirectory C:\eclipse\ws\stripes-bundle\src\test\resources 
[INFO] [compiler:testCompile {execution: default-testCompile}] 
[INFO] Nothing to compile - all classes are up to date 
[INFO] [surefire:test {execution: default-test}] 
[INFO] Surefire report directory: C:\eclipse\ws\stripes-bundle\target\surefire-reports 

------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 
Running com.beanopoly.stripes.AppTest 
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.031 sec 

Results : 

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 

[INFO] [bundle:bundle {execution: default-bundle}] 
[ERROR] Error building bundle felix-tutorial:example-1:bundle:1.0 : Unresolved references to [org.osgi.service.http] by class(es) on the Bundle-Classpath[Jar:do 
[ERROR] Error(s) found in bundle configuration 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Error(s) found in bundle configuration 
[INFO] ------------------------------------------------------------------------ 
[INFO] For more information, run Maven with the -e switch 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 12 seconds 
[INFO] Finished at: Sat Mar 27 13:11:47 CET 2010 
[INFO] Final Memory: 12M/21M 
[INFO] ------------------------------------------------------------------------ 
+0

Câu hỏi là gì? –

+1

Câu hỏi đặt ra là: tại sao tôi có lỗi xây dựng? –

Trả lời

14

Trong cấu hình của maven-bó-cắm bạn phải chỉ định tất cả các gói bạn cần nhập.

Trong trường hợp của bạn nên là:

<plugin> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>maven-bundle-plugin</artifactId> 
    <extensions>true</extensions> 
    <configuration> 
    <instructions> 
     ... 
     <Import-Package>org.osgi.service.http, org.osgi.framework;version="1.0.0", javax.servlet, javax.servlet.http</Import-Package> 
    </instructions> 
    </configuration> 
    </plugin> 
+0

Cảm ơn Andrea Polci :) –

2

Sử dụng gói phiên bản mới hơn: org.apache.felix maven-bó-plugin 2.0.0 đúng

+0

Sử dụng phiên bản plugin mới hơn đã giải quyết được sự cố – user

4

Câu trả lời được đưa ra là sai rồi. Bạn không cần phải chỉ định TẤT CẢ các gói bạn cần nhập. Chỉ cần đặt * ở cuối hướng dẫn của bạn để nhập (không có định nghĩa phiên bản) các gói bị thiếu:

<Import-Package>org.osgi.framework;version="1.0.0", javax.servlet, javax.servlet.http**,***</Import-Package> 
Các vấn đề liên quan