'weblogic restart'上的用户必须提供JDBC连接

时间:2010-12-20 17:22:57

标签: java jdbc initialization weblogic

我正在使用Weblogic 11。 在初始部署所有JMS配置之后,JDBC配置(来自XADS-jdbc.xml)和耳朵一切正常。

但是在weblogic重启应用程序无法初始化时出现错误

Caused By: java.lang.UnsupportedOperationException: The user must supply a JDBC connection
 at org.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:54)
 at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51)
 at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:130)
 at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:349)
 at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1327)
 at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
 at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
 at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:132)...

根据日志JDBC和EAR开始同步初始化。因此,当EAR尝试验证DB方案时,JDBC配置初始化尚未完成。

什么能解决这种情况? 是否有任何weblogic配置使用哪些部署项初始化可以订购?

先谢谢。

的persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
    xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="TestDSPU" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>jdbc/testN/test/TestXADS</jta-data-source>
    <mapping-file>META-INF/orm.xml</mapping-file>
    <properties>
        <!-- <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9iDialect"/>  -->
        <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/> 
        <property name="hibernate.max_fetch_depth" value="3"/>
        <!-- <property name="hibernate.cache.use_query_cache" value="true"/> -->
        <property name="hibernate.cache.region_prefix" value="hibernate.test"/>
        <property name="hibernate.jdbc.use_streams_for_binary" value="true"/>
        <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WeblogicTransactionManagerLookup"/>
        <property name="show_sql" value="true"/>
        <property name="hibernate.query.factory_class" value="org.hibernate.hql.classic.ClassicQueryTranslatorFactory"/>
        <property name="hibernate.hbm2ddl.auto" value="validate" /> 
    </properties>
</persistence-unit>

2 个答案:

答案 0 :(得分:1)

您是否尝试通过管理控制台创建JDBC连接?如果没有,请尝试通过管理控制台创建数据源。完成后,打开config.xml,您应该看到如下所示的内容:

      <jdbc-system-resource>
        <name>TestXADS</name>
        <target>AdminServer</target>
        <descriptor-file-name>jdbc/TestXADS-jdbc.xml</descriptor-file-name>
      </jdbc-system-resource>

请注意:外部节点应为&lt; jdbc-system-resource&gt;

答案 1 :(得分:0)

我会仔细检查WebLogic是否按docs中所述的默认顺序部署资源。