我有一个Rest服务类,它打算通过REST Web服务使用PUT方法更新库存。
当我通过Junit或主类(Public static void main
)调用服务类时,库存得到更新,我没有遇到任何问题。
但同样的服务类在部署到JBOSS-eap服务器并通过远程方法调用时抛出异常,我在日志中看到以下错误,
HTTP 400 - Bad Error
sun.net.www.protocol.https.DelegateHttpsURLConnection:https://www.webstore.com
请参阅下面的代码,
URL apiUrl = new URL("https://...");
String authToBytes = username + ":" + password;
byte authBytes[] = Base64.encodeBase64(authToBytes.getBytes());
String authBytesString = new String(authBytes);
conn = (HttpURLConnection) apiUrl.openConnection();
conn.setRequestMethod("PUT");
conn.setRequestProperty("Accept", "application/XML");
conn.setDoOutput(true);
conn.setRequestProperty("Authorization", "Basic " + authBytesString);
OutputStream output = new BufferedOutputStream(conn.getOutputStream());
output.write(body.getBytes()); //String body ="XML Data.."
output.flush();
if (conn.getResponseCode() != 200) { // Got exception on JBoss only
throw new CustomException(conn.getResponseCode() + "", conn.getResponseMessage());
}
InputStream is = conn.getInputStream();