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

RestTemplate shows page not found but no error exception

已编辑

我的申请有问题。我使用的是 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);

谢谢

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

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
}

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

已解决

图书馆似乎出了问题。 Java 读取相同的库但不同的版本。我有 spring.jar 和 spring-web.4.3.6-RELEASE.jar,这就是它崩溃并且没有显示任何异常的原因。提取异常的唯一方法是通过 servlet。 您可以查看Tutorialspoint的以下教程:

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