`
mozhenghua
  • 浏览: 318912 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

在tomcat中配置jndi resource资源

阅读更多
  1. 创建JndiResourceFactory

        实现javax.naming.spi.ObjectFactory接口,该工场的功能是创建resource object对象。

        

import java.util.Enumeration;
import java.util.Hashtable;

import javax.naming.Context;
import javax.naming.Name;
import javax.naming.NamingException;
import javax.naming.RefAddr;
import javax.naming.Reference;
import javax.naming.spi.ObjectFactory;

public class MyBeanFactory implements ObjectFactory {

	public Object getObjectInstance(Object obj, Name name, Context nameCtx,
			Hashtable environment) throws NamingException {

		// Acquire an instance of our specified bean class
		MyBean bean = new MyBean();

		// Customize the bean properties from our attributes
		Reference ref = (Reference) obj;
		Enumeration addrs = ref.getAll();
		while (addrs.hasMoreElements()) {
			RefAddr addr = (RefAddr) addrs.nextElement();

			String value = (String) addr.getContent();
			if (addr.getType().equals("foo")) {
				bean.setFoo(value);
			} else if (addr.getType().equals("bar")) {
				try {
					bean.setBar(Integer.parseInt(value));
				} catch (NumberFormatException e) {
					throw new NamingException("Invalid 'bar' value " + value);
				}
			}
		}

		// Return the customized instance
		return (bean);

	}

}

可以将jndi的资源配置到server.xml中的GlobalNamingResources 配置项中,例如:

<GlobalNamingResources>
                              
    <Resource name="bean/cmsFileObservable" auth="Container" type="java.util.Observable"
factory="com.koubei.cmsoptim.tomcat.extend.JspUpdateResourceFactory" />
  </GlobalNamingResources>

 http://tomcat.apache.org/tomcat-6.0-doc/config/globalresources.html

唯一的不方便的地方是在GlobalNamingResources中配置的resource资源在web应用的context中默认是不可见的,必须要使用

<Context>
          <ResourceLink 
            name="bean/MyBeanFactory"
            global="bean/MyBeanFactory"
            type="com.mycompany.MyBean"
          />
        </Context>

才能在web应用中引用到GlobalNamingResources定义的context对象,如果在每个web应用中都配置,那会比较麻烦,但是可以将ResourceLink 配置到%catalina.home%/conf/context.xml 这个配置文件中,这样所有web应用都能共享这个resource 对象了

<!-- The contents of this file will be loaded for each web application -->
<Context>

    <ResourceLink    name="bean/cmsFileObservable"
            global="bean/cmsFileObservable"
            type="java.util.Observable"/>

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
	
    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->

</Context>

 

 

使用jndi容器中的对象

<%@page import="com.koubei.resource.MyBean" %>
<%@page import="javax.naming.InitialContext" %>
<%@page import="javax.naming.Context" %>


<%

 Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
 MyBean bean = (MyBean) envCtx.lookup("bean/MyBeanFactory");
%>

<%="foo = " + bean.getFoo() + ", bar = " + bean.getBar()%>

 

分享到:
评论

相关推荐

    Tomcat下配置JNDI数据库连接池并使用

    Tomcat下配置JNDI数据库连接池并使用  一、配置JNDI数据源  这一步有几种配置方式,比如直接修改Tomcat/conf/server.xml文件,但这样修改是全局的,个人不太喜欢这样的方式,本着的原则是能不全局不全局,以保证...

    tomcat JDNI配置

    一个简单的tomcat6.0+mysql5.5整合spring3.0和hibernate3.3的一个简单的实例,其中的datasource是tomcat JNDI配置的 &lt;Resource name="jdbc/testDB" type="javax.sql.DataSource" driverClassName=...

    J2EE JNDI配置原理详解 JBOSS安装配置 Maven入门 Ant使用入门

    1.16 如何在Eclipse中调试JBoss应用 1.17 JBoss 5.0 安装与配置详解 1.18 JBOSS安装配置 1.19 Oracle,MySql,SQL server分页 1.20 Jboss下的第一个EJB程序 1.21 JNDI 1.22 JNDI配置原理详解 1.23 JSF+Seam...

    Java Jndi数据连接池,sql2000或者sql2005数据库

    在Tomcat安装目录下找到conf文件夹,并打开context.xml文件 配置如下 《sql2005配置》 ...... &lt;Resource name="jdbc/jndidemo" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" ...

    String+tomcat+jms实例

    在tomcat 下的context.xml文件中加入 &lt;Resource name="myJMS/ConnectionFactory" auth="Container" type="org.apache.activemq.ActiveMQConnectionFactory" description="JMS Connection Factory" factory=...

    tomcat8用redis实现session共享.rar

    4、在原有tomcat\context.xml下 添加 以下代码(参考 &lt;Manager className="org.redisson.tomcat.RedissonSessionManager" configPath="${catalina.base}/redisson.conf" readMode="REDIS" updateMode=...

    Spring+JMS+ActiveMQ+Tomcat DOME

    在Tomcat的conf/context.xml中的元素里面加上如下配置: &lt;Resource name="myJMS/ConnectionFactory" auth="Container" type="org.apache.activemq.ActiveMQConnectionFactory" description="JMS Connection ...

    Java 模仿谷歌搜索框中输入下拉提示(自动补全)功能 源代码

    在tomcat 的lib文件夹中 中导入mysql 驱动包【mysql包文件夹中有】 数据库连接需要在Tomcat/conf目录中的context.xml文件里写入 ....... &lt;Resource name="jdbc/jndidemo" auth="Container" type="javax.sql....

    CXF Web Service(前台:C#,后台:java)完整例子

    tomcat里面的配置:在%tomcat%\conf\下面有个context.xml文件。在&lt;Context&gt;&lt;/Context&gt;之间添加 &lt;Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource" username="root" password=...

    推荐-Struts2+mysql 文章系统

    -----建立Context: 在Tomcat中新建一个Context,让其docBase指向程序所在目录(若您下载的是war文件,则指向该文件目录StrutsArticle )。 在tomcat\conf\Catalina\localhost目录下建立一个xml文件,名称为你所...

    jsp连接池成功之例

    我所有配置都没有设计到tomcat的server.xml,有的人在这个文件中做了数据库 的配置是没有必要的,因为WebRoot.xml已经有了这些配置。 &lt;br&gt;7. web.xml配置 &lt;br&gt;...

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

    这个错误是因为Tomcat7 中没有 JSTL 的jar包,现在已经在项目pom.xml 中增加了如下 jar 的引入管理。 &lt;groupId&gt;javax.servlet &lt;artifactId&gt;jstl &lt;version&gt;1.2 &lt;groupId&gt;javax.servlet &lt;artifactId&gt;jsp-...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很...

    springboot参考指南

    在Spring环境中使用YAML暴露属性 iii. 23.6.3. Multi-profile YAML文档 iv. 23.6.4. YAML缺点 vii. 23.7. 类型安全的配置属性 i. 23.7.1. 第三方配置 ii. 23.7.2. 松散的绑定(Relaxed binding) iii. 23.7.3. @...

    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对象的两...

    Apache Geronimo 2.1_ Quick Reference.pdf

    Tomcat specific configuration 110 Jetty specific configuration 111 Sample web application 112 EJB applications 112 Annotations 113 EJB deployment plan 116 Sample EJB application 118 Deploy the ...

    spring-boot-reference.pdf

    Resource Conditions 46.3.5. Web Application Conditions 46.3.6. SpEL Expression Conditions 46.4. Testing your Auto-configuration 46.4.1. Simulating a Web Context 46.4.2. Overriding the Classpath 46.5....

Global site tag (gtag.js) - Google Analytics