cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to call another program in servlet

Former Member
0 Kudos

Hi,

I'm developing a Java program in Netweaver. It is a servlet program. External server will call this servlet program to pass the value in and then i use the value and pass to a stateless session bean. But now i'm required to make some change but in certain condition, it will use the value and pass to another servlet in another server.

So i had changed my code as below.


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String xml_response = "";
		String msg = request.getParameter("message").trim();
		FileReader fread = null;
		BufferedReader bread = new BufferedReader(new FileReader("D:\\filter.txt"));
		String line;
		ArrayList moList = new ArrayList();
		
		while((line = bread.readLine())!=null)
		{
		 	String[] moNum = line.split(",");
		 	for(int i=0; i<moNum.length;i++)
		 	{
		  		moList.add(moNum<i>);
		 	}
	   }
	   bread.close();

           try {
			xml_response = "700";
			response.setContentType("text/html");
			PrintWriter out = response.getWriter();
			out.println("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
			out.println("<status>" + xml_response + "</status>");
			out.close();

                        if (moList.contains(ms)) {
				response.sendRedirect("http://192.168.1.1:50000/adapter/msgtext?sms=" + sms + "&moid=" + mo_id + "&msisdn=" + msisdn);
                        } else {
                          .................
                        }
           } catch ......

I have a xml to response to the server that pass me the value. Need that to inform them i had received the msg. So now i not sure the error is it caused by the XML part. I already close it but when i try to run this i get this error message.


#com.sap.engine.services.servlets_jsp.client.RequestInfoServer#sap.com/AdapterWSEAR#com.sap.engine.services.servlets_jsp.client.RequestInfoServer#J2EE_GUEST#0####9f7f9e100bc411debf5b001a6467cb54#SAPEngine_Application_Thread[impl:3]_30##0#0#Error##Plain###application [moadapter] Processing HTTP request to servlet [SendMOText] finished with error. The error is: java.io.IOException: Bad file descriptor
	at java.io.FileOutputStream.write(Native Method)
	at java.io.DataOutputStream.writeBytes(DataOutputStream.java:254)
	at net.emisolutions.controller.adapter.servlet.SendMOText.doPost(SendMOText.java:163)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
	at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
	at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
	at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
	at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
	at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
	at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
	at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
	at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
	at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
	at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
	at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
#
#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#sap.com/AdapterWSEAR#com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl#J2EE_GUEST#0####9f7f9e100bc411debf5b001a6467cb54#SAPEngine_Application_Thread[impl:3]_30##0#0#Error#1#/System/Server/WebRequests#Plain###application [moadapter] Processing HTTP request to servlet [SendMOText] finished with error.
The error is: java.io.IOException: Bad file descriptor
Exception id: [001A6467CB54005E0000475100001A740004649841331F6F]#
#com.sap.engine.services.servlets_jsp.client.RequestInfoServer#sap.com/AdapterWSEAR#com.sap.engine.services.servlets_jsp.client.RequestInfoServer#J2EE_GUEST#0####9f7f9e100bc411debf5b001a6467cb54#SAPEngine_Application_Thread[impl:3]_30##0#0#Error##Plain###application [moadapter] Cannot send an HTTP error response [500 Application error occurred during request processing. (details: java.io.IOException: Bad file descriptor)]. The error is: com.sap.engine.services.servlets_jsp.server.exceptions.WebIOException: The stream is closed.
	at com.sap.engine.services.servlets_jsp.server.runtime.client.ServletOutputStreamImpl.write(ServletOutputStreamImpl.java:170)
	at javax.servlet.ServletOutputStream.print(ServletOutputStream.java:135)
	at com.sap.engine.services.servlets_jsp.server.runtime.client.HttpServletResponseFacade.sendBodyText(HttpServletResponseFacade.java:996)
	at com.sap.engine.services.servlets_jsp.server.runtime.client.HttpServletResponseFacade.writeError(HttpServletResponseFacade.java:987)
	at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.sendError(HttpHandlerImpl.java:973)
	at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleGeneralException(HttpHandlerImpl.java:878)
	at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.processError(HttpHandlerImpl.java:869)
	at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:412)
	at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
	at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
	at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
	at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
	at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
	at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
	at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
	at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
	at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
	at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
	at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)

Appreciate if anyone can help. I tried to google and find the error message that is given but unable to find it. What i think of is the XML that cause error. Any idea for this?

Thanks.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Solved.

The XML caused the problem. I need to include the XML in the if statement instead of outside.