Я использую некоторые веб-службы, при каждом запросе GET он записывает в файл, а при каждом запросе POST обновляет этот файл. Я хочу удалить этот файл примерно через 15 секунд после обновления (запрос POST). Я попытался попробовать и, наконец, обойтись POST-запросом, но без радости он удаляется до завершения работы метода.
Как мне этого добиться?
@POST
@Path("/postuser")
@Consumes("application/json")
@Produces(MediaType.APPLICATION_JSON)
public Response createUser(User user) throws Exception {
String result = null;
int id = user.getId();
String fullName = user.getFullName();
String userName = user.getUserName();
String password = user.getPassword();
String ipAddress = user.getIpAddress();
if (!fullName.equals("XXXX")) {
result = "Name has to be XXXX ... you posted " + fullName;
} else {
result = "ID: " + id + "\n Name: " + fullName + "\n Username: " + userName + "\n Password: " + password
+ "\n IPAddress: " + ipAddress;
userDao.updateUser(user);
}
return Response.status(201).entity(result).build();
}
public void deleteUsersFile() {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
File file = new File("xxxxx");
file.delete();
}
}, 0, 15*1000);
}
public int updateUser(User pUser) {
List<User> userList = getAllUsers();
for (User user : userList) {
if (user.getId() == pUser.getId()) {
int index = userList.indexOf(user);
userList.set(index, pUser);
saveUserList(userList);
return 1;
}
}
return 0;
}
public List<User> getAllUsers() {
List<User> userList = null;
try {
File file = new File("xxxx");
if (!file.exists()) {
user = new User(1, "xxxx", "xxx", "xx", "xxxx");
userList = new ArrayList<User>();
userList.add(user);
saveUserList(userList);
} else {
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
userList = (List<User>) ois.readObject();
ois.close();
}
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return userList;
}