отправить запрос по почте через Document Builder - PullRequest
0 голосов
/ 12 мая 2011
Document xmlDocument = builder.parse(request.getInputStream());

Запрос здесь отправляется как POST; Но я не могу получить процесс запроса в сервлете. Ниже выдается исключение

org.xml.sax.SAXParseException: Content is not allowed in prolog.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:98)

Может кто-нибудь, пожалуйста, предложите мне ответ.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 12 мая 2011

Сделайте то, что предлагает @McDowell выше, и опубликуйте свой xml как параметр POST. Затем прочитайте параметр в вашем сервлете и сделайте это -

String postedXml = request.getParameter("postedXml");
StringReader reader = new StringReader( postedXml );
InputSource inputSource = new InputSource( reader );
Document doc = builder.parse( inputSource );
reader.close();
0 голосов
/ 12 мая 2011
Document xmlDocument = builder.parse(request.getInputStream());

Этот код Java предназначен для синтаксического анализа XML.

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
this.xmlHttp.open("POST",url, this.async);
this.xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
this.xmlHttp.send("sessionid=324trt");

Этот код JavaScript браузера отправляет application/x-www-form-urlencoded данные.Полезная нагрузка sessionid=324trt не является XML.

Правильный способ считывания параметра будет через карту параметров :

String sessionid = request.getParameter("sessionid");
...