cancel
Showing results for 
Search instead for 
Did you mean: 

Client java proxy to JMS

madhusudana_reddy2
Contributor
0 Kudos

Hi....All

My scenario is we have to connect to the JMS server through the proxy for that i written one servlet for connecting to the jms server and my code is

Servelet code is

package com.sap.jms;

import java.io.IOException;

import java.util.HashMap;

import java.util.Properties;

import javax.jms.JMSException;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.rmi.PortableRemoteObject;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.sap.aii.proxy.xiruntime.core.MessageSpecifier;

import com.sap.jms.client.connection.QueueConnection;

import com.sap.jms.client.connection.QueueConnectionFactory;

import com.sap.jms.client.destination.Queue;

import com.sap.jms.client.message.ObjectMessage;

import com.sap.jms.client.session.QueueReceiver;

import com.sap.jms.client.session.QueueSender;

import com.sap.jms.client.session.QueueSession;

import com.sap.jms.client.session.Session;

import com.sap.engine.services.jndi.InitialContextFactoryImpl;

import com.sap.engine.services.jndi.persistent.exceptions.NamingException;

import receiverServerJavaProxy.DTData_Type;

import receiverServerJavaProxy.MIDataSender_PortTypeHome;

import receiverServerJavaProxy.MIDataSender_PortTypeRemote;

public class JMSProxyClient extends HttpServlet {

protected void doGet(

HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

String Data=null;

String user = "J2EE_ADMIN";

String password = "unilever123";

String url = "HostName:50104";

String factoryimpl = "com.sap.engine.services.jndi.InitialContextFactoryImpl";

MIDataSender_PortTypeRemote sender_remote=null;

DTData_Type sender_dt=null;

QueueConnectionFactory connectionFactory = null;

QueueConnection connection = null;

Queue queue = null;

QueueSession session = null;

QueueReceiver receiver = null;

QueueSender sender = null;

String QUEUE_NAME = "jmsqueues/default/XITestQueue";

ObjectMessage message = null;

Properties environment=new Properties();

response.setContentType("text/html");

ServletOutputStream out = response.getOutputStream();

out.println("<html>");

out.println("<head><title>Hello Java Client Proxy World</title></head>");

out.println("<body>");

out.println("<h1>Hello Java Client Proxy World</h1>");

out.println("</body></html>");

try{

environment.put(Context.INITIAL_CONTEXT_FACTORY,factoryimpl );

environment.put(Context.PROVIDER_URL,url );

//environment.put(Context.SECURITY_PRINCIPAL, user);

//environment.put(Context.SECURITY_CREDENTIALS, password);

Context ctx=new InitialContext(environment);

out.println("context........."ctx"\n");

connectionFactory=(QueueConnectionFactory) ctx.lookup("jmsfactory/default/QueueConnectionFactory");

out.println("Context factory................"connectionFactory"\n");

connection=(QueueConnection) connectionFactory.createQueueConnection();

out.println("Connection............ "connection"\n");

session=(QueueSession) connection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);

out.println("Session........... "session"\n");

connection.start();

queue=(Queue) ctx.lookup(QUEUE_NAME);

message=(ObjectMessage) session.createObjectMessage();

message.setStringProperty("ROUTID","SAP.TEST");

HashMap hmp=new HashMap();

hmp.put("MESSAGE_TYPE", "OBJECTMESSAGE");

hmp.put("MSG", "Hi SAP team ObjectMessage No. ");

out.println("Hash Map......."hmp"\n");

message.setObject(hmp);

sender=(QueueSender) session.createSender(queue);

sender.send(message);

queue = (Queue) ctx.lookup(QUEUE_NAME);

receiver = (QueueReceiver) session.createReceiver(queue);

message=(ObjectMessage)receiver.receive();

System.out.println(message);

HashMap result=(HashMap)message.getObject();

String rouitId=(String)message.getStringProperty("ROUTEID");

Data=(String)result.get("MSG");

out.println("Final Data in JMS "Data"\n");

closeJMS(session,connection);

}catch(NamingException ne){

ne.printStackTrace();

out.println("Naming exception......."+"\n");

} catch (javax.naming.NamingException e) {

out.println("JMS naming exception"+"\n");

e.printStackTrace();

} catch (JMSException e) {

// TODO Auto-generated catch block

out.println("JMS Exception..........."+"\n");

e.printStackTrace();

}

try{

Context ctx=new InitialContext();

Object obj=ctx.lookup("JMSProxyEJB");

sender_dt=new DTData_Type();

MIDataSender_PortTypeHome home=(MIDataSender_PortTypeHome)PortableRemoteObject.narrow(obj,MIDataSender_PortTypeHome.class);

sender_remote=home.create();

out.println("Remote Object.........."sender_remote"\n");

MessageSpecifier msg=sender_remote.$messageSpecifier();

msg.setSenderService("AXD");

out.println("Setting To New Data to AXD to the SAP JMS");

out.println("Final Data in AXD"Data"\n");

sender_remote.$messageSpecifier(msg);

sender_dt.setData(Data);

sender_remote.mIDataSender(sender_dt);

}catch(Exception e){

e.printStackTrace();

}

}

/**

*/

/**

  • @param session

  • @param connection

*/

private void closeJMS(QueueSession session, QueueConnection connection) {

try{

session.close();

connection.close();

}catch(JMSException je){

je.printStackTrace();

}

}//closeJMS End

protected void doPost(

HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

doGet(request,response);

}

}

Now Iam Getting the jms exception it's getting the initialcontext factory and but it's not

able to connect to the jms server at this method error is coming

connection=(QueueConnection) connectionFactory.createQueueConnection();

javax.jms.JMSException: The following hosts (hostname:port) cannot be accessed: host name:50110. Check host names and ports.

at com.sap.jms.client.connection.ConnectionFactory.makeConnectionOnClientVM(ConnectionFactory.java:595)

at com.sap.jms.client.connection.ConnectionFactory.makeConnection(ConnectionFactory.java:455)

at com.sap.jms.client.connection.ConnectionFactory.createConnection(ConnectionFactory.java:279)

at com.sap.jms.client.connection.ConnectionFactory.createConnection(ConnectionFactory.java:234)

at com.sap.jms.client.connection.QueueConnectionFactory.createQueueConnection(QueueConnectionFactory.java:70)

at SendMsgToSAPQ.main(SendMsgToSAPQ.java:101)

i wolud be greatly appreciate you

with warm regards

SYAMPRASAD.P

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

hi madhusudhan,

what is ur question....?????

if u need to know about java proxy...then go here

/people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-ii /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-iii /people/ravikumar.allampallam/blog/2005/06/24/convert-any-flat-file-to-any-idoc-java-mapping /people/amol.joshi2/blog/2006/03/10/think-objects-when-creating-java-mappings /people/sameer.shadab/blog/2005/09/29/testing-abap-mapping sample code for java

to understand more on Java Mapping and the APIs available.http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/parsers/package-summary.html http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/Document.html http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-frame.html /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i

/people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-ii /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-iii

regards

biplab

Former Member
0 Kudos

Hi Madhu,

Check if these threads can help u,

http://help.sap.com/saphelp_nw04/helpdata/en/f5/2f2c4142aef623e10000000a155106/frameset.htm

**************Reward points if helpfull***********