2011-05-12 53 views
0
Document xmlDocument = builder.parse(request.getInputStream()); 

此處的請求以POST的形式發送; 但我無法在servlet中獲取進程的請求。 以下異常被拋出通過文檔生成器提交文章請求

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) 

任何一個可以請建議我的答案。

在此先感謝。

+0

如何POST數據? – McDowell 2011-05-12 10:40:01

+0

this.xmlHttp.open(「POST」,url,this.async); \t this.xmlHttp.setRequestHeader(「Content-Type」,「application/x-www-form-urlencoded」); \t this.xmlHttp.send(Params); – Suki 2011-05-12 10:56:57

+0

這是我如何發送一個POST請求到一個servlet(url)。 – Suki 2011-05-12 10:57:33

回答

0
Document xmlDocument = builder.parse(request.getInputStream()); 

此Java代碼用於解析XML。

​​

此瀏覽器JavaScript代碼發送application/x-www-form-urlencoded數據。有效負載sessionid=324trt不是XML。

讀取參數的正確方法是via the parameter map

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

Thanks.I得到你的觀點。 我可以訪問請求參數。但我需要發送這個請求到一個xmlparser解析 當我傳遞參數作爲查詢字符串時,一切工作正常,但我不想這樣做,因爲我有要求限制它。 如果我將URL限制爲servlet名稱:示例http:...../host/servletname並將請求正文中的參數作爲原始POST請求傳遞,我遇到了上述錯誤。 – Suki 2011-05-12 11:59:10

+0

@Suki - 我不明白 - 沒有XML。 ['application/x-www-form-urlencoded'](http://www.w3.org/TR/html401/interact/forms.html#form-content-type)不是XML。 – McDowell 2011-05-12 12:05:41

+0

好吧。忘掉上述所有內容。現在我正在使用AJAX CALL向servlet發送一個POST請求給servlet。當我做這件事情時servlet裏面Document xmlDocument = builder.parse(request.getInputStream());我得到上述錯誤。請給我一個解決方案。提前感謝您花時間在此。 – Suki 2011-05-12 12:18:12

0

做什麼@McDowell上述建議,並發表您的XML作爲POST參數。然後讀取servlet中的參數並執行此操作 -

String postedXml = request.getParameter("postedXml"); 
StringReader reader = new StringReader(postedXml); 
InputSource inputSource = new InputSource(reader); 
Document doc = builder.parse(inputSource); 
reader.close();