Задать вопрос
  • Как сохранить страницу http на пк selenium java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Как сохранить страницу http на пк selenium java?

    Мне кажется, что вы пошли не тем путем и притом извращенным путем.
    Во-первых, зачем вам для сохранения страницы запускать браузер, использовать selenium и т.д? Это затратно в плане времени и в плане памяти.
    Можно выполнить get запрос на сервер и получить массив байтов самой страницы, сохранить ее.
    www.java2s.com/Tutorial/Java/0320__Network/SaveWeb...
    https://stackoverflow.com/questions/17440236/getti...

    Ну или на худой конец, используйте либу jsoup.
    Вот, пару строк:
    public void downloadPage() throws Exception {
            final Response response = Jsoup.connect("http://www.example.net").execute();
            final Document doc = response.parse();
    
            final File f = new File("filename.html");
            FileUtils.writeStringToFile(f, doc.outerHtml(), StandardCharsets.UTF_8);
        }


    Источник - https://stackoverflow.com/questions/24696766/how-t...
    Ответ написан
    Комментировать
  • Почему Spring boot secure login выдает ошибку 404?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Добрый день.
    Могу предположить следующие причины:
    1) либо у вас нет шаблона login.html в /resources/templates/
    2) либо запрос не доходит до /login, так как:
    .antMatchers("/").permitAll()
     .anyRequest().authenticated()

    Вы разрешили доступ без аутентификации только к главной странице. А форма авторизации лежит по пути /login
    Ответ написан
  • Как запустить сервлет?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Ну можете для начала попробовать проверить context path. Скорее всего проблема именно в этом.
    Т.е. например, вы пытаетесь открыть урл localhost:8080/, а надо localhost:8080/customPath
    Скорее всего вы столкнулись именно с этим.
    Ответ написан
  • Spring mvc tomcat 404 в чем ошибка?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Могу предположить, что вы некорректно настроили томкат. В настройках вашего IDE необходимо указать context path.
    А затем обращаться к вашему приложению примерно так:
    localhost:8080/myPath/hello-world
    Ответ написан
    Комментировать
  • Почему не удалось получить экземпляр FirebaseDatabase?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Во-первых, ответ легко находится поисковиком.
    Во-вторых, там же написана причина ошибки:
    Failed to get FirebaseDatabase instance: Specify DatabaseURL within FirebaseApp or from your getInstance() call.

    Вот, например:
    https://stackoverflow.com/questions/47730910/faile...
    Ответ написан
    Комментировать
  • Как исправить ошибку 401 при авторизации в приложении?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Добрый вечер.
    Ошибки 4хх - являются ошибками на клиенте.
    Было бы неплохо увидеть содержимое post запроса, который убегает на сервер и конечно же то, что приходит на сервер.
    Причины могут быт разные:
    1) содержимое формы (названия инпутов - имя пользователя и пароль), а также ожидаемые названия инпутов отличаются. Например, на сервере ожидается username & password, а вы отправляете login & pass. Обратите внимание на атрибут name инпутов и при необходимости добавьте сответствующие названия в конфиг. .formLogin()
    https://www.baeldung.com/spring-security-login
    2) может быть запрос до спринга даже не доходит по каким-то причинам.
    В общем, не буду гадать и вы не гадайте. Проведите дебаг проекта и все станет на свои места
    Ответ написан
  • Можно ли для придания интерактивности на вэб-страницах в место javascripta использовать java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Если речь идет о нормальном проекте, то нет.
    Основу веба составляют 3 языка - html, css, js.
    java, python, php, typescript, ruby лишь серверные языки (в данном контексте). В старых браузерах можно запускать applet'ы, но в новых они не поддерживаются.
    Единственное решение - писать код на Java, который впоследствии транпилируется в JavaScript. Об этом уже упомянул коллега - Vamp
    Ответ написан
    Комментировать
  • Как правильно спроектировать обработку ошибок в слоях?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Я предпочитаю делать это следующим образом.
    На уровне репозитория (FooRepository) получаю Optional<Foo>. Далее на сервисном уровне (FooServiceImpl), который дублирует метод репозитория получаю уже Foo или в случае его отсутствия выбрасываю кастомное исключение FooNotFoundException. Затем некий глобальный ControllerAdvice ловит это исключение и возвращает http статус 404 с кастомным текстом Foo Not Found.
    Ответ написан
    Комментировать
  • Jar файл вылетает из-за кнопки вывода PDF?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Запустите ваш jar через cli (bash, commander, powershell и др.). Затем попробуйте провести соответствующую операцию, чтобы получить нужное исключение. Данное исключение отобразится в консоли. Остается лишь найти причину и исправить ее.
    Ответ написан
    Комментировать
  • Как добавить в Woocommerce функцию оплаты с платежной инструкцией на депозит в банк. счете?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Вбиваете в поиск что-то типа
    woocommerce invoice gateway plugin

    и находите кучу плагинов.
    Например,
    https://ru.wordpress.org/plugins/woocommerce-pdf-i...
    https://wordpress.org/plugins/wc-invoice-gateway/
    https://www.webtoffee.com/generate-woocommerce-pdf...
    А дальше установите и протестируйте
    Ответ написан
    1 комментарий
  • Spring security собственный шаблон для 403?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Добрый день.

    Можно использовать этот сниппет. Тут можно отловить код http ошибки (statusCode), а затем если значение этой переменной равно 403, то отобразить нужный шаблон.
    @Controller
    @RequiredArgsConstructor
    public class HttpErrorController implements ErrorController {
    
      @RequestMapping("/error")
      public ModelAndView handleError(HttpServletRequest request) {
        Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
        if (status != null) {
          int statusCode = Integer.valueOf(status.toString());
          // тут при помощи switch case находим код 403 и отдаем нужный шаблон.
        }
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("/frontend/templates/http-errors");
        return modelAndView;
      }
    
      @SuppressWarnings("deprecation")
      @Override
      public String getErrorPath() {
        return null;
      }
    }
    Ответ написан
    Комментировать
  • Что делать если лого ломает сайт и поменять брейкпоинты бургера на сайте Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый вечер.
    1) Как отметил коллега, у вас ошибка в слове Coockie должно быть Cookie.
    2) Далее настоятельно рекомендую задавать вопросы поотдельности, а не 3 в одном.
    3)
    как поменять брейкпоинты меню бургера на сайте?

    Что именно вы подразумеваете под брейкпоинтом в данном контексте? В моем понимании брейкпоинт - это точка остановки во время дебага. У вас при ширине 961 - 1452 пикс. меню начинает постепенно сжиматься, но бургер не появляется. Грубо говоря, в планшетной версии отображается полноценное меню, а не бургер. Можно при помощи медиазапросов скрыть полноценное меню и отобразить бургер. скрыть - ashade-nav показать - ashade-mobile-header
    4)
    Как убрать виджет ,,недавние комментарии" на сайте на странице блога

    Раз это виджет, то значит он убирается в разделе Внешний вид - виджеты. Далее найти соответствующую колонку и удалить виджет recent comments. Или же может быть, что при помощи виз. редактора определена область виджетов и добавлены необходимые виджеты. Тогда найдите соответствующую страницу и удалите оттуда этот виджет.
    5)
    на сайте логотип с размером 500x500 занимает пол экрана по какой-то непонятной причине, а когда он меньше хоть бы на 1 пиксель он становится маленьким как не знаю что (можете посмотреть на сайте)

    Меня больше заинтересовало другое, а именно название лого)))
    sbxMaEu.png
    Вот, будет умора, когда лого проиндексируется и попадет в гугл с таким названием
    К тому же, логотип на данный момент размером 300х250 пикс, скорее всего лого становится маленьким потому, что там высота задается автоматически, а ширина 100%. Когда меню уменьшается, то логотип по ширине не уменьшается и соответственно, высота адаптируется под нее. На момент просмотра сайта я не заметил данной проблемы. Попробуйте описать проблему более подробно
    Ответ написан
    1 комментарий
  • Что использовать Kotlin Multiplatform или Flutter?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Есть вот, такая штука для работы на Java - https://multi-os-engine.org/
    Рассматриваете ли вы применение языков js / ts с React Native?
    Ответ написан
    1 комментарий
  • Как средствами JavaScript отправить форму, содержащую текстовые поля и файл, в формате JSON?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Я так понял, что у всего содержимого формы Content-type должен быть multipart/form-data, верно?

    Да, все верно.

    Также не забывайте отправлять csrf токен, если в настройках безопасности он у вас включен. Некоторые шаблонизаторы (например, thymeleaf) делают это автоматически, но при отправке содержимого формы средствами js надо csrf тоже отправлять. Для этого в head добавляется мета-тег, в который вставляется csrf токен.
    Затем средствами js необходимо получить значение этого тега (токен) и отправить с формой.
    Подробности тут:
    https://www.baeldung.com/spring-security-csrf
    Раздел 3.4 Using Json - https://www.baeldung.com/spring-security-csrf#4-us...

    e.preventDefault();
    Скорее всего эта строка должна быть выше всех. Как бы вы сперва останавливаете form submission, а затем уже делаете все остальное. Иначе у вас форма будет отправлена, а затем выполнится остальной код.

    А вот, ответ на ваш вопрос:
    https://stackoverflow.com/questions/49845355/sprin...
    И в первом ответе и во втором описывается вариант отправки формы средствами js с файлом и с другими данными.
    Ответ написан
  • Какие микросервисы пишут на Java для E-commerce?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Я бы сказал, что по частоте разработки e-commerce больше применяются PHP & Python, возможно еще Ruby, нежели Java. На Java можно разработать ровным счетом все то, что можно сделать на РНР.

    На php пишется большой монолит - торговая площадка с множеством поставщиков. так же есть море парсеров цен, картинок, загрузки прайсов, пересчета цен. Какой микросервис есть смысл написать на Java Spring...

    Так все-таки у вас монолит или приложение микросервисной архитектуры?

    Появился Java программист в команде и нужно его загрузить работой чтоб он усилил проект. Есть идеи?

    Обычно, разработчика берут для выполнения определенных задач. Если у вас есть задачи со сложной бизнес логикой, с которыми может справиться C# или Java, то это другое дело. Иначе зачем вам Java разработчик нужен?
    А раз у вас нет работы для Java разработчика, то зачем вам содержать столь огромный штат. Ведь, можно по надобности обращаться во фриланс к Java разработчику.

    Также учтите следующий момент: допустим, что вам сегодня выгодно содержать Java разработчика и он напишет некоторые микросервисы. Вы столкнетесь со следующими моментами:
    - дороговизна поддержки
    - проблема обеспечения acid в микросервисных приложениях
    Отсюда возникает вопрос - а зачем вам это все? Пишите все на РНР.

    Что нового умеет Java по сравнению с php, может какие полезные библиотеки для машинного обучения что можно применить для интеллектуального формирования коммерческого предложения или может для умного поиска?

    Ну тут уж лучше нанимать python разработчика для deep learning, как мне кажется.
    Ответ написан
  • Как сделать, чтобы в письме владельцу магазина и клиенту отправлялась ссылка на товар, который клиент хочет купить в лид форме в один клик?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Как сделать так чтобы во всплывающих формах в Contact Form 7, при отправке уведомления клиенту и владельцу магазина оставлялась ссылка на товар который хочет купить клиент?

    Я так понимаю, что вы решили отказаться от функционала самого WC и вместо полноценного оформления корзины решили использовать CF7?

    Если так, то можно по-разному реализовать вашу задачу.
    1) У плагина CF7 есть свои теги. Этот вариант может не сработать в ряде случаев. Например, пользователь кликнул на кнопку в корзину находясь на странице категории товаров и соответственно, вместо ссылки самого товара в письмо попадет ссылка категории
    https://contactform7.com/special-mail-tags/
    Ищите:
    [_url]
    или
    [_post_url]

    2) (Как по мне более приемлимый способ). Для этого нужно владеть JavaScript и jQuery. По клику "В корзину" получаете ссылку на текущий товар, затем находите селектор поля из всплывающего окна и вставляете туда вашу ссылку. Но вам нужно учесть, что в корзину пользователь может добавить несколько товаров и соответственно, ссылка на каждую из них должна попасть в форму CF7
    Полезные ссылки:
    Отловить клик на элементе
    https://www.w3schools.com/jquery/event_click.asp
    или https://api.jquery.com/on/
    Вставить ссылку в поле input
    https://ruseller.com/jquery.php?id=47

    3) Если же вы можете использовать функционал корзины и готовы отказаться от CF7, то попробуйте поискать некий плагин для оффлайн оплаты. Тогда вам не нужно будет ссылку каждого выбранного товара добавлять в письмо, так как этот вопрос будет решаться внутренними средствами WC.
    Ответ написан
    1 комментарий
  • Почему Role и Privileges выдаются в UserDetailsService в одной коллекции, как равноценные понятия в данном примере?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Собственно говоря, в той же статье откуда вы взяли код (baeldung) ниже написана причина смешивания ролей и привилегий.
    The interesting thing to follow here is how the Privileges (and Roles) are mapped to GrantedAuthority entities.This mapping makes the entire security configuration highly flexible and powerful – you can mix and match roles and privileges as granular as necessary, and at the end, they'll be correctly mapped to authorities and returned back to the framework.


    Вот, еще полезная информация (прочитайте первый ответ) - https://stackoverflow.com/questions/6357579/spring...

    В Spring есть понятие Authority. Это могут быть как роли, так и привилегии (privilege, permission). Так как конечная цель заключается в том, чтобы проверить права пользователя и так как привилегия и роль по факту являются теми самыми "правами", но лишь на разных уровнях абстракции (роль содержит сет привилегий), то в примере кода, который вы указали все смешано в одну кучу.
    Отличие проявляется на другом уровне, когда есть метод для проверки роли hasRole(), к слову, к значению этого метода автоматически добавляется префикс ROLE_, а также метод hasAuthority(), когда проверяются все права (роли и привилегии) и в этом случае для проверки роли нужно указывать префикс ROLE_ самому или уже указать название привилегии (например, READ_PRIVILEGE).
    Ответ написан
    Комментировать
  • Как обратиться ко второму значению в массиве?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Прежде всего рекомендую воспользоваться поиском и только после этого задавать вопрос.
    Что касается вашего вопроса:

    Допустим, что у вас есть класс
    class Brus {
    public String name;
    public String weight;
    }


    Также есть некий массив private Brus[] arr = new Brus[3];, который к слову инициализируется динамически.
    {
        arr[0] = new Brus("Брусок", 500);
        arr[1] = new Brus("Брусок1", 350);
        arr[2] = new Brus("Брусок3", 5500);
        count = 3;
      }


    Судя по этому коду предположу, что вам нужно рассчитать вес всех брусов. Я не дам вам полного ответа, чтобы вы могли сами подумать, а лишь напишу, что нужно делать.
    public void calc() {
    
    int calcTotalWeight;
                                   // получаем длину массива
         for (int i = 0; i < arr.length; i ++) {
           // получаем вес текущего блока
           int weight = arr[i].weight;
          // после получения веса текущего бруса суммируем его значение к общему весу calcTotalWeight
          }
       }


    Вот, похожий вопрос - https://stackoverflow.com/questions/3123086/access...
    К слову в вопросе указан вариант использования forEach. А также использование геттера вместо доступа к публичному полю
    Ответ написан
    Комментировать
  • Как отредактировать форму поиска на сайте Wordpress?

    azerphoenix
    @azerphoenix
    Java Software Engineer
    Добрый вечер.
    Я установил на сайт новый плагин для поиска для того чтобы поиск работал как надо(по артикулам и тд)

    Вот, хороший плагин для реализации поиска (правда, платный) - Ajax Search Pro

    Но старые стили как я и думал слетели, я думал спокойно отредактирую их узнав классы через консоль разработчика Google Chrome, но я ошибся

    Ну конечно же слетят, ибо у нового плагина поиска свои стили и свои классы. Соответственно, вам нужно проинспектировать элементы плагины и в файл стилей style.css добавить ваши новые стили. Может потребоваться добавление css !important, чтобы перезаписать дефолтные стили плагина (если конечно же самим плагином не предусмотрена возможность изменения стилей через админку).

    Как вернуть все стили как было на новую форму(я не знаю куда прошлый разработчик запрятал все кастомные стили) вот скрины

    А нечего возвращать. Надо либо как я указал выше добавить стили для нового плагина, либо отключить этот плагин и вернуть старый поиск, в котором есть свои стили. Кастомные стили, в общем-то все стили обычно кладут в style.css. Однако, иногда в темах предусмотрено окно, куда можно добавлять эти стили. В этом случае они добавляются инлайном.

    Вот в общем в чем проблема, иконка поиска на сайте не работает при нажатии, почему?

    Тут проблема не в стилях, а в том что на самой кнопке поиска по какой-то причине нет обработчика (проблема в js). Тут могут быть разные причины:
    - баг самого плагина
    - конфликт js скриптов
    - ошибка где-то в js скриптах из-за чего каскадом перестают работать другие скрипты.
    Как видите, нет обработчика на кнопке поиска
    z4sBPJk.png
    Ответ написан