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

TOMCAT自定义JNDI

    博客分类:
  • java
阅读更多
    1.简介
tomcat默认提供的jndi配置支持对象有限,比较常用的有datasource,javabean等,
有时无法满足用户的需求 。比如需要在构建对象的构造函数中传递参数等情况。
 
2. 示例
 
使用tomcat的jndi配置url资源
 
myurlfactory.java
===================================================
package com.siyuan.tomcat.jndi;
import java.net.url;<br>import java.util.enumeration;<br>import java.util.hashtable;
import javax.naming.context;<br>import javax.naming.name;<br>import javax.naming.refaddr;<br>import javax.naming.reference;<br>import javax.naming.spi.objectfactory;
public class myurlfactory implements objectfactory {
 public object getobjectinstance(object obj, name name, context namectx,<br>   hashtable environment) throws exception {<br>  <br>  url url = null;<br>  <br>  reference ref = (reference) obj;<br>  enumeration<refaddr> cfgattrs = ref.getall();<br>  while (cfgattrs.hasmoreelements()) {<br>   refaddr cfgattr = cfgattrs.nextelement();<br>   string attrname = cfgattr.gettype();<br>   string attrvalue = (string) cfgattr.getcontent();<br>   if ("url".equals(attrname)) {<br>    url = new url(attrvalue);<br>   }<br>  }<br>  <br>  return url;<br> }
}
 
context.xml
===================================================
<?xml version='1.0' encoding='utf-8'?><br><context><br>     <br>    <resource name="test/url"<br>     auth="container"<br>     type="java.net.url"<br>     factory="com.siyuan.tomcat.jndi.myurlfactory"<br>     url="<a>file:///c:/test.properties"/</a>><br>         <br></context>
 
jndidiv.jsp
===================================================
<jsp:directive.page import="javax.naming.initialcontext"/><br><jsp:directive.page import="javax.naming.context"/><br><jsp:directive.page import="java.net.url"/><br><%<br> context ctxt = new initialcontext();<br> context envctxt = (context) ctxt.lookup("java:comp/env/");<br> url url = (url) envctxt.lookup("test/url");<br>%> <br><%=url %>
 
3.运行结果
 
<img src="http://dl.iteye.com/upload/attachment/484403/68d59461-da03-32af-9aba-31ee0af8a806.jpg" alt="">
 
运行可能出错的原因有:
$tomcat_home$\conf\catalina\localhost\$app_name$.xml 中的内容没有与$app_install_dir$\meta-inf\context.xml同步。
解决方法:
将$app_name$.xml删除后重启app。
 
4.参考资料
 
$tomcat_home$\webapps\docs\jndi-resources-howto.html
 
0
3
分享到:
评论

相关推荐

    tomcat jndi数据源解密factory

    自定义jndi数据源factory类,用于解密jndi中的加密数据,解密方式为DES,具体可根据实际需求修改。

    tomcat JDNI配置

    一个简单的tomcat6.0+mysql5.5整合spring3.0和hibernate3.3的一个简单的实例,其中的datasource是tomcat JNDI配置的 type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://...

    springboot参考指南

    1. 介紹 2. I. Spring Boot文档 i. 1....ii. 2....iii....iv....v....vi....vii....3. II....i....ii....i....iii....i....i....ii....ii....i....ii....iii....iv....v....vi....iii....iv....v....vi....vii....i.... 自定义'白标'(whitelabel,可以了解下相关理念)错误页面 x. 71...

    JSP高级编程

    本书从最基础的JSP开发开始,循序渐进地介绍了JSP 开发技术,并涵盖了许多高级主题,如需要在企业级Web应用中使用的特性—Enterprise JavaBeans、JDBC 2.0、数据库连接池和自定义标签库。本书既适合初学者阅读,也...

    Jetty中文手册

    如何配置自定义错误页面(Custom Error Pages) 配置Jetty Statistics(统计) 配置Jetty Statistics教程 配置Request Log教程 Java-monitor 故障排除 如何使用Jetty Dump Feature(特性) Webtide Blog–Jetty ...

    JSP2.0技术手册pdf(带示例源码).zip

    14-8 JNDI - 数据来源(Data Source) 与连接池(Connection Pool) 14-9 JSTL 的 SQL 标签库 14-10 Connection Pool - Proxool 第十五章 JSP Tag Library 15-1 JSP Tag Library 简介 15-2 一个简单的 Tag Library 范例...

    J2EE应用开发详解

    17 2.1 构建开发环境 17 2.1.1 安装JDK 17 2.1.2 安装Tomcat 21 2.1.3 安装Eclipse 23 2.2 配置开发环境 23 2.3 小结 26 第3章 Java的反射机制 27 3.1 Java反射API 27 3.2 加载类的实例 29 3.2.1 加载class对象的两...

    Hibernate3的帮助文档

    1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第一个class 2.2.2...

    JAVA上百实例源码以及开源项目

    Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接与浏览,Java源码下载 1个目标文件 摘要:Java源码,网络相关,HTTP  Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件...

    JAVA上百实例源码以及开源项目源代码

    Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接与浏览,Java源码下载 1个目标文件 摘要:Java源码,网络相关,HTTP  Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件...

    SpringMVC-Mybatis-Shiro-redis-master 权限集成缓存中实例

    解决后遗症:因为我们的权限是通过URL 来控制的,那么增加了项目的目录,导致权限不能正确的判断,再加上我们的项目名称(目录)可以自定义,导致更不好判断。 后遗症解决方案:PermissionFilter.java 50行处 解决...

    hibernate 教程

    在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个可持久化类 1.3. 映射cat 1.4. 与猫同乐 1.5. 结语 2. 体系结构 2.1. 总览 2.2. JMX集成 2.3. JCA支持 3. SessionFactory...

    hibernate

    在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个可持久化类 1.3. 映射cat 1.4. 与猫同乐 1.5. 结语 2. 体系结构 2.1. 总览 2.2. JMX集成 2.3. JCA支持 3. SessionFactory...

    Spring.3.x企业应用开发实战(完整版).part2

    7.10.3 在Tomcat下的配置 7.10.4 在其他Web应用服务器下的配置 7.11 小结 第3篇 数据访问 第8章 Spring对DAO的支持 8.1 Spring的DAO理念 8.2 统一的异常体系 8.2.1 Spring的DAO异常体系 8.2.2 JDBC的异常转换器 ...

    Spring3.x企业应用开发实战(完整版) part1

    7.10.3 在Tomcat下的配置 7.10.4 在其他Web应用服务器下的配置 7.11 小结 第3篇 数据访问 第8章 Spring对DAO的支持 8.1 Spring的DAO理念 8.2 统一的异常体系 8.2.1 Spring的DAO异常体系 8.2.2 JDBC的异常转换器 ...

    java 面试题 总结

    但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...

    hibernate 框架详解

    1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第一个class ...

    jpivot学习总结.doc

    memberReaderClass 设定一个成员读取器,默认情况下 Hierarchy 都是从关系型数据库里读取的,如果你的数据不在 RDBMS 里面的话,你可以通过自定义一个 member reader 来表现一个 Hierarchy 。 3.5. Level 级别 , ...

    最全Hibernate 参考文档

    1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. 架构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 3. 配置 ...

Global site tag (gtag.js) - Google Analytics