`
xiaotian_ls
  • 浏览: 308211 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Spring对JNDI的支持

阅读更多

Spring中对于JNDI的访问,提供了便捷的方法,在Spring的org.springframework.jndi包中包含了所有的类。其中提供了一下核心类:

(1)JndiTemplate:它是这个包的核心类,用来简化对JNDI的操作。它提供了对于lookup、bind方法。同时,允许JndiCallback接口的实现在其提供的JNDI上下文中执行任何操作。

使用JndiTemplate实现InitialContext环境变量的配置

<bean id="queueTarget" class="org.springframework.jndi.JndiObjectTargetSource">
    <property name="jndiName">
        <value>queue/testQueue</value>
    </property>
    <property name="jndiTemplate">
        <ref local="jndiTemplate"/>
    </property>
</bean>
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
    <property name="environment">
        <props>
     <prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
            <prop key="java.naming.provider.url">jnp://localhost:1099</prop>
            <prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop>
        </props>
    </property>
</bean>

(2)JndiObjectTargetSource

使用JndiObjectTargetSource,例如

<bean id="queueTarget" class="org.springframework.jndi.JndiObjectTargetSource">
    <property name="jndiName">
        <value>queue/testQueue</value>
    </property>
</bean>

(3)JndiObjectFactoryBean

使用JndiObjectFactoryBean,例如
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
        <value>java:/MySqlDS</value>
    </property>
</bean>

总结(事例):

数据源的配置:

(1)配置可以访问到同一应用服务器的jndi数据源
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
        <value>jdbc/cqccms</value>
    </property>
</bean>
(2)配置能访问远程jndi数据源
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
  <value>jdbc/cqccms</value>
</property>
<property name="jndiEnvironment">
     <props>
        <prop key="java.naming.factory.initial">
          weblogic.jndi.WLInitialContextFactory
        </prop>
        <prop key="java.naming.provider.url">t3://172.16.101.42:7001</prop>
        <prop key="java.naming.security.principal">weblogic</prop>
        <prop key="java.naming.security.credentials">weblogic</prop>
     </props>   
   </property>
  </bean>
事务的配置:

不过事务对象远程访问好像没那么顺利,同理查看org.springframework.transaction.jta.JtaTransactionManager类,没有发现上述方法,不过看到了setJndiTemplate()方法,也不错现配置一个jndiTemplate,如下:
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate" singleton="true"
  lazy-init="default" autowire="default" dependency-check="default">
  <property name="environment">
     <props>
        <prop key="java.naming.factory.initial">
          weblogic.jndi.WLInitialContextFactory
        </prop>
        <prop key="java.naming.provider.url">t3://172.16.101.42:7001</prop>
        <prop key="java.naming.security.principal">weblogic</prop>
        <prop key="java.naming.security.credentials">weblogic</prop>
     </props>   
   </property>
</bean>
      然后在配置一下transactionManager,如下
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" singleton="true"
  lazy-init="default" autowire="default" dependency-check="default">
  <property name="jndiTemplate">
   <ref local="jndiTemplate" />
  </property>
  <property name="userTransactionName">
   <value>weblogic/transaction/UserTransaction</value>
  </property>
</bean>
      不过JtaTransactionManager默认找jndi name为UserTransaction的jta对象,在同一应用服务器上可以,远程访问不到,后直接查看weblogic的jndi树找到这个jndi名weblogic/transaction/UserTransaction,配置上测试果然成功。

分享到:
评论

相关推荐

    spring获取weblogic jndi数据源的两种方式

    ### Spring 获取 WebLogic JNDI 数据源的两种方式 在Spring框架中,通过JNDI(Java Naming and Directory Interface)可以方便地访问WebLogic服务器中的数据源。这为应用程序提供了高度解耦的数据访问机制,使得...

    spring 配置jndi

    大多数应用服务器都支持将这些连接池作为JNDI数据源的实现。 总之,配置Spring中的JNDI数据源是实现灵活且可扩展的数据库连接管理的关键步骤。理解这一过程将帮助你更好地构建和维护基于Spring的分布式应用程序。

    spring+jotm 多数据源事务管理(三)JNDI+Tomcat

    ### Spring + JOTM 多数据源事务管理详解(三):JNDI + Tomcat 在本篇文章中,我们将深入探讨如何利用Spring框架结合JOTM(Java Open Transaction Manager)来实现多数据源下的分布式事务管理。我们将通过具体实例...

    Spring JMS 消息处理-基于JNDI

    在IT行业中,Spring框架是Java开发者的首选工具之一,它为构建企业级应用程序提供了广泛的支持。Spring JMS(Java Message Service)是Spring框架的一部分,它允许开发者轻松地集成消息中间件,实现解耦和异步通信。...

    Spring JMS消息处理-不基于JNDI

    在本文中,我们将深入探讨Spring框架中的Java消息服务(JMS)支持,特别是不依赖于JNDI(Java Naming and Directory Interface)的方式。Spring JMS为应用程序提供了与消息中间件交互的能力,允许我们构建可扩展且...

    JNDI示例整合SSH

    JNDI支持多种服务,如 LDAP、RMI 和 DNS 等。 2. **JNDI在应用服务器中的作用:** 在Tomcat这样的应用服务器中,JNDI常用来管理资源,比如数据源(DataSource)。开发者可以将数据源配置在服务器的上下文中,然后...

    jboss配置MySql的JNDI

    JBoss作为一个高性能的Java应用服务器,提供了丰富的功能支持企业级应用开发。JNDI作为Java平台的标准命名和目录接口,用于查找和管理分布式环境中的对象和服务,包括数据库连接等资源。通过在JBoss中配置JNDI数据源...

    ssm+maven+jndi+jdbc

    Spring 5.0引入了许多新特性,包括对Java 8的全面支持,增强的Reactive编程模型,改进的WebSocket支持,以及对HTTP/2的原生支持。Spring的IoC(Inversion of Control,控制反转)容器负责管理对象的生命周期和依赖...

    Spring的数据源配置 DBCP、C3P0、JNDI.txt

    ### Spring 数据源配置详解:DBCP、C3P0与JNDI #### 一、引言 在Java企业级应用开发中,数据库连接管理是一个关键环节,它直接影响到应用程序的性能与稳定性。Spring框架提供了丰富的数据访问抽象层,使得开发者...

    Spring框架.ppt

    核心容器。...通过配置管理特性,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块直接将面向方面编程的功能集成到Spring框架中。它为基于Spring 应用程序的对象提供了事务管理服务。

    Spring的7大模块面试

    Spring框架是Java开发中广泛使用的轻量级框架,它的核心在于控制反转(IoC)和面向切面编程(AOP),并由七个主要模块构成,这些模块相互独立,也可以协同工作,为开发者提供了强大的功能支持。以下是对这些模块的...

    spring4.3.9相关jar包

    spring-context.jar(必须):这个jar 文件在基础IOC功能上为Spring 核心提供了大量扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持...

    spring2.0和spring2.5 及以上版本的jar包区别 spring jar 包详解

    它还支持与JNDI的集成,使得Spring的应用程序能够与现有的企业服务进行交互。 5. **spring-dao.jar**:提供了一组异常层次结构,简化了数据访问层的错误处理。它还包含了一些通用的数据访问工具类,比如...

    spring4.1核心包

    在基础IOC功能上提供扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持。这个jar 文件为Spring 核心提供了大量扩展。可以找到使用...

    spring详细教程

    - **上下文**:提供了一个配置文件,允许 Spring 与外部系统进行交互,例如 JNDI、EJB、邮件服务等。 - **AOP**:提供了面向切面编程的支持,使得开发者可以方便地在 Spring 管理的对象中实现 AOP 功能。 - **DAO ...

    Spring Framework Testing 读书笔记

    在 Spring Framework 中,JNDI 是一个重要的组成部分,提供了对 JNDI 的支持。org.springframework.mock.jndi 包含了 JNDI 的 partial implementation,可以用于测试环境中。 Servlet API Servlet API 是 Java 中...

    精通spring--源代码

     对Spring2.5内置的各种XML Schema支持进行了全方位阐述。包括基于XML Schema的权威配置指南  全书理论与实践并重,通过大量的实例帮助读者尽快掌握Spring2,5的各种基本和高级使用技巧,从而提高本书的参考和阅读...

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.8. Spring对分段文件上传(multipart file upload)的支持 13.8.1. 介绍 13.8.2. 使用MultipartResolver 13.8.3. 在表单中处理分段文件上传 13.9. 使用Spring的表单标签库 13.9.1. 配置标签库 13.9.2. form标签 ...

Global site tag (gtag.js) - Google Analytics