卡拉夫 MSSQL 不工作

Karaf MSSQL not working

我想在我的包中使用 Microsoft SQL 数据库,并且需要加载实体。 我有 2 个包,一个用于数据源,另一个用于加载实体。 如何设置MSSQl数据源?

这是我的数据源,

<bean id="esbDataSource" class="net.sourceforge.jtds.jdbcx.JtdsDataSource">
     <property name="url" value="jdbc:sqlserver://localhost:1433;databaseName=testdb"/>
     <property name="username" value="sa"/>
     <property name="password" value="root"/>
</bean>

<osgi:reference id="platformTxManager" interface="org.springframework.transaction.PlatformTransactionManager"/>

<osgi:reference id="recoverableTxManager" interface="org.apache.geronimo.transaction.manager.RecoverableTransactionManager"/>

<!--<osgi:service id="pool" ref="datasourcePool" interface="javax.sql.DataSource" >
    <entry key="osgi.jndi.service.name" value="jdbc/datasourcePool" />
</osgi:service>-->

<osgi:service ref="esbDataSource">
    <osgi:interfaces>
        <value>javax.sql.DataSource</value>
    </osgi:interfaces>
    <service-properties>
        <entry key="osgi.jndi.service.name" value="jdbc/mssqlDatasource" />
    </service-properties>
</osgi:service>

Persistence.xml

 <persistence-unit name="billing" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/mssqlDatasource)</jta-data-source>

        <class>org.redhat.support.entity.Billing</class>
        <class>org.redhat.support.entity.Testing</class>
        <exclude-unlisted-classes>true</exclude-unlisted-classes>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <property name="hibernate.default_schema" value="testdb"/>
            <property name="hibernate.show_sql" value="true"/>
        </properties>
    </persistence-unit>

Pom.xml

<dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>sqljdbc4</artifactId>
            <version>4.0</version>
        </dependency>
         <dependency>
            <groupId>net.sourceforge.jtds</groupId>
            <artifactId>jtds</artifactId>
              <version>1.3.0</version>
        </dependency>

我想在 OSGi karaf 容器中部署它,我错过了什么设置?

我终于创建了表格并且工作正常。下面的数据源工作正常。 请仔细检查需要的依赖项是否应该安装在 JBoss Fuse karaf OSGi 容器中。

<bean id="esbDataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver"/>
    <property name="url" value="jdbc:jtds:sqlserver://localhost:1433;databaseName=testdb"/>
    <property name="username" value="sa"/>
    <property name="password" value="root"/>
</bean>