Rest Controller の Response として Request スコープ (プロトタイプ) Bean があり、 Exception を取得していますが、機能していません
エラーメッセージ「Type definition error: [simple type, class org.springframework.context.expression.StandardBeanExpressionResolver]; nested exception is com.fasterxml.jackson」で示唆されているように、プロパティファイルで spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false を試しました.databind.exc.InvalidDefinitionException: クラス org.springframework.context.expression.StandardBeanExpressionResolver のシリアライザーが見つからず、BeanSerializer を作成するためのプロパティが見つかりません (例外を回避するには、SerializationFeature.FAIL_ON_EMPTY_BEANS を無効にします) (参照チェーンを介して: com.epic.dcms.kyc .beans.MainResponse$$EnhancerBySpringCGLIB$$82085c99[\"targetSource\"]->org.springframework.aop.target.SimpleBeanTargetSource[\"beanFactory\"]->org.springframework.beans.factory.support.DefaultListableBeanFactory[\ "beanExpressionResolver\"])"、
機能しなかった場合、循環依存関係があり、例外がスローされました
@RequestScope アノテーションを @scope アノテーションに変更しても問題は解決しませんでした
この例外は、MainResponse が Response として使用された場合にのみ発生することに気付きました。
Bean
@RequestScope
@Component
public class MainResponse implements Serializable{
//fields and getters and setters
}
Controller class
@PostMapping("/uploadFile")
public MainResponse uploadFile(@RequestParam("file") MultipartFile file) throws FileStorageException {
String fileName = fileStorageService.storeFile(file);
response.putPayLoad(true,"fileName",fileName)
.putPayLoad("ContentType",file.getContentType())
.putPayLoad("size",file.getSize());
return response;
}
MainResponse Bean から @RequestScope を削除すると、正常に動作します。これを修正する方法はありますか??