on 09-24-2007 12:30 PM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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***********
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.