<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>lizongbo at 618119.com &#187; JNDI</title>
	<atom:link href="http://618119.com/tag/jndi/feed" rel="self" type="application/rss+xml" />
	<link>http://618119.com</link>
	<description>工作,生活,java,apache,tomcat,Resin,mina,Hessian,Openfire,XMPP,RPC,Ubuntu</description>
	<lastBuildDate>Sat, 21 Aug 2010 08:34:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>jbossCache在Tomcat中部署时出现javax.naming.NamingException: Context is read only</title>
		<link>http://618119.com/archives/2007/11/02/20.html</link>
		<comments>http://618119.com/archives/2007/11/02/20.html#comments</comments>
		<pubDate>Fri, 02 Nov 2007 03:41:08 +0000</pubDate>
		<dc:creator>lizongbo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JbossCache]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[Context]]></category>
		<category><![CDATA[JNDI]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[TransactionManager]]></category>

		<guid isPermaLink="false">http://618119.com/archives/2007/11/02/20.html</guid>
		<description><![CDATA[出错信息为：
[code]
2007-11-02 11:33:41,471 ERROR [org.jboss.cache.transaction.DummyTransactionManager] - &#60;binding of DummyTransactionManager failed&#62;
javax.naming.NamingException: Context is read only
at org.apache.naming.NamingContext.checkWritable(NamingContext.java:903)
at org.apache.naming.NamingContext.bind(NamingContext.java:831)
at org.apache.naming.NamingContext.bind(NamingContext.java:171)
at org.apache.naming.NamingContext.bind(NamingContext.java:187)
at org.apache.naming.SelectorContext.bind(SelectorContext.java:171)
at javax.naming.InitialContext.bind(InitialContext.java:359)
at org.jboss.cache.transaction.DummyTransactionManager.getInstance(DummyTransactionManager.java:42)
at org.jboss.cache.transaction.GenericTransactionManagerLookup
.getTransactionManager (GenericTransactionManagerLookup.java:92)
at org.jboss.cache.CacheImpl.createTransactionManager(CacheImpl.java:660)
at org.jboss.cache.CacheImpl.internalStart(CacheImpl.java:726)
at org.jboss.cache.CacheImpl.start(CacheImpl.java:708)
at org.jboss.cache.DefaultCacheFactory.createCache(DefaultCacheFactory.java:79)
[/code]
这是因为我们通常是使用了JbossCache 自带的配置文件样本来进行配置的。
配置文件中默认是这样配置的：
&#60;attribute name=&#8221;TransactionManagerLookupClass&#8221;&#62;org.jboss.cache.transaction.GenericTransactionManagerLookup
&#60;/attribute&#62;
而通过查看 org.jboss.cache.transaction.DummyTransactionManager.java的代码可以发现，
在创建TransactionManager的时候执行了一个Context。bind绑定操作。
出错信息用 log.error写入日志里：
代码为：[code]
public static DummyTransactionManager getInstance()
{
if (instance == null)
{
instance = new DummyTransactionManager();
try
{
Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.cache.transaction.DummyContextFactory");
Context ctx = new InitialContext(p);
ctx.bind("java:/TransactionManager", instance);
ctx.bind("UserTransaction", new DummyUserTransaction(instance));
}
catch (NamingException e)
{
log.error("binding of DummyTransactionManager [...]]]></description>
		<wfw:commentRss>http://618119.com/archives/2007/11/02/20.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
