2168575 发表于 2017-2-15 09:00:10

Spring与weblogic jndi集成

Spring与weblogic jndi集成
  虽然spring本身是可以直接使用jndi来进行获取一些对象,但是在和weblogic集成的时候往往还是容易出
  现问题(在web应用的时候出现问题的可能性不大,因为container已经做了很多事情了.)但是在ide或者其
  他的应用环境下(不同的jvm的时候),通常找不到provider_url等属性造成无法找到jndi.
  修改配置文件如下:
  <!-- 通过jndi的方式来调用datasource,即使不一定是在j2ee环境中也可以正常使用默认情况下,如果
  没有指定,"java:comp/env/"将放在后面jndi名称前面
  -->
  <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName">
  <value>jdbc/myDatasource</value>
  </property>
  <!-- 如果你不想使用 'java:comp/env/'前缀的话请设置下面的值为true, 默认值为false -->
  <property name="resourceRef">
  <value>false</value>
  </property>
  <property name="jndiEnvironment">
  <props>
  Spring连接weblogic-DataSource错误
  <!-- The value of Context.PROVIDER_URL -->
  <prop key="java.naming.provider.url">t3://localhost:7001</prop>
  <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory
  </prop>
  </props>
  </property>
  </bean>
  注意在设置的时候由于不在同一个jvm里面,所以一定要设置provider.url和factory.initial的属性值,否
  则会出现NoInitialContextException的异常出现.
  此外如果和其他的应用服务器集成的话可能不只是要设置上面的两个属性,还要设置相关的其他属性。详
  细情况参考:javax.naming.Context类的说明文档。
  http://java.sun.com/j2se/1.4.2/docs/api/javax/naming/Context.html
  其中设置的:
  <property name="jndiEnvironment">
  <props>
  <!-- The value of Context.PROVIDER_URL -->
  <prop key="java.naming.provider.url">t3://localhost:7001</prop>
  <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory
  </prop>
  </props>
  </property> 实际上就是设置Context初始化的时候设置的Properties属性。
  http://java.mblogger.cn/layout/posts/11849.aspx
  =====================================================================
  =====================================================================
各种应用服务器的不同的properties集合:
  websphere:
  java.naming.provider.url->iiop://websphere.machine.domain.com:900
  java.naming.factory.initial ->com.ibm.websphere.naming.WsnInitialContextFactory
  java.naming.factory.url.pkgs ->com.ibm.ws.naming
  org.omg.CORBA.ORBClass->com.ibm.rmi.iiop.ORB
  org.omg.CORBA.ORBSingletonClass->com.ibm.rmi.corba.ORBSingleton
  javax.rmi.CORBA.UtilClass->com.ibm.rmi.javax.rmi.CORBA.Util
  javax.rmi.CORBA.StubClass->com.ibm.rmi.javax.rmi.CORBA.StubDelegateImpl
  javax.rmi.CORBA.PortableRemoteObjectClass->com.ibm.rmi.javax.rmi.PortableRemoteObject
  weblogic:
  java.naming.factory.initial -> weblogic.jndi.WLInitialContextFactory
  java.naming.provider.url -> t3://localhost:7001
  jboss:
  ava.naming.factory.initial ->org.jnp.interfaces.NamingContextFactory
  java.naming.factory.url.pkgs->org.jboss.naming.client
  java.naming.provider.url ->jnp://10.0.0.18:1099
  sunone IMQ ldap:
  java.naming.provider.url -> ldap://localhost:389/dc=yusong,dc=com
  java.naming.factory.initial -> com.sun.jndi.ldap.LdapCtxFactory
  sunone Application Server:
  java.naming.provider.url -> iiop://192.168.0.34:3700
  java.naming.factory.initial -> com.sun.jndi.cosnaming.CNCtxFactory
  oracle oc4j:
  java.naming.factory.initial->com.evermind.server.ApplicationClientInitialContextFactory
  java.naming.provider.url->ormi://localhost/bmpapp
页: [1]
查看完整版本: Spring与weblogic jndi集成