Ответы пользователя по тегу Java
  • Как сделать low_case ключи и значение приходящих json в java?

    это описано в
    https://www.baeldung.com/jackson-advanced-annotati...

    The @JsonNaming annotation is used to choose the naming strategies for properties in serialization, overriding the default. Using the value element, we can specify any strategy, including custom ones.
    Ответ написан
    Комментировать
  • Как создать метод из SQL запроса?

    то же самое почти что:

    ResultSet resultSet = statement.executeQuery("SELECT count(*) as cnt FROM customers WHERE name = 'Bob' AND purchase = 'bike'");
      resultSet.next(); // not first() with PGSL JDBC it is forward only cursor
      final int cnt = resultSet.getInt(1);   
      System.out.println("cnt: " + cnt);


    учтите что можно конечно исходный SQL запрос выполнит через JDBC но его синтаксис не является стандартным SQL это какое то постгрес расширение:

    String query = "SELECT count(*) <> 0 FROM accounts WHERE username = 'bob';";
                  System.out.println("Executing count query: " + query);
                  ResultSet resultSet = connection.createStatement().executeQuery(query);
                  resultSet.next();
                  final boolean status = resultSet.getBoolean(1);
                  System.out.println("status: " + status);
    Ответ написан
  • Как распарсить данную JSON строку?

    посмотрели код - ошибок не нашли. проблема была с импортированной org.json.jso.jar -
    Ответ написан
    Комментировать
  • Почему высвечивается ошибка и как ее исправить?

    синтаксис Java запрещает переназначать имя переменной, которая уже объявлена во внешней области действия
    у вас в цикле и в аргументе метода одинаковое имя переменной player
    Ответ написан
    Комментировать
  • Как сделать аутентификацию без использования html формы?

    добавляете 2 конфигурационных класса в которых описываете и внедряете безопасность

    package example.config;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
    import org.springframework.security.config.annotation.web.builders.HttpSecurity;
    import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
    import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
    
    @Configuration
    @EnableWebSecurity
    public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    
    	private final static String username = "admin";
    	private final static String password = "password";
    
    	@Autowired
    	private BasicAuthenticationPoint basicAuthenticationPoint;
    
    	@Override
    	protected void configure(HttpSecurity http) throws Exception {
    		http.csrf().disable();
    		http.authorizeRequests().antMatchers("/", "/api/**").permitAll()
    				.anyRequest().authenticated();
    		http.httpBasic().authenticationEntryPoint(basicAuthenticationPoint);
    	}
    
    	// https://spring.io/blog/2017/11/01/spring-security-5-0-0-rc1-released#password-storage-format
    	@Autowired
    	public void configureGlobal(AuthenticationManagerBuilder auth)
    			throws Exception {
    		auth.inMemoryAuthentication().withUser(username)
    				.password(String.format("{noop}%s", password)).roles("USER");
    	}
    
    }

    package example.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.security.core.AuthenticationException;
    import org.springframework.security.crypto.factory.PasswordEncoderFactories;
    import org.springframework.security.crypto.password.PasswordEncoder;
    import org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint;
    import org.springframework.stereotype.Component;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    @Component
    public class BasicAuthenticationPoint extends BasicAuthenticationEntryPoint {
    	private static final String realName = "user";
    
    	@Override
    	public void commence(HttpServletRequest request, HttpServletResponse response,
    			AuthenticationException e) throws IOException {
    		response.addHeader("WWW-Authenticate", "Basic realm=" + getRealmName());
    		response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
    
    		PrintWriter writer = response.getWriter();
    		writer.println("HTTP Status 401 - " + e.getMessage());
    
    	}
    
    	@Override
    	public void afterPropertiesSet() {
    		setRealmName(realName);
    		super.afterPropertiesSet();
    	}
    
    
    }


    после этого

    mvn -Dmaven.test.skip=true clean spring-boot:run
    curl --silent http://localhost:8080/
    HTTP Status 401 - Full authentication is required to access this resource

    curl --silent --user admin:wrong_password http://localhost:8080/employees

    HTTP Status 401 - Bad credentials
    curl -silent --user admin:password http://localhost:8080/employees

    HTTP Status 200 OK
    ...
    то что контроллер должен ответить


    пароль нешифрованный:
    Basic YWRtaW46cGFzc3dvcmQ=

    echo 'YWRtaW46cGFzc3dvcmQ=' | base64 -d -
    admin:password

    я это вот использую для стаб сервера на который некое другое приложение которое я например отлаживаю постит всякую всячину но например не всем должно быть разрешено
    Ответ написан
  • Изменить цвет краёв в JMenu?

    Ответ написан
    Комментировать
  • Как сделать редирект на сокет сервере?

    ваш сервер должен возвращать
    статус 301

    sendHeader("HTTP/1.1 301 Moved Permanently");
    или 302
    sendHeader("HTTP/1.1 302 Found");
    Ответ написан
    Комментировать
  • Какие способы для создания DSL есть в Java?

    avadakeda думаю вам надо сузить вопрос какой специфически DSL и для какой цели ищете а то слишком много чего можно ответить - информации овердофига, и гуглится легко
    Ответ написан
    Комментировать
  • Java работа с BufferedReader в чем ошибка?

    переменная пере-считывается до тех пор пока что-нибудь не будет введено:

    while (!questions.isEmpty()) {
    	String question = questions.pop();
    	System.out.println(question);
    	String line = null;
    	while (line == null || line.isEmpty())
    		line = bufferedReader.readLine();
    	answer.add(line);
    }
    Ответ написан
    Комментировать
  • Как исправить Non-body HTTP method cannot contain @Body?

    дело в том - у GET - запросов не бывает страниц
    - замените аннотацию метода
    на @Post("/update")или @Put("/update")
    Ответ написан
    Комментировать
  • Как сделать DTO с валидацией данных в Java Spring?

    у вас импорт неправильный был вместо
    import javax.validation.Valid;
    @RestController
    public class MainController
    {
        @PostMapping("/proxy/add")
        public void saveProxy(@Valid @RequestBody ProxyDto dto) {

    надо

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.validation.annotation.Validated;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestBody;
    @RestController
    @RequestMapping("/proxy")
    
    public class MainController
    {
    	@RequestMapping(value = "add", method = RequestMethod.POST)
    	public Map<String, Object> addBook(@Validated @RequestBody ProxyDto dto ) {
    ....
    и
    import javax.validation.constraints.NotNull;
    public class ProxyDto {
    
    	@NotNull(message = "idbn is missing")
    	@NotEmpty(message = "idbn is empty")
    
    
     private String proxy;


    в зависимости от версии фрамеворка скажкт типа

    {
      "timestamp": 1612029070201,
      "status": 400,
      "error": "Bad Request",
      "exception": "org.springframework.web.bind.MethodArgumentNotValidException",
      "errors": [
        {
          "codes": [
            "NotNull.book.isbn",
            "NotNull.isbn",
            "NotNull.java.lang.String",
            "NotNull"
          ],
          "arguments": [
            {
              "codes": [
                "book.isbn",
                "isbn"
              ],
              "arguments": null,
              "defaultMessage": "isbn",
              "code": "isbn"
            }
          ],
          "defaultMessage": "idbn is missing",
          "objectName": "book",
          "field": "isbn",
          "rejectedValue": null,
          "bindingFailure": false,
          "code": "NotNull"
        },
        {
          "codes": [
            "NotEmpty.book.isbn",
            "NotEmpty.isbn",
            "NotEmpty.java.lang.String",
            "NotEmpty"
          ],
          "arguments": [
            {
              "codes": [
                "book.isbn",
                "isbn"
              ],
              "arguments": null,
              "defaultMessage": "isbn",
              "code": "isbn"
            }
          ],
          "defaultMessage": "idbn is empty",
          "objectName": "book",
          "field": "isbn",
          "rejectedValue": null,
          "bindingFailure": false,
          "code": "NotEmpty"
        }
      ],
      "message": "Validation failed for object='book'. Error count: 2",
      "path": "/book/add"
    }
    Ответ написан
    Комментировать
  • Почему условия поиска забирает выводимый результат?

    потому что каждый вызов find()перемещает его с текущего на следующее совпадение :
    find the first, and then for each subsequent call to find() it will move to the next match.
    поэтому findдля while а в if обычто используется matches()
    Ответ написан
    Комментировать
  • Почему docker maven не видит папку?

    мавен справедливо ругается на отсутствие pom.xml в директории в которой вы его запускаете - на скриншоте видно что pom.xml там нет. создайте и заработает
    Ответ написан
    Комментировать
  • Как проверить, что данный элемент входит в enum?

    у класса Enum
    есть статический метод чтобы узнать это
    import java.lang.Enum;
    import java.lang.IllegalArgumentException;
    
    public class EvalEnum {
    	enum MyEnum {
    		One(1), Two(2), Three(3);
    
    		private int code;
    
    		MyEnum(int code) {
    			this.code = code;
    		}
    	}
    
    	public static void main(String[] args) {
    		System.out.println(
    				String.format("%s in MyEnum? %b", args[0], isPresent(args[0])));
    	}
    
    	private static boolean isPresent(String data) {
    
    		try {
    			Enum.valueOf(MyEnum.class, data);
    			return true;
    		} catch (IllegalArgumentException e) {
    			return false;
    		}
    	}
    }

    java EvalEnum One
    One in MyEnum? true
    
    java EvalEnum Zero
    Zero in MyEnum? false
    Ответ написан
    Комментировать
  • Ошибка при попытке получить текст JButton (java)?

    для того чтобы узнать текст кнопки читаете про
    Class java.awt.event.ActionEvent
    напр здесь
    https://courses.cs.washington.edu/courses/cse341/9...
    и
    делаете

    public void actionPerformed(ActionEvent e) {
        String name = ((JButton) e.getSource()).getText()
      }
    Ответ написан
    Комментировать
  • Как установить zulu на debian?

    trester после распаковки азула задайтеPATH и JAVA_HOME
    проверьте что все заработало и закрепите через alternatives

    update-alternatives(1)          dpkg utilities          update-alternatives(1)
    
    NAME
           update-alternatives  - maintain symbolic links determining default com‐
           mands


    на RHEL называется просто alternatives:

    update-alternatives(8) System manager's Manual
    
    NAME
           alternatives  - maintain symbolic links determining default commands
    Ответ написан
    Комментировать
  • Java. Почему цикл не воспринимает размер списка?

    Koshkasobaka для того чтобы инициализировать список фиксированной длины часто использутся
    что то вроде
    List<String> names = new ArrayList<>(
    				Arrays.asList(new String[] { "ильф", "петров" }));


    можно и подруному конечно но так помоему довольно удобено
    Ответ написан
    Комментировать
  • Selenium webDriver: StaleElementReferenceException. Как избавиться?

    сохранить спарсенные веб элементы и работать с ними после driver.quit нельзя
    обрабатывайте пока тепленькие

    когда обращаетесь по какому нибудь методу в нем имеется проверка что он все еше отрендерен
    браузером
    This essentially determines whether or not the element is still attached to the DOM.

    нет ? извиняйте -

    @throws StaleElementReferenceException If the element no
    * longer exists as initially defined
    Ответ написан
    8 комментариев
  • Почему не импортируются аннотации Spring Boot?

    Elzee у вас нету в main

    куска
    SpringApplication.run(SpringBootApplication.class, args);
    Ответ написан
    Комментировать
  • Получить результат работы метода и сохранить в переменную?

    kaleban наверное утилита tdes_ecb.exe пишет в stderr
    добавьте
    + " 2>&1"
    stdin.println("c:\\Users\\Serguei\\echoargstostderr.cmd " + serialNumber + " "
    				+ keyName + " " + formattedDate + " 2>&1");


    если поможет отметьте как решение пож-та

    и да вы когда копировали код вообще забыли читать что процесс печатает болезный

    это делается так
    StringBuffer processOutput = new StringBuffer();
    		while ((line = stdoutBufferedReader.readLine()) != null) {
    			processOutput.append(line);
    		}
    		StringBuffer processError = new StringBuffer();
    		while ((line = stderrBufferedReader.readLine()) != null) {
    			processError.append(line);
    		}
    		System.err.println("OUTPUT:" + processOutput.toString());
    		System.err.println("ERROR	:" + processError.toString());
    		int returnCode = process.waitFor();
    		String code = Integer.toString(returnCode);
    Ответ написан