Javascript XMLHTTP post xml document to JSP and process it
807569May 24 2006 — edited May 24 2006Hi, I hope there will some help for my problem:
I'm using Windows + Tomcat 5.5
I have a javascript that does :
<script language="javascript">
function sendXML()
{
var str = "<testing1>1234</testing>";
var tempdom= new ActiveXObject("MSXML2.DOMDocument");
tempdom.async = false;
tempdom.loadXML(str);
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
try{
xmlhttp.Open("POST","http://localhost:8081/emr/jsp/b.jsp",false);
xmlhttp.Send(tempdom.xml);
var s=xmlhttp.responseText;
alert (s);
}
catch(e){alert(e.reason)}
}
</script>
When this function is triggered, I wish to post the xml data <testing>1234</testing> to the b.jsp. I want b.jsp to receive the xml data and process it. The jsp is simple:
<%@ page import ="javax.xml.parsers.*"%>
<%
try
{
DocumentBuilderFactory Dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder bd = Dbf.newDocumentBuilder();
org.w3c.dom.Document mainDoc=bd.parse(request.getInputStream());
out.print ("OK");
}
catch (Exception ex)
{
ex.printStackTrace();
}
%>
When this b.jsp is executed, the message "OK" does not comes out. And checking the log file from tomcat gives me:
oracle.xml.parser.v2.XMLParseException: Start of root element expected.
at oracle.xml.parser.v2.XMLError.flushErrors(XMLError.java:148)
at oracle.xml.parser.v2.NonValidatingParser.parseRootElement(NonValidatingParser.java:298)
at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:260)
at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:149)
at oracle.xml.jaxp.JXDocumentBuilder.parse(JXDocumentBuilder.java:96)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at org.apache.jsp.jsp.b_jsp._jspService(org.apache.jsp.jsp.b_jsp:50)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Any help will be appreciated.
Thanks a lot.
Sean