RestTemplate показывает, что страница не найдена, но нет ошибок - PullRequest
0 голосов
/ 14 января 2019

EDITED

У меня проблема с моим приложением. Я использую Glassfish 4 и Java 8, потому что моя среда не может взять весну 5, поэтому я вместо этого использую Spring 4. Мне просто нужно несколько библиотек для доступа к API с другого сервера. Одной из функций является RestTemplate. Каждый раз, когда restTemplate.exchange срабатывает, он всегда выдает ошибку HTTP 500. Но не исключение на всех. Я знаю, что это ошибка HTTP 500, глядя на web.xml. Нет сообщения об исключении, даже я пытался добавить try-catch. Это происходит на моем производственном сервере, на моем сервере разработки, работает нормально. На моем ноутбуке все работает хорошо. Не могли бы вы помочь мне с этим?

Вот мой log4j

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.logger.org.hibernate=DEBUG, stdout
log4j.logger.com.opensymphony.xwork2=INFO,stdout
log4j.logger.org.apache.struts2=INFO,stdout
log4j.logger.uk.ltd.getahead.dwr=WARN, stdout
log4j.logger.freemarker.cache=INFO,stdout
log4j.logger.com.jwebs=DEBUG, stdout
log4j.logger.org.springframework=WARNING, stdout

log4j.appender.R.File=application.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.R=org.apache.log4j.RollingFileAppender

log4j.logger.com.opensymphony.xwork2.util.OgnlUtil=error
log4j.logger.com.opensymphony.xwork2.ognl.OgnlValueStack=error

Здесь я прилагаю свой код

        RestTemplate templatet = new RestTemplate();

        String url = "http:someurl";
        HttpHeaders headers = new HttpHeaders();
        headers.set("Some header to get", "get");
        headers.add("Some authorization", "authorization");
        headers.setContentType(MediaType.APPLICATION_JSON);
        HttpEntity<Object> request = new HttpEntity<Object>(headers);
        ResponseEntity<String> sapSecurity = templatet.exchange(url, HttpMethod.GET, request, String.class);

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 января 2019

решаемые

Похоже, в библиотеке произошел сбой. Ява читала ту же библиотеку, но другую версию. У меня есть spring.jar и spring-web.4.3.6-RELEASE.jar, поэтому он разбился и не показал никаких исключений. Единственный способ извлечь исключение - через сервлет. Вы можете увидеть следующий учебник по Tutorialspoint:

https://www.tutorialspoint.com/servlets/servlets-exception-handling.htm

0 голосов
/ 15 января 2019

Я предлагаю вам попробовать следующее, чтобы вы могли получить больше информации о том, что происходит на сервере, читая журналы.

try {
     ResponseEntity<String> sapSecurity = templatet.exchange(url, HttpMethod.GET, request, String.class);
} catch (Exception e) {
   e.printStackTrace();//this stackTrace should appear in the Glassfish log file
}

Кроме того, вам следует проверить, не блокирует ли ваше приложение какие-либо сетевые политики на сервере.

...