0
我想用一個簡單的HttpServlet來管理另一個服務器的肥皂請求。 該請求只有一個byte []類型的參數(它是一個簡單的字符串)。與Java HttpServlet的解組肥皂信封
相關代碼:
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
InputStream is = req.getInputStream();
byte[] body = IOUtils.toByteArray(is);
String stringRequest = new String(body);
log.info("Request -> "+stringRequest);
}catch(Exception){log.error(e);}
我收到請求,如果我打印它似乎在這樣:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<fixedResearch soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<MYPARAMETER xsi:type="xsd:hexBinary">
*****bytearray******
</MYPARAMETER>
</fixedResearch>
</soapenv:Body>
</soapenv:Envelope>
我需要得到MYPARAMETER標籤內的值(這是一個字節[])。 有一個聰明的方法,也許使用Axis1的一些utils類(我不能使用Axis2)來處理傳入的請求?
幾乎完美的一部分,MYPARAMETER的內容是hexBinary。所以要打印正確的值,你應該做新的String(hexStringToByteArray(value))。我省略了hexStringToByteArray的實現,因爲我在評論中沒有足夠的字符。 – drenda