RestTemplate显示未找到页面但没有错误异常

时间:2019-01-14 01:19:09

标签: java spring glassfish resttemplate

已编辑

我的应用程序有问题。我使用的是glassfish 4和Java 8,因为我的环境无法使用Spring 5,所以我使用的是Spring 4。我只需要几个库即可从另一台服务器访问API。功能之一是RestTemplate。每次触发restTemplate.exchange时,总是会出现HTTP 500错误。但一点也不例外。通过查看web.xml,我知道这是HTTP 500错误。没有异常消息,即使我尝试添加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 :(得分:1)

已解决

好像库崩溃了。 Java读取相同的库,但版本不同。我有spring.jar和spring-web.4.3.6-RELEASE.jar,这就是为什么它崩溃且未显示任何异常的原因。提取异常的唯一方法是通过servlet。 您可以通过Tutorialspoint观看以下教程:

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

答案 1 :(得分:0)

我建议您尝试执行以下操作,以便通过阅读日志来获取有关服务器上正在发生的事情的更多信息。

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
}

此外,您应该检查服务器上的某种网络策略是否阻止了您的应用。