当前位置: 首页 > 知识库问答 >
问题:

在weblogic中的Spring/Eclipselink项目中使用本地/全局JNDI数据源查找时,不会提交事务

巫马欣嘉
2023-03-14

当我在persistence.xml中使用全局JNDI名称时,一切正常。

如果我使用本地JNDI名称,将resource-ref添加到web.xml并将本地名称映射到weblogic.xml中的全局名称,就会出错。他成功地部署,找到数据源,进行选择和插入,但从来没有提交!当我直接在persistence.xml中使用全局JNDI名称时,确实会发生提交。

<bean id="localContainerEntityManagerFactoryBean" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="rctUnit" />
</bean>

<bean id="transactionManager" class="org.springframework.transaction.jta.WebLogicJtaTransactionManager" />

<tx:annotation-driven transaction-manager="transactionManager" />
<persistence-unit name="rctUnit" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>java:comp/env/jdbc/rct</jta-data-source>
<resource-ref>
    <description>RCT DB</description>
    <res-ref-name>jdbc/rct</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

<resource-description>
    <res-ref-name>jdbc/rct</res-ref-name>
    <jndi-name>db.datasource.rct</jndi-name>
</resource-description>
  • EclipseLink:2.0.2
  • JPA:1.0.0
  • Spring:3.2.0.发布
  • WebLogic:10.3.3

共有1个答案

庄弘业
2023-03-14

可能是因为前缀java:comp/根据部署环境不同而不同,所以有些可能不使用“comp”部分

 类似资料:
  • 我无法从WebLogic 10.3.6中的EJB模块中查找本地会话bean。 在下面的示例中,我可以使用注入,但在实际产品中,我们需要从非托管对象访问本地会话bean,因此这是为了演示问题。我也知道它可以与远程接口一起工作,但为什么呢?因为我应该能够在本地完成。 在这里,客户端尝试查找本地会话bean。这个非常相同的代码似乎在其他应用程序服务器中工作,但在WebLogic中不起作用。 例外:

  • 我正在WebLogic12c上部署一个Spring Boot应用程序。 没有Jndi数据源,一切正常。我试图在WebLogic上配置一个名为“jdbc/myDataSource”的数据源,并在我的应用程序上设置了如下属性: 但是,当我部署我的web应用程序时,我收到以下错误: WebLogic.Application.ModuleException:javax.naming.nameNotFoun

  • 当使用Spring Batch Admin时,它会尝试为dataSource、transactionManager等提供一些默认值。 如果您想覆盖这些默认值,您可以在META-INF/Spring/批/servlet/overder/文件夹下创建自己的xml bean定义,并且在引导期间它保证将覆盖默认属性。 在spring batch admin中,数据源默认值是在数据源上下文中定义的。使用此定

  • 我已经为使用外部Tomcat的Spring Boot应用程序的JNDI数据源连接进行了bellow提到的配置。 context.xml类似 为spring boot定义了Application.Properties 更新了web.xml,如

  • 问题内容: 我们正在使用weblogic版本12C。重现此问题的步骤:- 创建数据源。 将应用程序部署到weblogic。 应用程序工作正常。 用新的耳朵更新部署的耳朵。 应用程序无法连接数据源。 数据源在JNDI树中不可用。 我们需要每次创建一个新的数据源或再次保存数据源设置。 有人可以检查一下,让我知道是否知道一些解决方案吗? 问题答案: 我有同样的问题。添加destroyMethod =“”

  • 我的问题似乎与在战争中部署的本地EJB的WildFly JNDI查找相同,只是我无法让他的解决方案工作。 我对部署在jar jaws-server-ejb3中的EJB有一个耳朵。在我的应用程序中,我想在bean上调用一个方法。我已经在我的bean上尝试了有和没有。 野蝇(8.2)启动时打印出来: 当我将@LocalBean添加到我的bean中时,我看到: 因此,从我读到的所有内容来看,似乎很清楚,