Задать вопрос
  • Какой курс java выбрать?

    azerphoenix
    @azerphoenix Куратор тега Java
    Strannyk, согласен. И да, есть хорошие преподаватели там. Пару так точно знаю...
  • Какой курс java выбрать?

    azerphoenix
    @azerphoenix Куратор тега Java
    Strannyk, возможно. Вам виднее. В данном случае, коллега хочет научиться кодить и думаю, что там ему могут дать базовые знания.
  • Почему происходит данная ошибка?

    azerphoenix
    @azerphoenix Куратор тега Java
    Сергей Булатов,
    пробовали ли вы сменить версии jre? Попробуйте установить 8 или 11 Java.
    Также убедитесь в том, что вы выделяете нужное количество памяти для приложения.
    У меня был как-то случай в Spring, когда не хватало памяти и он не поднимался. В общем, стартанул только с 22 гб памяти.
  • Почему происходит данная ошибка?

    azerphoenix
    @azerphoenix Куратор тега Java
    Dmitry Roo, Сергей Булатов, представьте себе, я глянул на логи и вот, что нашел там:

    instanceKlass java/lang/StackOverflowError
    instanceKlass java/lang/OutOfMemoryError
    ciInstanceKlass java/lang/VirtualMachineError
    instanceKlass io/netty/util/internal/OutOfDirectMemoryError
    ciInstanceKlass java/lang/ArithmeticException
    ciInstanceKlass java/lang/NullPointerException
    ciInstanceKlass java/lang/IllegalMonitorStateException
    ciInstanceKlass java/lang/StackOverflowError
    ciInstanceKlass java/lang/ArrayStoreException
    ciInstanceKlass java/lang/NoClassDefFoundError
    ciInstanceKlass java/lang/ClassCastException
    ciInstanceKlass java/lang/ClassNotFoundException

    Впервые вижу, чтобы такой букет исключений выбрасывался)))
  • Как работает класс Calendar в этом коде?

    azerphoenix
    @azerphoenix Куратор тега Java
    blackCover, добрый вечер.

    Значение dt = 1615215600 является временной отметкой 8 марта 2021 год 15:00 и записывается в переменную timestamp, потом я подставляю в написанный Вами код

    А я понял вас. Думал, что dt у вас указано в миллисекундах. Тогда да, если время в секундах, то нужно умножить на 1000.

    Так какая сейчас проблема наблюдается на данный момент? Только разница во времени в 2 часа?
  • Как работает класс Calendar в этом коде?

    azerphoenix
    @azerphoenix Куратор тега Java
    public static void main(String[] args) throws IOException, InterruptedException {
        StringBuilder url = new StringBuilder()
            .append("https://community-open-weather-map.p.rapidapi.com/onecall/timemachine?lat=")
            .append("55.751244")
            .append("&lon=")
            .append("37.618423")
            .append("&dt=")
            .append(System.currentTimeMillis() / 1000);
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(url.toString()))
            .header("x-rapidapi-key", "ВАШ_АПИ_КЛЮЧ")
            .header("x-rapidapi-host", "community-open-weather-map.p.rapidapi.com")
            .method("GET", HttpRequest.BodyPublishers.noBody())
            .build();
        HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
      }


    Результат:
    {
      "lat": 55.7512,
      "lon": 37.6184,
      "timezone": "Europe/Moscow",
      "timezone_offset": 10800,
      "current": {
        "dt": 1615162831,
        "sunrise": 1615176186,
        "sunset": 1615216667,
        "temp": 266.17,
        "feels_like": 260.4,
        "pressure": 991,
        "humidity": 86,
        "dew_point": 264.44,
        "uvi": 1.37,
        "clouds": 75,
        "visibility": 10000,
        "wind_speed": 4,
        "wind_deg": 240,
        "weather": [
          {
            "id": 803,
            "main": "Clouds",
            "description": "broken clouds",
            "icon": "04n"
          }
        ]
      },
      "hourly": [
        {
          "dt": 1615161600,
          "temp": 266.17,
          "feels_like": 260.4,
          "pressure": 991,
          "humidity": 86,
          "dew_point": 264.44,
          "clouds": 75,
          "visibility": 10000,
          "wind_speed": 4,
          "wind_deg": 240,
          "weather": [
            {
              "id": 803,
              "main": "Clouds",
              "description": "broken clouds",
              "icon": "04n"
            }
          ]
        }
      ]
    }
  • Как работает класс Calendar в этом коде?

    azerphoenix
    @azerphoenix Куратор тега Java
    blackCover,
    Чтобы перевести секунды в миллисекунды нужно умножить на 1000.
    А чтобы миллисекунды в секунды разделить на 1000
    В общем, вам нужно миллисекунды конвертировать в секунды и совершить запрос.
    Подведу итог:
    - API принимает UTC время в секундах.
    - В Java вы получаете время в миллисекундах. А значит, нужно разделить timestamp на 1000 и получить кол-во секунд. А дальше уже совершить запрос на OpenWeatherMap
  • Как работает класс Calendar в этом коде?

    azerphoenix
    @azerphoenix Куратор тега Java
    blackCover,
    1 секунда - 1000 миллисекунд.
    х секунд - 1586468027 миллисекунд

    х = (1586468027 * 1) / 1000

    Т.е. чтобы перевести миллисекунды в секунды нужно разделить на 1000. А чтобы секунды в миллисекунды - умножить на 1000
  • Как работает класс Calendar в этом коде?

    azerphoenix
    @azerphoenix Куратор тега Java
    blackCover, метод принимает UTC время в секундах начиная с 1 января 1970 года. Вам нужно миллисекунды перевести в секунды. Отсюда некорректный вывод данных.
    Вот, выдержка из их АПИ:
    dt date from the 5 previous days (unix time, UTC time zone), e.g. dt=1586468027

    Также вам нужно настроить TimeZone.
    Вот, пример: https://stackoverflow.com/questions/27311333/java-...
  • Как вынести отдельное количества продукта с листа java?

    azerphoenix
    @azerphoenix Куратор тега Java
    White_Wolf_DD,
    Предположим, что вы сфорировали список товаров и отдали их на клиент.

    При её нажатии умножаются числа введёные в input на цену данного товар где лежит input. После чего, открывается новая страница с общей стоимостью всех выбранных товаров и выбранным количеством товара.

    Далее получается, что пользователь вводит в input определенное кол-во товара. Например, 2. И выбранное кол-во умножается на стоимость товара (допустим 2 х 100).
    Когда пользователь нажимает на кнопку "checkout" и запрос поступает на сервер, вам нужно сформировать заказ. Т.е. создайте сущность Order, где нужно сохранить id юзера, список товаров, а также общую стоимость и статус заказа. В момент создания заказа ему присвойте статус "unpaid".
    После принятия, общая сумма должна сняться с баланса покупателя и в history отметить, что он взял такой-то товар таким-то количеством.

    А после того, как юзер примет "оплатит" заказ, то присвойте ему статус paid.

    Но servlet не считывает, что находиться в input и выдаёт значение null

    Тут проблема может быть как на серверной стороне, так и на клиенте.
    С клиента, чтобы сфорировать заказ вам нужно отправить id купленных товаров, а также общую стоимость.
    Затем сформировать новый заказ и присвоить его авторизованному пользователю.
    Например, из клиента убегает некорректный запрос с пустым значением стоимости. Откройте консоль браузера и во вкладке "Сеть" (Network) посмотрите какой запрос убегает. Если убегает на сервер корректный запрос с нужными данными, то посмотрите на серверную часть, а именно, что приходит в сервлет.

    Если не получится, то залейте проект на гит и скиньте.
  • Зачем нужны типы данных byte и short в Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Vamp, большое спасибо! Прочитаю)
  • Как указывать параметр запроса "кириллицей" на OpenWeatherMap?

    azerphoenix
    @azerphoenix Куратор тега Java
    blackCover, что вы в данном случае подразумеваете под принципом? Можете загружать города по странам или в алфавитном порядке. Погуглите, в интернете есть готовые списки городов, которые можно получить по API
  • Зачем нужны типы данных byte и short в Java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Vamp, благодарю за замечание, но несовсем вас понял. А можно ли ссылку на первоисточник?
    Просто, вот, выдержка из документации Oracle
    https://docs.oracle.com/javase/specs/jvms/se6/html...

    The primitive data types supported by the Java virtual machine are the numeric types, the boolean type and the returnAddress type. The numeric types consist of the integral types and the floating-point types. The integral types are:
    - byte, whose values are 8-bit signed two's-complement integers
    - short, whose values are 16-bit signed two's-complement integers
    - int, whose values are 32-bit signed two's-complement integers
    - long, whose values are 64-bit signed two's-complement integers
    - char, whose values are 16-bit unsigned integers representing Unicode characters (§2.1)
    The floating-point types are:
    - float, whose values are elements of the float value set or, where supported, the float-extended-exponent value set
    - double, whose values are elements of the double value set or, where supported, the double-extended-exponent value set


    А вот еще выдержка из документации:
    The values of the integral types of the Java virtual machine are the same as those for the integral types of the Java programming language
    - For byte, from -128 to 127 (-27 to 27-1), inclusive
    - For short, from -32768 to 32767 (-215 to 215-1), inclusive
    - For int, from -2147483648 to 2147483647 (-231 to 231-1), inclusive
    - For long, from -9223372036854775808 to 9223372036854775807 (-263 to 263-1), inclusive
    - For char, from 0 to 65535 inclusive
  • Как обращаться к классу через интерфейс?

    azerphoenix
    @azerphoenix Куратор тега Java
    foonfyrick,
    IoC - Inversion of Control (инверсия управления). И условно можно разделить на 2 подтипа: DI (dependency injection) & DL (dependency lookup).
    В DI - объект не "заботиться" о том, какая зависимость должна быть внедрена. Вместо этого внешний механизм это обеспечивает.
    sergeyteplyakov.blogspot.com/2014/11/di-vs-dip-vs-...
    https://stackoverflow.com/questions/6550700/invers...
    https://javastudy.ru/interview/jee-spring-question...
  • Как указывать параметр запроса "кириллицей" на OpenWeatherMap?

    azerphoenix
    @azerphoenix Куратор тега Java
    blackCover,
    А в выпадающий список надо подгружать города со всего мира, или как?

    Ну да, вам нужно загрузить список всех стран.

    И он будет на латинице или кириллице?

    Если вы пишете приложение не только для постсоветского пространства, но и для Западной Европы, Америки и т.д., то вам нужно посмотреть в стороны i18n & l10n вашего приложения. Соответственно, язык будет тот, который пользователь выберет в настройках приложения. А переводы хранить в bundle.

    Но запросы на OpenWeatherMap будут убегать с англ. названиями городов
  • Как решить проблему с "Unable to create converter for class"?

    azerphoenix
    @azerphoenix Куратор тега Java
    blackCover,
    пользовательский ввод на андроид
    https://javapapers.com/android/get-user-input-in-a...

    Рекомендую создавать новые вопросы, вместо добавления комментариев.
  • Как настроить перенаправление с www на без www в yoast seo?

    ligisayan,
    прочитайте вот, эту статью. Она скорее всего поможет:
    https://dev.to/chanvin/utilize-nginx-to-fulfill-30...
    Www Redirect to Root Domain
    server {
      listen 443 ssl;
      server_name ~^(?<www>www\.)?(.+)$;
      if ( $www ) {
        return 301 https://$2$request_uri;
      }
    ...


    Redirect Http to Https
    server {
      listen 80;
      return 301 https://$host$request_uri;
    }

    Я просто, давно не пишу на ВП. Возможно, что есть более простые способы решения вопроса. А так например, на Java это прописывается в файлах конфигурации и настраиваются отдельные профиди для dev, preproduction, production и т.д.
  • Как решить проблему с "Unable to create converter for class"?

    azerphoenix
    @azerphoenix Куратор тега Java
    blackCover,

    А вот, так?
    import java.text.SimpleDateFormat;
    import java.time.Instant;
    import java.time.LocalDateTime;
    import java.time.ZoneId;
    import java.util.Date;
    
    public class DateFormatting {
    
      public static void main(String ... args) {
    
        // Example 1
        final long timeInMillis = 1324018752992l;
        final Date date = new Date(timeInMillis);
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        String format = sdf.format(date);
        System.out.println(format);
    
        // Example 2
        Instant instant = Instant.ofEpochMilli(timeInMillis);
        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.of("Europe/Moscow"));
        System.out.println(localDateTime);
      }
    
    }


    Тут в вашем коде:
    DateFormat df = DateFormat.getDateTimeInstance();
    String date = df.format(new Date(timestamp * 1000));

    timestamp на 1000 умножать не нужно, а то вот, такой вывод:
    27 июн. 43926 г., 6:56:32
    А должно быть:
    16 дек. 2011 г., 10:59:12
    Видимо, поэтому вы и получаете разницу по времени
  • С помощью чего открыть .jar плагин minecraft чтобы изменить его?

    azerphoenix
    @azerphoenix Куратор тега Java
    Rulon Oboevv, в данном случае я имел ввиду изучить ЯП - Java. Но немецкий тоже лишним не будет)