Java 如何使用Websphere Liberty Profile 8.5中定义的数据源?

Java 如何使用Websphere Liberty Profile 8.5中定义的数据源?,java,spring,datasource,jndi,websphere-liberty,Java,Spring,Datasource,Jndi,Websphere Liberty,Im使用WebSphere8.5.5Liberty概要文件部署使用通过jndi定义和公开的数据源的应用程序。但是我无法使用我的应用程序中的数据源。My server.xml如下所示: <server description="new server"> <!-- Enable features --> <featureManager> <feature>jsp-2.2</feature>

Im使用WebSphere8.5.5Liberty概要文件部署使用通过jndi定义和公开的数据源的应用程序。但是我无法使用我的应用程序中的数据源。My server.xml如下所示:

<server description="new server">

    <!-- Enable features -->
    <featureManager>
        <feature>jsp-2.2</feature>
        <feature>jndi-1.0</feature>
        <feature>ejbLite-3.1</feature>
        <feature>jdbc-4.0</feature>
    </featureManager>

    <dataSource id="mssqlserver" jndiName="jdbc/sqlserver_prod" type="javax.sql.DataSource">
        <jdbcDriver libraryRef="MSJDBCLib"/>
        <connectionManager numConnectionsPerThreadLocal="10" id="ConnectionManager" minPoolSize="1"/>
        <properties.microsoft.sqlserver username="sa" password="" databaseName="PROD"
                                    serverName="10.211.55.4" portNumber="1433"/>
    </dataSource>

    <library id="MSJDBCLib">
        <fileset dir="/Users/alter/Devel/sqlserver" includes="sqljdbc4.jar"/>
    </library>

    <httpEndpoint id="defaultHttpEndpoint"
                  host="0.0.0.0"
                  httpPort="9080"
                  httpsPort="9443" />
    <application id="ee1" location="/Users/alter/Devel/xxxx/src/ear/target/ee1-ear.ear" name="ear_ear_exploded" type="ear" >
        <classloader delegation="parentLast" commonLibraryRef="MSJDBCLib" />
    </application>

    <application id="ee1-web" location="/Users/alter/Devel/xxxx/src/web/target/ee1-web" name="web_exploded" type="war" />
</server>
注1:我在可部署工件ear、wars等中没有提到jdbc驱动程序


我在server.xml中缺少数据源定义的一些配置参数???。

您可能需要查看Spring帮助程序类WebSphereDataSourceAdapter。IBM有在服务中“包装”服务的诀窍,这需要使用一些“展开”


查看Spring API文档中关于尝试什么的可能提示

我有类似的代码,但我添加了Spring jee:jndi查找标记,用于查找Spring中的数据源

<jee:jndi-lookup id="dataSourcePROD" jndi-name="jdbc/sqlserver_prodS" resource-ref="false" expected-type="javax.sql.DataSource"/>
username是properties.microsoft.sqlserver元素中的错误属性。您应该改用用户:


我看不出你的配置有任何问题。该错误看起来像是产品问题。我建议与IBM建立PMR。
org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'com.ibm.ws.jdbc.DataSourceService' to required type 'javax.sql.DataSource' for property 'dataSource';
<jee:jndi-lookup id="dataSourcePROD" jndi-name="jdbc/sqlserver_prodS" resource-ref="false" expected-type="javax.sql.DataSource"/>
<properties.microsoft.sqlserver user="sa" password="" databaseName="PROD"
                                serverName="10.211.55.4" portNumber="1433"/>