浏览模式: 标准 | 列表Tag:jndi

websphere的jndi的获取

Context ctx=new InitialContext();

    
Connection conn=null;

    
Hashtable     parms     =     new     Hashtable();     

    
parms.put(Context.INITIAL_CONTEXT_FACTORY,     "com.ibm.ejs.ns.jndi.CNInitialContextFactory");     

    try{

    
ctx = new InitialContext(parms);     

    
DataSource ds = (DataSource)ctx.lookup("jdbc/test");     

    
conn     =     ds.getConnection("test","test");     

    }catch(
NamingException ne){

    
System.out.println(ne);

    }
 

Tags: websphere, jndi, 数据库

继续jndi

从一个项目组到另外一个项目组。环境从tomcat+db2,走jndi的连接方式到weblogic+oracle ,走直接连接方式,认证用ladp。奶奶的,结果等rollback的时候,发现之前配置的jndi不能使用了。采用的app的驱动。开发环境采用的是eclipse3.1+myeclipse4.1GA,小版本号没记。tomcat没有变化,还是5.016。

思考一下调整过的地方。

myeclipse的插件,使用tomcat的和时候,查找lib的方式和m7的插件不同。和独立启动的查找lib的方式也不同。因为要启动weblogic,之间需要加载class12.jar,开始配置再tomcat里面,改动了Append to  lib path的内容,后来发现需要使用weblogic,这边没有修改成功,也没有restore一下。使用现在的问题就是。

启动tomcat走jndi的方式调用db2的连接,应该怎么设置。

分析,使用app去驱动,也就是需要客户端的连接。检查连接方式,还有之前的配置。完全没有改动,现在的问题就是出现在myeclipse的插件的关于tomcat的调用的问题。ok,继续分析:

app既然需要调用客户端连接,那么Append to  lib path里面,引入的是dir,那么也就是说,这个dir应该是客户端的目录dir。ok,添加此dir。test,调用成功。

总结:思考问题的模式一定要从最底层开始往上发散,这样才能抓住症结。

Tags: jndi, app, db2, tomcat

eclipse tomcat 一些小问题

一 载入jndi问题

在tomcat中,(我的版本是5.016)。在tomcat\conf\Catalina\localhost里的xml文件,内容如下:

<Context path="/sec" docBase="D:\\stringlew workspace\\BankCommPortal\\WebContent">
 <Resource name="jdbc/bankcomm" auth="Container" type="javax.sql.DataSource"/> 
  <ResourceParams name="jdbc/bankcomm">
   <parameter>     
    <name>factory</name> 
    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>   
   </parameter>   
   <parameter>     
    <name>maxActive</name>   
    <value>60</value>  
   </parameter>   
   <parameter>     
    <name>maxIdle</name>
    <value>30</value>   
   </parameter>   
   <parameter>     
    <name>maxWait</name>    
    <value>500</value>   
   </parameter>   
   <parameter>    
    <name>username</name>    
    <value>username</value>   
   </parameter>   
   <parameter>    
    <name>password</name>    
    <value>password</value>  
   </parameter>   
   <parameter>      
    <name>driverClassName</name>      
    <value>COM.ibm.db2.jdbc.app.DB2Driver</value>   
   </parameter>   
   <parameter>     
    <name>url</name>     
    <value>jdbc:db2:bankcomm</value>
   </parameter> 
  </ResourceParams>
</Context>

如何调用呢?调用如下:

 <ServiceElement id="DB2Conn" classname="com.geong.util.service.JndiConnectionPool">  
               <Param name="jndiName">java:comp/env/jdbc/bankcomm</Param>
 </ServiceElement>

可以完成调用了。

二 jni调用dll的问题。

调试中文分词,词库放在项目根目录,eclipse测试main方法可以通过,正确分词。

但是用jsp调用,(tomcat)不能。分析原因:没有找到词库。

跟踪调试,打印出来user.dir.发现用main函数调用的时候,user .dir是项目的目录。而用tomcat的时候,发现user.dir是tomcat的安装目录的bin,那么把词库文件拷贝到tomcat的bin目录下就能正确分词。

效果如下:

 

Tags: eclipse, tomcat, dll, jni, jndi