Добрый день уважаемые.
Прошу совета или подсказки в какую сторону смотреть.
Используя dynservice пытаюсь переопределить работу метода portUpdate
Нужно чтобы при создании очередного интерфейса на устройстве выполнялась проверка на наличие ранее созданного интерфейса с таким же названием. В случае если интерфейс с таким названием есть достаточно вывести сообщение об ошибке.
Нашёл нужный метод devicePortUpdate в ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService. Использую dynservice для перегрузки своей реализацией метода.
Однако, результата никакого не получаю.
В журнале нет ни строчки о том, что новый метод был вызван.
В конфигурации сервера указано:
Код:
dynservice:ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService=my.own.service.DeviceInterfaceServiceImpl
Код сервиса:
Код:
@WebService(endpointInterface = "ru.bitel.oss.systems.inventory.resource.common.DeviceInterfaceService")
public class DeviceInterfaceServiceImpl
extends ru.bitel.oss.systems.inventory.resource.server.DeviceInterfaceServiceImpl
implements DeviceInterfaceService {
private static final Logger logger = Logger.getLogger(DeviceInterfaceServiceImpl.class);
@Override
public void devicePortUpdate(DeviceInterface port) throws BGException {
logger.debug("devicePortUpdate MID: " + this.moduleId);
try {
/**
* Проверить наличие интерфейса с таким title.
* Если интерфейс найден, запретить его создавать.
*/
Statement pst = this.getSlaveConnection().createStatement();
String sql = "SELECT 1 FROM inv_device_port_" + this.moduleId + " WHERE title='" + port.getTitle() + "'";
logger.debug("devicePortUpdate SQL: " + sql);
ResultSet result = pst.executeQuery(sql);
if (result.first()) {
throw new BGException("Вы не можете зарезервировать интерфейс " + port.getSubscriberTitle() + ", так как такой интерфейс уже существует.");
}
super.devicePortUpdate(port);
} catch (SQLException e) {
logger.error(e.getMessage());
throw new BGException(e);
}
}
}
ЗЫ
Да, понимаю что проверить наличие интерфейса в базе можно иначе, но мне, пока, достаточно сделать хотя-бы так.