问题描述
我收到Java中的错误500 Internal Server Error
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transformToListClass': Invocation of init method failed; nested exception is java.lang.RuntimeException: org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error: [{"timestamp":"2020-08-20T20:48:50.993+0000","status":500,"error":"Internal Server Error","message":"Request processing failed; nested exception is java.lang.Exception: java.lang.RuntimeException: error while fopping..","path":"/v1/en/E_TEMPLATE"}]
Caused by: java.lang.RuntimeException: org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error: [{"timestamp":"2020-08-20T20:48:50.993+0000","path":"/v1/en/E_TEMPLATE"}]
Caused by: org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error: [{"timestamp":"2020-08-20T20:48:50.993+0000","path":"/v1/en/E_TEMPLATE"}]
我已经打开了两个spring应用程序,一个在端口8080
上运行,另一个在端口8013
上运行。
我正在从端口8080
到端口8013
发出如下发布请求:
我也在使用restTemplate标头中嵌入的基本身份验证
public ImageDescriptor generateImage(String payLoad,String templateName) {
try {
ImageDescriptor descriptor = new ImageDescriptor();
String MEl = "http://localhost:8013/v1/en";
String eURL = MEL.concat(Constant.F_SLASH).concat(templateName);
log.info("payload" + payLoad);
ResponseEntity<Resource> responseEntity = restTemplate.exchange(
eURL,HttpMethod.POST,ncbiService.getStringHttpEntityWithPayload(payLoad),Resource.class);
log.info(String.format("%s generateImage Result: [%s] ",responseEntity.getBody().getInputStream()));
descriptor.setInputStream(Objects.requireNonNull(responseEntity.getBody()).getInputStream());
convert(responseEntity.getBody().getInputStream(),"sherrr.pdf");
log.info("file is:"+ convert(responseEntity.getBody().getInputStream(),"sherrr.pdf"));
return descriptor;
} catch (IOException e) {
e.printStackTrace();
log.error(" generate image failed " + e.getMessage());
throw new RuntimeException(e);
}
}
下面是端口8013中的服务,我正在端口8080中调用它:
@RestController()
@RequestMapping("/v1/e")
public class EcrionController {
@Autowired
private FOPService fopService;
@PostMapping(path = "{documentType}",consumes = "application/json",produces = "application/json")
public ResponseEntity<InputStreamResource> createDocument(@PathVariable DocType documentType,@RequestBody String payload) throws Exception {
InputStream inputStream = null;
try {
LOGGER.info(String.format("Document Type: ",documentType.toString()));
LOGGER.info(String.format("PayLoad : %s",payload));
inputStream = fopService.doFOP(payload,documentType);
InputStreamResource streamResource = new InputStreamResource(inputStream);
return ResponseEntity.ok()
.contentType(MediaType.parseMediaType(MediaType.APPLICATION_PDF_VALUE))
.body(streamResource);
} catch (Exception ex) {
LOGGER.error("Error",ex);
throw new Exception(ex);
}
}
端口8013中的安全服务如下
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Value("${spring.security.user.name}")
private String username;
@Value("${spring.security.user.password}")
private String password;
@Value("${spring.security.user.roles}")
private String roles;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests().anyRequest().authenticated()
.and()
.httpBasic();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser(username)
.password(passwordEncoder().encode(password))
.roles(roles);
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
如何摆脱Java中的500 Internal Server Error?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)