You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Bas Vermeulen <bj...@gmail.com> on 2009/08/13 16:42:16 UTC

Unable to access resources using initial context factory

Dear all,

In short: I'm having difficulties setting up an initial context factory to
acces resources defined in context.xml . The complete story is as follows:

I'm trying to let send messages from Adobe lcds to JMS. I'm running into
jndi issues (I think) however. It says:

INFO: [LCDS] [INFO] JMS consumer for JMS destination
'java:comp/env/jmz/topic/flex/simpletopic
            ' is being removed from the JMS adapter due to the following
error: Name TopicConnectionFactory
             is not bound in this Context

I've seen in the Tomcat JNDI Datasource HOW-TO that I would normally get the
tomcat jndi context with 'Context ctx = new InitialContext();'. But the
configuration of the lcds jms adapter requires me to fill in a
inititalcontextfactory. In order to get the correct settings I've made an
adapter myself with the following code: 

			ctx = new InitialContext();
			System.out.println("my env = " +
ctx.getEnvironment());
.....
			factory =
(TopicConnectionFactory)ctx.lookup("java:comp/env/jms/flex/TopicConnectionFa
ctory");

It's output is:

my env =
{java.naming.factory.initial=org.apache.naming.java.javaURLContextFactory,
java.naming.provider.url=vm://localhost, topic.MyTopic=example.MyTopic,
java.naming.factory.url.pkgs=org.apache.naming,
queue.MyQueue=example.MyQueue}

With this context I'm able to connect to my JMS implementation (activemq),
so I tried to copy this environment to the JMS adapter configuration and got
the error message above. To figure out what's going on, I tried the
following in my self made adapter:

			Context ctx;
			InitialContextFactory initFac = new
javaURLContextFactory();
			Hashtable env = new Hashtable();
			env.put(Context.PROVIDER_URL, "vm://localhost");
//			env.put(Context.PROVIDER_URL,
"tcp://localhost:61616");
			env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.naming.java.javaURLContextFactory");
			env.put(Context.URL_PKG_PREFIXES,
"org.apache.naming");
//			env.put(Context.URL_PKG_PREFIXES,
"java:org.apache.naming");
			ctx = initFac.getInitialContext(env);
			.....
			factory =
(TopicConnectionFactory)ctx.lookup("java:comp/env/jms/flex/TopicConnectionFa
ctory");

But I was unable to retrieve the TopicConnectionFactory (I've also tried the
commented code with the same result). The error is the same as the error I
get from the adobe JMS adapter so I'm doing something wrong here. I'm also
puzzled about the topic.MyTopic=example.MyTopic and
queue.MyQueue=example.MyQueue in the context environment. I haven't
specified that. I'm afraid that there may be some other resource
specification somewhere. I've searched for files with those texts but
haven't found them.

My tomcat/conf/context.xml contains:

		<Resource name="jms/flex/TopicConnectionFactory"
auth="Container" type="org.apache.activemq.ActiveMQConnectionFactory"
description="JMS Connection Factory" 
        factory="org.apache.activemq.jndi.JNDIReferenceFactory"
brokerURL="tcp://localhost:61616" brokerName="LocalActiveMQBroker"/> 
		
		<Resource name="jmz/topic/flex/simpletopic" auth="Container"
type="org.apache.activemq.command.ActiveMQTopic" description="my topic" 
        factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="APP.STOCK.MARKETDATA"/>

my web.xml contains:

		<resource-ref>
			<description>JMS Connection Factory</description>
	
<res-ref-name>jms/flex/TopicConnectionFactory</res-ref-name>
	
<res-type>org.apache.activemq.ActiveMQConnectionFactory</res-type>
			<res-auth>Container</res-auth>
			<res-sharing-scope>Shareable</res-sharing-scope>
		</resource-ref>
		<resource-ref>
			<description>Simple Topic</description>
	
<res-ref-name>jmz/topic/flex/simpletopic</res-ref-name>
	
<res-type>org.apache.activemq.command.ActiveMQTopic</res-type>
			<res-auth>Container</res-auth>
			<res-sharing-scope>Shareable</res-sharing-scope>
		</resource-ref>

I hope that if I know how to solve this in code I will also be able to solve
it in the adobe lcds configuration. For completeness, my current
messaging-config.xml contains:

<destination id="chat-topic-jms">
    <properties>
        <jms>
            <destination-type>Topic</destination-type>
            <message-type>javax.jms.TextMessage</message-type>
 
<connection-factory>java:comp/env/jms/flex/TopicConnectionFactory
            </connection-factory> 
            <destination-jndi-name>java:comp/env/jmz/topic/flex/simpletopic
            </destination-jndi-name>
            <destination-name>APP.STOCK.MARKETDATA
            </destination-name>
            <delivery-mode>NON_PERSISTENT</delivery-mode>
            <message-priority>DEFAULT_PRIORITY</message-priority>
            <acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
            <transacted-sessions>false</transacted-sessions>
  <initial-context-environment>
       <property>
        <name>Context.PROVIDER_URL</name>
        <value>vm://localhost</value>

		</property>
      <property> 
        <name>Context.INITIAL_CONTEXT_FACTORY</name>
		<!--
<value>org.apache.activemq.jndi.ActiveMQInitialContextFactory</value> -->
		<value>org.apache.naming.java.javaURLContextFactory</value>
        
      </property> 
	  <property>
		<name>Context.URL_PKG_PREFIXES</name>
		<value>org.apache.naming</value>
		</property> 
    </initial-context-environment>
 

        </jms>
    </properties>
        <channels>
            <channel ref="my-rtmp"/>
         <!--   <channel ref="samples-amf-polling"/> -->
        </channels>
<adapter ref="jms"/>
</destination>

I hope anyone has an idea...

Best regards,
Bas Vermeulen


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: Unable to access resources using initial context factory

Posted by Bas Vermeulen <bj...@gmail.com>.
I'm sorry.

The Tomcat version I'm using is 6.0.14 . I've installed it as part of the
Adobe lcds installation.
JVM: Sun JRE 1.6.0_07 
OS: Windows XP 5.1.2600

Best regards,
Bas 

-----Original Message-----
From: Caldarale, Charles R [mailto:Chuck.Caldarale@unisys.com] 
Sent: Thursday, August 13, 2009 4:47 PM
To: Tomcat Users List
Subject: RE: Unable to access resources using initial context factory

> From: Bas Vermeulen [mailto:bjvermeulen@gmail.com]
> Subject: Unable to access resources using initial context factory
> 
> The complete story is as follows:

Hardly; you don't even tell us the Tomcat version you're using, let alone
the JVM or OS.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
MATERIAL and is thus for use only by the intended recipient. If you received
this in error, please contact the sender and delete the e-mail and its
attachments from all computers.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


RE: Unable to access resources using initial context factory

Posted by "Caldarale, Charles R" <Ch...@unisys.com>.
> From: Bas Vermeulen [mailto:bjvermeulen@gmail.com]
> Subject: Unable to access resources using initial context factory
> 
> The complete story is as follows:

Hardly; you don't even tell us the Tomcat version you're using, let alone the JVM or OS.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org