JDeveloper基于DB的MDS连接问题

时间:2011-04-27 13:50:02

标签: oracle jdeveloper

在JDeveloper中创建基于DB的MDS连接期间,分区列表为空。 我曾尝试在Oracle和SQL Server上安装Oracle SOA Suite 11g,并在JDeveloper中使用不同的jdbc驱动程序解决此问题。 当然,数据库中的MDS模式是使用Oracle Repository Creation实用程序创建的,并且尝试了sys / sa和DEV_MDS用户。

我查看了JDeveloper Messages选项卡并看到了这样的错误:

警告:读取连接名称Connection1的数据库分区时出错。原因:MDS-00003:连接数据库时出错 无法启动通用连接池:oracle.ucp.UniversalConnectionPoolException:在通用连接池管理器MBean中创建池期间出错:oracle.ucp.UniversalConnectionPoolException:在通用连接池管理器中创建池期间出错:java.sql.SQLException:无效的通用连接池配置:java.sql.SQLException:无法使用提供的工厂类名创建工厂类实例:java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerXADataSource
在Universal Connection Pool Manager MBean中创建池期间出错:oracle.ucp.UniversalConnectionPoolException:在通用连接池管理器中创建池期间出错:java.sql.SQLException:无效的通用连接池配置:java.sql.SQLException:无法创建工厂类提供工厂类名称的实例:java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQLServerXADataSource

很奇怪,因为它是来自sqljdbc4.jar的类,我已将其指定为JDBC驱动程序(Microsoft SQL Server JDBC Driver 3.0)。

所以我尝试了jTDS SQL Server驱动程序并收到了这样的错误:

2011年4月26日下午9:52:01 oracle.tip.tools.ide.common.resourcepalette.adapter.mds.DBConnectionInfo 警告:读取连接名称Connection2的数据库分区时出错。原因:

1 个答案:

答案 0 :(得分:4)

这个答案迟到了一点,但希望它会对下一个偶然发现这个问题的程序员有所帮助。

我正在尝试使用MS SQL Server构建和部署一个简单的SOA / BPM / ADF应用程序,作为包含MDS数据的后端数据库。

我能够使用JDeveloper创建与SQL Server实例的数据库连接,但是当我尝试创建新的MDS连接时,我遇到了与Denys相同的问题:分区列表为空并且在几个小时之后(或天)我在消息选项卡中发现了相同的错误消息:

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerXADataSource

即使实际的数据库连接正常工作。

此外,每当我尝试使用JDeveloper的构建命令或Maven或Ant任务构建我的应用程序时,我都收到了同样的错误。

所有错误都指向缺少JDBC驱动程序的方向,实际上并没有丢失。

我终于能够至少部分地解决这个问题,尽管我不得不使用非常脏的黑客。

在JDeveloper中创建MDS连接的解决方案:

为了实现这一点,我必须让MDS模块意识到实际上存在用于SQL服务器的JDBC驱动程序,因此我将驱动程序的jar添加到${jdev.home}/extensions/oracle.mds.dt.jar#META-INF/extension.xml中的模块类路径中:

<classpath>c:/dev/jdbc/mssql/sqljdbc4.jar</classpath>

在我看来,只要在项目的库设置中拥有驱动程序就足够了,但不知何故只是不会削减它。

让ant scac任务正常运行的解决方案:

我通过基本上做同样的事情来使构建有点前进。我通过修改${jdev.home}/bin/ant-sca-compile.xml

将JDBC驱动程序的jar添加到scac的类路径中
<path id="scac.tasks.class.path">
    <!-- Added this line -->
    <pathelement path="c:/dev/jdbc/mssql/sqljdbc4.jar"/>
</path>

总而言之,这些并不是我所希望的那种解决方案,但也许其他人会从中受益。

现在我因为丢失和/或损坏的wsdl文件而导致我的composite.xml验证失败:

[scac] Validating composite "C:\install\fod\CompositeServices\OrderBookingComposite\bin/..//composite.xml"
[scac] error: location {/ns:composite/ns:import[@location='oramds:/apps/FusionOrderDemoShared/services/orderbooking/OrderBookingProcessor.wsdl']}(15,125): Load of wsdl "oramds:/apps/FusionOrderDemoShared/services/orderbooking/OrderBookingProcessor.wsdl" failed
[scac] error: location {/ns:composite/ns:import[@location='oramds:/apps/FusionOrderDemoShared/services/partnersupplier/PartnerSupplierComposite.wsdl']}(25,30): Load of wsdl "oramds:/apps/FusionOrderDemoShared/services/partnersupplier/PartnerSupplierComposite.wsdl" failed
[scac] error: location {/ns:composite/ns:import[@location='oramds:/apps/FusionOrderDemoShared/services/oracle/fodemo/storefront/store/service/common/serviceinterface/StoreFrontService.wsdl']}(29,30): Load of wsdl "oramds:/apps/FusionOrderDemoShared/services/oracle/fodemo/storefront/store/service/common/serviceinterface/StoreFrontService.wsdl" failed
... continues with errors for everything else

尝试在Oracle的Fusion Order Demo应用程序中执行compile-build-all任务时会发生此错误。对此有任何建议是最受欢迎的。