2016-07-26 67 views
0

我試圖創建一個使用sqlserver數據庫作爲端點的駱駝路由。我已經瞭解到,在OSGi中集成數據源的常見方式是將它們導出爲OSGi服務。將sqljdbc4導出爲OSGi服務

出於測試和開發的目的,我使用了H2內存數據庫併成功將其導出爲服務。當我試圖用SQL Server做同樣的事情時,我遇到了一些問題。

我下載了SQL Server的JDBC驅動程序,並添加了的.jar到我的本地倉庫這樣:

$ mvn install:install-file -Dpath=<path-to-jar> 
    -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0.2206 
    -Dpackaging=jar 

我接着就包裹的.jar在OSGi束通過創建一個pom.xml像這樣:

<?xml version="1.0" encoding="utf-8"?> 
<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/xsd/maven-4.0.0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.microsoft</groupId> 
    <artifactId>sqljdbc4-osgi-bundle</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <name>SQL Server JDBC Driver</name> 
    <packaging>bundle</packaging> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.felix</groupId> 
       <artifactId>maven-bundle-plugin</artifactId> 
       <version>2.3.7</version> 
       <extensions>true</extensions> 
       <configuration> 
        <instructions> 
         <Embed-Dependency>*</Embed-Dependency> 
         <_exportcontents> 
          com.microsoft.sqlserver.jdbc.* 
          , microsoft.sql.* 
         </_exportcontents> 
        </instructions> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>com.microsoft.sqlserver</groupId> 
      <artifactId>sqljdbc4</artifactId> 
      <version>4.0.2206</version> 
     </dependency> 
    </dependencies> 
</project> 

我能夠成功安裝包在Karaf所以後來我繼續創建我的服務藍圖:

現在,當我將藍圖複製到/ deploy沒有任何反應時,沒有安裝bundle,也沒有安裝日誌。當我爲H2數據源做同樣的事情時,安裝了一個bundle。

我使用JBoss 6.2.1保險絲,駱駝版本2.15.1和Karaf 2.4.0

我會深深體會到在這個問題上的任何幫助。

+0

您是否將blueprint.xml視爲karaf中的一個包? –

+0

@ChristianSchneider,對於H2數據源,是的,但不是sql服務器之一。我想我可能已經搞錯了包裝驅動程序,但我不確定。 – noMad17

+0

嘗試使用換行安裝原始驅動程序:mvn:protocol –

回答