我試圖創建一個使用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
我會深深體會到在這個問題上的任何幫助。
您是否將blueprint.xml視爲karaf中的一個包? –
@ChristianSchneider,對於H2數據源,是的,但不是sql服務器之一。我想我可能已經搞錯了包裝驅動程序,但我不確定。 – noMad17
嘗試使用換行安裝原始驅動程序:mvn:protocol –