I've been trying to configure the JMSAppender to write to a topic located on a remote
(JBoss 3.2.3) server. The client/test application is running on weblogic 6.1 sp2 (on
the same machine). It consists of several different EJBs that use log4j. Here is my
current configuration. Notice that the ProviderURL is port 2099. This was necessary
to get around a JBoss startup error (port in use conflict), and I can verify that the
JBoss Naming services are in fact running and listening on port 2099.
<appender name="JMS_Appender" class="org.apache.log4j.net.JMSAppender">
<param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/>
<param name="TopicBindingName" value="topic/LoggerTopic"/>
<param name="ProviderURL" value="jnp://xxx.xxx.xxx.com:2099"/>
<param name="InitialContextFactoryName"
value="org.jnp.interfaces.NamingContextFactory"/>
</appender>
I've been testing different values for the ProviderURL with no luck. If it helps, I
could set the ProviderURL to "whereis.my.mind:2099" and I would get the same error.
My guess would be this is an indication of a problem with the initial context, but at
this point I'm blocked and could use a push in the right direction. I'm new to both
JMS and Log4j so be gentle (or not). I would just be happy with a solution. Thanks!
Here is the trace...
<log4j stuff>....
log4j: Class name: [org.apache.log4j.net.JMSAppender]
log4j: Setting property [topicConnectionFactoryBindingName] to
[java:/ConnectionFactory].
log4j: Setting property [topicBindingName] to [topic/LoggerTopic].
log4j: Setting property [providerURL] to [jnp://xxx.xxx.xxx.com:2099].
log4j: Setting property [initialContextFactoryName] to
[org.jnp.interfaces.NamingContextFactory].
log4j: Getting initial context.
log4j: Looking up [java:/ConnectionFactory]
log4j:ERROR Could not find name [java:/ConnectionFactory].
log4j:ERROR Error while activating options for appender named [JMS_Appender].
javax.naming.NameNotFoundException: Unable to resolve ConnectionFactory/ Resolved: ''
Unresolved:'ConnectionFactory' ; remaining name '' at
weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(Basic
NamingNode.java:887)
at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:219)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:183)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:339)
at
weblogic.jndi.factories.java.ReadOnlyContextWrapper.lookup(ReadOnlyContextWrapper.java:36)
at
weblogic.jndi.internal.AbstractURLContext.lookup(AbstractURLContext.java:124)
at javax.naming.InitialContext.lookup(InitialContext.java:350)
at org.apache.log4j.net.JMSAppender.lookup(Unknown Source)
at org.apache.log4j.net.JMSAppender.activateOptions(Unknown Source)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:247)
at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:210)
at
org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:140)
at
org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:153)
at
org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:415)
at org.apache.log4j.xml.DOMConfigurator.parseCategory(DOMConfigurator.java:335)
at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:781)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:666)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:616)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:602)
at
org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:460)
at org.apache.log4j.LogManager.<clinit>(LogManager.java:113)
at org.apache.log4j.Logger.getLogger(Logger.java:94)
(remaining trace ommited) ...in ejbCreate of the test app EJB