`
x007700x
  • 浏览: 11589 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Spring-JNDI配置[转载]

 
阅读更多
转载自:http://jyaitangbo.blog.163.com/blog/static/538403052008112411052536/

Spring-JNDI配置  2008-12-24 11:00:52|  分类: Spring |  标签: |字号大中小 订阅 .

Spring对JNDI的支持

2008-02-22 16:01



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,配置上测试果然成功.

分享到:
评论

相关推荐

    weblogic CVE-2018-3191 exp(含weblogic-spring-jndi-10.3.6.0.jar)

    自用CVE-2018-3191 weblogic反序列化exp。

    weblogic spring jndi配置

    NULL 博文链接:https://zzy603.iteye.com/blog/1039826

    spring-aop-5.1.0.RELEASE.jar

    spring-**cntext**-4.3.6.RELEASE.jar:spring提供了基础IOC功能上的扩展服务,提供了很多企业级服务的支持,如邮件服务,任务调度,JNDI定位,EJB集成,远程访问,缓存以及各种试图层框架的封装等。 spring-...

    eclipse与glassfish3.1.1使用配置-连接池配置-JNDI配置[归纳].pdf

    本文档旨在指导读者如何在 Eclipse 中配置 GlassFish 3.1.1,实现连接池配置和 JNDI 配置。同时,也会解决在部署过程中可能出现的异常。 一、GlassFish 3.1.1 简介 GlassFish 是一个开源的 Java EE 应用服务器,由 ...

    spring-jdbc-4.2.xsd.zip

    4. `&lt;jee:jndi-lookup&gt;`:用于从JNDI目录服务中查找DataSource,这在部署于应用服务器上的项目中常见。 5. `&lt;jdbc:dataSource&gt;`:定义数据源,可以配置连接池信息,如C3P0、Apache DBCP、HikariCP等。 6. `...

    Simple-JNDI:通过JNDI查找访问属性文件。 从JNDI获取数据源

    因此,Spring建议替换其已弃用的JNDI Mock实现(请参阅 )。 Simple-JNDI旨在解决的第二个问题是从应用程序中的任何位置轻松访问应用程序配置。 如果您唯一的目的是测试或使用依赖于Tomcat之外的Tomcat JNDI环境的...

    spring-jndi-lookup:如何使用Spring从JNDI查找数据源

    春天jndi查找 如何使用Spring从JNDI查找数据源 Server.xml &lt;... maxActive="100" maxIdle="20" minIdle="5" ...jee:jndi-lookup id =“ dataSource” jndi-name =“ jdbc / javatechie” Expected

    spring配置JNDI数据源

    Spring框架作为一个强大的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)容器,提供了多种配置数据源的方式,其中包括通过JNDI(Java Naming and Directory Interface)来查找和配置数据源。JNDI...

    Tomcat6+spring+jndi配置数据源说明.docx

    Tomcat6+Spring+JNDI配置数据源说明 本文档主要介绍了Tomcat6+Spring+JNDI配置数据源的详细步骤和原理。数据源是一个池子,里面有若干个数据连接对象,当需要时就从里面拿一个使用,使用完毕就放回去,如果超过最大...

    jndi-JNDI-Injection-Exploit

    java asm jndi_JNDI-Injection-Exploit,用于log4j2漏洞验证 可执行程序为jar包,在命令行中运行以下命令: $ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address] 其中: -C ...

    如何在spring中等价配置得到原本由jndi配置实现的数据源

    然而,有时我们可能希望在非Web环境下或不使用JNDI的情况下配置数据源,这时我们需要在Spring的配置文件中等价地实现JNDI的数据源配置。以下是如何在Spring中进行这种转换的详细步骤和知识点: 1. **理解JNDI配置**...

    spring-boot源码

    6. **环境与配置**:Spring Boot支持命令行参数、属性文件、系统属性、JNDI、YAML等多种方式来加载和管理配置。`Environment`对象包含了所有的配置信息,可以通过`@Value`注解注入到bean中。 7. **条件化bean**:`@...

    day2013-0110-webLogic配置和集群(赵强).zip

    【WebLogic配置与集群详解】 WebLogic Server是Oracle公司的一款企业级Java应用服务器,它提供了全面的Java EE(Enterprise Edition)支持,包括Servlet、JSP、EJB等,以及对Web服务的支持。本资料包“day2013-0110...

    apacheds-server-jndi-1.0.1.jar.zip

    这个压缩包中的主要文件"apacheds-server-jndi-1.0.1.jar"是ApacheDS Server JNDI的实现库,包含了必要的类和资源,使得开发者能够在Java应用程序中使用JNDI API与ApacheDS通信。这个版本号1.0.1表明这是一个特定的...

    dynamic-datasource-spring-boot-starter-v3.5.1.zip

    支持数据库敏感配置信息 加密(可自定义) ENC()。 支持每个数据库独立初始化表结构schema和数据库database。 支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。 支持 自定义注解 ,需继承DS(3.2.0+)。 ...

    springboot-jndi-tomcat.rar

    JNDI全名为Java Naming and Directory Interface.JNDI主要提供应用程序所需要资源上命名与目录服务。在Java EE环境中,JNDI扮演了一个很重要的角色,它提供了一个接口让用户在不知道资源所在位置的情形下,取得该...

    dynamic-datasource-spring-boot-starter-v3.5.1.tar.gz

    支持数据库敏感配置信息 加密(可自定义) ENC()。 支持每个数据库独立初始化表结构schema和数据库database。 支持无数据源启动,支持懒加载数据源(需要的时候再创建连接)。 支持 自定义注解 ,需继承DS(3.2.0+)。 ...

    spring-mybatis-spring-1.0.2.zip

    1. **配置MyBatis-Spring**:首先,需要在项目中引入mybatis-spring的依赖库,这可以通过Maven或Gradle等构建工具完成。这个库提供了Spring和MyBatis之间的桥梁,使得Spring可以管理SqlSessionFactory和...

    spring-mock.jar

    org.springframework.mock.jndi.ExpectedLookupTemplate.class org.springframework.mock.jndi.SimpleNamingContext.class org.springframework.mock.jndi.SimpleNamingContextBuilder.class org.springframework....

    spring-framework-4.3.30.RELEASE-schema.zip

    "jee"(Java Enterprise Edition)模块展示了Spring对企业级应用的支持,如JNDI查找、EJB集成、邮件服务等,使得Spring能够无缝融入Java EE环境。 总结来说,"spring-framework-4.3.30.RELEASE-schema.zip"这个...

Global site tag (gtag.js) - Google Analytics