Size: a a a

Spring Framework and more

2019 April 17

М

Михаил in Spring Framework and more
Pavel Bukhmatov
Товарищи, вопрос для любителей кровавого ентерпрайза.
Есть некий класс, нагенеренный из XSD схемы. Этот класс соответственно помечен xml аннотациями типо @XmlType, @XmlElement и прочими.

Есть метод контроллера, в котором этот класс принимается, как body с content-type и accept Application/json
@PostMapping(value = "/",
           consumes = MediaType.APPLICATION_JSON_VALUE,
           produces = MediaType.APPLICATION_JSON_VALUE)
public Bla call(@RequestBody MyXmlAnnotatedClass body)
В него отправляется JSON, соответствующий этому классу (вместе с content-type и accept = Application/json конечно же)

И казалось, везде стоит JSON, хочется, чтобы входной параметр тоже мапился из JSON, но он пытается замапится из XML и получает соответственно
> Unexpected character '{' (code 123) in prolog; expected '<'


Оно чинится шаловливыми ручками через создание своего единсвтенного конвертора
@Bean
   public HttpMessageConverter<Object> createEverythingToJSONMessageConverter() {
       return new MappingJackson2HttpMessageConverter();
   }
Но наверное есть же и более изящный путь, как заставить класс, аннотированный javax.xml аннотациями мапится, как JSON, когда в запросе явно указываются медиа типы?
а чем не нормальное решение?) мне кажется, что для спринга это нетипичная ситуация и он не должен из коробки понимать, что надо конвертить json в xml только по mediatype
источник

PB

Pavel Bukhmatov in Spring Framework and more
Михаил
а чем не нормальное решение?) мне кажется, что для спринга это нетипичная ситуация и он не должен из коробки понимать, что надо конвертить json в xml только по mediatype
Дело в том,  что если бы над классном не было аннотаций xml, (но были бы jaxb классы в зависимостях), Spring бы ел и xml, и json в 1 RequestMapping (по content-type определение). В моей реализации так сделать больше не удастся, так как конвертов один, и он считает, что весь мир - json.
Я думаю можно реализовать то что нужно переопределив xml конвертов jackson, но пока нет нужды руки не дошли)
источник

PB

Pavel Bukhmatov in Spring Framework and more
Или я что-то не так понял. Если чесно, не побрал направить xml, при наличии своего бина HttpMessageConvertor
источник

PD

Plomipu Dmitri in Spring Framework and more
Привет. Я решил проблему с заглушкой с помощью AOP. Есть правда одна непоняточка с advice-ами в aspectj в спринге. Если я при аннотировании метода, который я использую как обработчик события , когда произошёл вызов определённого метода, выражение которого прописано в определённом pointcut-е, как, например, тут написано в аннотации Один из разновидностей advice-а :

@Around ("execution( * jobFinishedNotificationAdmin( *.Job )) && args(job)")
public void stubJobFinishedNotificationAdmin(final Job job){
logJobFinishedNotificationToUser(job, UserTypeEnum.ADMIN);
}

метод вызывается и я использую этот кусочек "args(job)", происходит привязка аргумента, который использовании при пойманном вызове к параметру, который прописан в методе-обработчике, но в аннотации @Around есть параметр argNames, который также служит для открытия прав доступа для определённых аргументов при рантайме как написано в доке. Так вот: я убрал этот кусочек "args(job)" из строки ( выражения pointcut-а ) и вместо него добавил эту argsNames параметр аннотации, но получил исключение, что аргумент мне не доступен из за ошибки в этом выражении. А когда я добавляю "args(job)" вместо argsNames, всё работает. У меня поэтому вопрос: зачем этот argsNames вообще тогда нужен ??? В каких ситуациях этот параметр нужен, как пример. Подскажите мне.
источник
2019 April 18

V

Vladimir in Spring Framework and more
Привет! Кто-нибудь работает с webflux на netty http server?
источник

EP

EnterpriseJira PluginDev in Spring Framework and more
я нашел способ поиска багов в контейнере и конфигурации: интеграционные тесты.

Это вообще то был бы и рекомендованным способом написания (с одновременным тестированием ) конфигурации.

Угадайте с одного раза, где была ошибка ?

Правильно - я объявил класс конфигураций  финальным
источник

EP

EnterpriseJira PluginDev in Spring Framework and more
Дмитрий
без кода ничего не сказать, только своет внимательнее перепроверить что класс точно тот, а не с таким же именем из другого пакета/либы итд. Магии там нет
общая рекомендация - тестировать сборку контейнера спрингом с помощью интеграционных тестов. ОК?
источник

Д

Дмитрий in Spring Framework and more
Это вопрос или что вообще
источник

А

Артем Артемович Артемовский in Spring Framework and more
это ответ на его же вопрос
источник

А

Артем Артемович Артемовский in Spring Framework and more
бин не мог создать спринг
источник

Д

Дмитрий in Spring Framework and more
Артем Артемович Артемовский
бин не мог создать спринг
Я про то что он мне написал, не понял просто к чему это
источник

EP

EnterpriseJira PluginDev in Spring Framework and more
хотя нет, в рантайме все равно не работает.

Может быть я не указал конфигурацию для рантайма?

Зы. Во интеграционных тестах оно заходит в @ Bean и конфигурации. Что и логично, т.к. я указал явно класс конфигурации для класса тестов
источник

DM

Dmitriy Mukhin in Spring Framework and more
Коллеги, вопрос: подключаю moodle через свой oauth, он мне отправляет state
/auth/oauth2/login.php?wantsurl=https%3A%2F%2Fedu.digtlab.ru%2F&sesskey=UFzAHSDX39&id=2
а на бэк приходит только такой:
/auth/oauth2/login.php?wantsurl=https://edu.digtlab.ru/
видимо Jackson смущают параметры.
Кто знает как поступить в такой ситуации?
источник

DS

Dmitry Sysoev in Spring Framework and more
Правильно ли я понимаю, что используя Spring можно совсем не обращаться к Java EE
источник

EP

EnterpriseJira PluginDev in Spring Framework and more
Dmitry Sysoev
Правильно ли я понимаю, что используя Spring можно совсем не обращаться к Java EE
можно обращаться в скорую. когда ты заставишь работать контейнер спринга
источник

B

BBro in Spring Framework and more
EnterpriseJira PluginDev
можно обращаться в скорую. когда ты заставишь работать контейнер спринга
источник
2019 April 19

MC

Maksim Chesnokov in Spring Framework and more
есть достаточно большая база изображений которая постоянна пополняется, задача состоит в том чтобы определять есть ли уже такое же изображение которое нам хотят сохранить, подскажите алгоритмы или готовые решения чтобы сделать это как можно быстрее
источник

KT

Kanstantsin Tolstsik in Spring Framework and more
Maksim Chesnokov
есть достаточно большая база изображений которая постоянна пополняется, задача состоит в том чтобы определять есть ли уже такое же изображение которое нам хотят сохранить, подскажите алгоритмы или готовые решения чтобы сделать это как можно быстрее
Считать md5 для каждого изображения и проверять уникальность для добавляемого.
источник

RP

Roman Patkin in Spring Framework and more
Maksim Chesnokov
есть достаточно большая база изображений которая постоянна пополняется, задача состоит в том чтобы определять есть ли уже такое же изображение которое нам хотят сохранить, подскажите алгоритмы или готовые решения чтобы сделать это как можно быстрее
а где они лежат? в бд?
источник

MC

Maksim Chesnokov in Spring Framework and more
Roman Patkin
а где они лежат? в бд?
в папке, но можно и в бд переложить
источник