cancel
Showing results for 
Search instead for 
Did you mean: 

Weblogic JMS > communication channel (Sender) JMS

Former Member
0 Kudos

Hi,

I problem with created communication channel (Sender) JMS, the JMS is created in system weblogic. I have followed the guiles:

- SAP Note: 802754

- How To Install External Drivers

- Configuration Guide - SAP XI 3.0 (External Drivers for the JDBC and JMS Adapters)

The parameters of Communication Channel are:

Adapter Type: JMS

Transport Protocol: Access JMS Provider with JNDI

Message Protocol: JMS 1.x

Adapter Engine: Integration Server

JNDI lookup Name of QueueConnectionFactory: jms/connectionFactory

JNDI lookup Name of JMS Queue: firabcn.messaging.MailQueue

Name of JNDI Initial Context Factory: weblogic.jndi.WLInitialContextFactory

JNDI Server Address: <server>:<port>

In the part of Integration Monitoring > Communication Channel Monitor, it leaves the error:

Error during channel initialization; exception trace: javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory. Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory

at java.lang.Class.forNameImpl(Native Method)

at java.lang.Class.forName(Class.java:152)

at com.sap.engine.system.naming.provider.ResolverManager.findInitialContextFactory(ResolverManager.java:472)

...

Thanks

Toni Guzman

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

Pls check this thread...

Regards,

Srinivas

Former Member
0 Kudos

Hi Regards,

I created this program for check parameter.

The program is :

public static void main(String[] args) {

try {

Hashtable props = new Hashtable();

props.put(InitialContext.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");

//props.put(InitialContext.PROVIDER_URL,"t3://morfeo.firabcn.es:8001,morfeo.firabcn.es:8002");

props.put(InitialContext.PROVIDER_URL,"t3://morfeo.firabcn.es:8001");

InitialContext ctx = new InitialContext(props);

QueueConnectionFactory factory =(QueueConnectionFactory) ctx.lookup("jms/connectionFactory");

//Queue messageQueue =(Queue) ctx.lookup("firabcn.messaging.MailQueue");

Queue messageQueue =(Queue) ctx.lookup("firabcn.messaging.MailQueue");

QueueConnection jmsCon = factory.createQueueConnection();

QueueSession jmsSession =jmsCon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);

//QueueSender sender = jmsSession.createSender(messageQueue);

QueueReceiver receiver = jmsSession.createReceiver(messageQueue);

//Message message = jmsSession.createTextMessage("Prova");

//sender.send(message);

System.out.println(receiver.getQueue());

} catch (Exception e) {

e.printStackTrace(System.err);

}

This program works correctly

Former Member
0 Kudos

Hi,

Pls change the port name from J2ee port to P4 port and try again.this could be the problem.we had the same problem and resolved after changing it.

<b>j2ee port</b> - 5XX00 where XX is your instance numer

<b>http port - 80XX</b> - you can find it in SMICM - goto - services

<b>P4 - visual admin port</b> - 5XX04

Regards,

Srinivas

Former Member
0 Kudos

your error is about not being able to instanciate the Initial context factory.

weblogic.jndi.WLInitialContextFactory is a class that would be required for this and i doubt if it is a part of the JMS library that you installed as a driver. to the best of my knowledge, the whole weblogic.jar needs to be used to connect to weblogic and use its services.

Former Member
0 Kudos

Hi,

Check below given parameters in your scenario.

JNDI lookup Name of QueueConnectionFactory: <b>jms/connectionFactory</b>

JNDI lookup Name of JMS Queue:<b> firabcn.messaging.MailQueue</b>

Name of JNDI Initial Context Factory: <b>weblogic.jndi.WLInitialContextFactory</b>

Goto source JMS and check the created queue path name and associated connection factory.i thnk JNDI lookup Name of JMS Queue is wrong.

Regards,

Srinivas