I am trying to send an XML to a SERVLET using the POST method and I run into a problem.
I am trying to integrate a login component written by another team. They have a test client which shows the XML that will be sent to the servlet. Their input xml and mine matches exactly.
I know that I am forming the input XML correctly, because if I go to http://app.com/test.jsp and replace the XML in the textbox with the XML I create in my code, it always gives me back a good response.
I am using standard POST request in my code, nothing special, so I am lost as to why this happens.
input xml from my code
<?xml version="1.0" encoding="UTF-8"?>
<Request>
<Credentials>
<UserID>smhsrvuser1</UserID>
<Password>{SSHA}CoM8yMtxnTy8BR2PmOjkbe/c2vccHF+3w==</Password>
</Credentials>
<Data>
<Action>23</Action>
<ESELoginID>vrangaraj</ESELoginID>
<AppID>1,2</AppID>
</Data>
</Request>
correct output xml that I get back from the test.jsp
<?xml version="1.0" encoding="UTF-8" ?>
<SM>
<STAT>
<CD>0</CD>
<TXT>OK</TXT>
</STAT>
<R>2^3^112</R>
<G>
<A2>8001^8100^8102^1111111111^8112^8110^8107^8105</A2>
</G>
</SM>
incorrect output xml that I get back in the code
<?xml version="1.0" encoding="UTF-8"?>
<SM>
<STAT>
<CD>999</CD>
<TXT>Invalid input xml</TXT>
</STAT>
</SM>
----------------------------------------
code that I use to send the request
code:
--------------------------------------------------------------------------------
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.Vector;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentFactory;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//forming the document
Document doc=null;
String inputxml = null;
try
{
doc = DocumentHelper.parseText("<?xml version=\"1.0\" encoding=\"UTF-8\"?><Request></Request>");
}
catch (DocumentException e)
{
e.printStackTrace();
}
//forming the xml
Element credElem = doc.getRootElement().addElement("Credentials");
Element usrElem = credElem.addElement("UserID");
if(usrElem!=null)
usrElem.setText("smhsrvuser1");
Element pswElem = credElem.addElement("Password");
if(pswElem!=null)
pswElem.setText("{SSHA}ylYXKCoM8yMtxnTy8BR2PmOjkbe/c2vccHF+3w==");
Element datElem = doc.getRootElement().addElement("Data"); Element actElem = datElem.addElement("Action");
actElem.setText("23");
Element logElem = datElem.addElement("ESELoginID"); logElem.setText("vrangaraj");
Element appElem = datElem.addElement("AppID");
appElem.setText("1,2");
inputxml = doc.asXML();
//sending request to the servlet
serviceURL="http://app.com/Login";
URL url = new URL(serviceURL);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(inputxml);
wr.flush();
// Get the response
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = rd.readLine()) != null)
{
retVal = retVal + line;
}
wr.close();
rd.close(); }
catch (Exception ex)
{ }
//this always gives me the Invalid Input XML error
System.out.println("\n"+retVal);
I am beginning to wonder if this has anything to do with the problem posted in the java forums.
http://forum.java.sun.com/thread.jspa?threadID=282485&start=0&tstart=120
because I get the following exceptions in my console, along with the Invalid Input XML Format error.
<?xml version="1.0" encoding="UTF-8"?>
<Request><Credentials><UserID>smhsrvuser1</UserID><Password>{SSHA}ylYXKCoM8yMtxnTy8BR2PmOjkbe/c2vccHF+3w==</Password></Credentials><Data><Action>23</Action><ESELoginID>vrangaraj</ESELoginID><AppID>1,2</AppID></Data></Request>
[10/11/05 9:45:33:264 EDT] 4ee41b3f SystemOut O
<?xml version="1.0" encoding="UTF-8"?><SM><STAT><CD>999</CD><TXT>Invalid input xml</TXT></STAT></SM>
[10/11/05 9:45:33:274 EDT] 4ee41b3f SystemOut O
b4 Parsing output xml =<?xml version="1.0" encoding="UTF-8"?><SM><STAT><CD>999</CD><TXT>Invalid input xml</TXT></STAT></SM>
4ee41b3f SystemErr R org.dom4j.DocumentException: no protocol: <?xml version="1.0" encoding="UTF-8"?><SM><STAT><CD>999</CD><TXT>Invalid input xml</TXT></STAT></SM> Nested exception: no protocol: <?xml version="1.0" encoding="UTF-8"?><SM><STAT><CD>999</CD><TXT>Invalid input xml</TXT></STAT></SM>
4ee41b3f SystemErr R at org.dom4j.io.SAXReader.read(SAXReader.java:333)
4ee41b3f SystemErr R at org.dom4j.io.SAXReader.read(SAXReader.java:229)
4ee41b3f SystemErr R at com.lifeadmin.security.AppSecurity.getRolesGroups(AppSecurity.java:306)
4ee41b3f SystemErr R at com.lifeadmin.security.AppSecurity.GetRolesGroups(AppSecurity.java:119)
4ee41b3f SystemErr R at com.presentment.client.login.doPost(login.java:76)
4ee41b3f SystemErr R at com.presentment.client.login.doGet(login.java:40)
4ee41b3f SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
4ee41b3f SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
4ee41b3f SystemErr R at com.m.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
4ee41b3f SystemErr R at com.m.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
4ee41b3f SystemErr R at com.m.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
4ee41b3f SystemErr R at com.m.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
4ee41b3f SystemErr R at com.m.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
4ee41b3f SystemErr R at com.m.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
4ee41b3f SystemErr R at com.m.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
4ee41b3f SystemErr R at com.m.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
4ee41b3f SystemErr R at com.m.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
4ee41b3f SystemErr R at com.m.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
4ee41b3f SystemErr R at com.m.ws.http.HttpConnection.run(HttpConnection.java:439)
4ee41b3f SystemErr R at com.m.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
4ee41b3f SystemErr R Nested exception:
4ee41b3f SystemErr R java.net.MalformedURLException: no protocol: <?xml version="1.0" encoding="UTF-8"?><SM><STAT><CD>999</CD><TXT>Invalid input xml</TXT></STAT></SM>
4ee41b3f SystemErr R at java.net.URL.<init>(URL.java(Compiled Code))
4ee41b3f SystemErr R at java.net.URL.<init>(URL.java(Compiled Code))
4ee41b3f SystemErr R at java.net.URL.<init>(URL.java:450)
4ee41b3f SystemErr R at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
4ee41b3f SystemErr R at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
4ee41b3f SystemErr R at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
4ee41b3f SystemErr R at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
4ee41b3f SystemErr R at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
4ee41b3f SystemErr R at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
4ee41b3f SystemErr R at org.dom4j.io.SAXReader.read(SAXReader.java:314)
4ee41b3f SystemErr R at org.dom4j.io.SAXReader.read(SAXReader.java:229)
4ee41b3f SystemErr R at com.lifeadmin.security.AppSecurity.getRolesGroups(AppSecurity.java:306)
4ee41b3f SystemErr R at com.lifeadmin.security.AppSecurity.GetRolesGroups(AppSecurity.java:119)
4ee41b3f SystemErr R at com.presentment.client.login.doPost(login.java:76)
4ee41b3f SystemErr R at com.presentment.client.login.doGet(login.java:40)
4ee41b3f SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
4ee41b3f SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
4ee41b3f SystemErr R at com.m.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
4ee41b3f SystemErr R at com.m.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
4ee41b3f SystemErr R at com.m.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
4ee41b3f SystemErr R at com.m.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
4ee41b3f SystemErr R at com.m.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)
4ee41b3f SystemErr R at com.m.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
4ee41b3f SystemErr R at com.m.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
4ee41b3f SystemErr R at com.m.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
4ee41b3f SystemErr R at com.m.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
4ee41b3f SystemErr R at com.m.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
4ee41b3f SystemErr R at com.m.ws.http.HttpConnection.run(HttpConnection.java:439)
4ee41b3f SystemErr R at com.m.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
4ee41b3f SystemErr R Nested exception: java.net.MalformedURLException: no protocol: <?xml version="1.0" encoding="UTF-8"?><SM><STAT><CD>999</CD><TXT>Invalid input xml</TXT></STAT></SM>
4ee41b3f SystemErr R at java.net.URL.<init>(URL.java(Compiled Code))
4ee41b3f SystemErr R at java.net.URL.<init>(URL.java(Compiled Code))
4ee41b3f SystemErr R at java.net.URL.<init>(URL.java:450)
4ee41b3f SystemErr R at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
4ee41b3f SystemErr R at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
4ee41b3f SystemErr R at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
4ee41b3f SystemErr R at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
4ee41b3f SystemErr R at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
4ee41b3f SystemErr R at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
4ee41b3f SystemErr R at org.dom4j.io.SAXReader.read(SAXReader.java:314)
4ee41b3f SystemErr R at org.dom4j.io.SAXReader.read(SAXReader.java:229)
4ee41b3f SystemErr R at com.lifeadmin.security.AppSecurity.getRolesGroups(AppSecurity.java:306)
4ee41b3f SystemErr R at com.lifeadmin.security.AppSecurity.GetRolesGroups(AppSecurity.java:119)
4ee41b3f SystemErr R at com.presentment.client.login.doPost(login.java:76)
4ee41b3f SystemErr R at com.presentment.client.login.doGet(login.java:40)
4ee41b3f SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
4ee41b3f SystemErr R at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
4ee41b3f SystemErr R at com.m.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
4ee41b3f SystemErr R at com.m.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:974)
4ee41b3f SystemErr R at com.m.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:555)
4ee41b3f SystemErr R at com.m.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:200)
4ee41b3f SystemErr R at com.m.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:119)
4ee41b3f SystemErr R at com.m.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:276)[10/11/05 9:45:33:314 EDT] 4ee41b3f SystemOut O
processRequest
4ee41b3f SystemErr R at com.m.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
4ee41b3f SystemErr R at com.m.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)
4ee41b3f SystemErr R at com.m.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
4ee41b3f SystemErr R at com.m.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
4ee41b3f SystemErr R at com.m.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:618)
4ee41b3f SystemErr R at com.m.ws.http.HttpConnection.run(HttpConnection.java:439)
4ee41b3f SystemErr R at com.m.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
4ee41b3f WebGroup I SRVE0180I: [LifeAdminClient] [LifeAdminClient] [Servlet.LOG]: /home.jsp: init