Код: Выделить всё
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONObject;
@POST
@Path("ObjectItem")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public JSONObject processObjectItem(String JSON) throws Exception {
JSONObject jData = new JSONObject(JSON);
JSONArray jItems = jData.getJSONArray("Items");
JSONObject productItem = jItems.getJSONObject(0);
Long id = productItem.getLong("ItemID");
Product productBean = new productBean(productItem);
Asset product = getProductById(id);
if (product == null) {
createProduct(id, productItem);
}
else {
updateProduct(id, productItem);
}
JSONObject result = new JSONObject();
result.put("status", "success");
result.put("message", "Items processed successfully");
return result;
}
Мы попробовали метод Async и идентификатор POST, который содержит идентификатор в пути, но в базе приложение не допускает более одного параметра для методов POST. Нам просто нужен код для обработки быстрых запросов, использующих один и тот же идентификатор, и гарантировать, что они обрабатываются в порядке, а не в одно и то же время.
Подробнее здесь: https://stackoverflow.com/questions/760 ... is-already