线程 "Thread-6" kotlin.UninitializedPropertyAccessException 中的异常:lateinit 属性 尚未初始化
xception in thread "Thread-6" kotlin.UninitializedPropertyAccessException: lateinit property has not been initialized
大家好,我正在使用 Spring Boot 开发应用程序,尽管我在线程中初始化 JPA 存储库时遇到一些问题,生成以下错误
Exception in thread "Thread-6" kotlin.UninitializedPropertyAccessException: lateinit property contactTypeAudioPathRepository has not been initialized
at com.sopristec.sa_tas.controllers.ProvisioningController$createAudioWithAsync$executeP.run(ProvisioningController.kt:96)
at java.lang.Thread.run(Thread.java:748)
我正在使用@Autowired 来启动它,这就是函数的样子
@Autowired
private lateinit var contactTypeAudioPathRepository: ContactTypeAudioPathRepository
fun createAudioWithAsync(menuChoice: String, presentation: String) {
val executeP = Thread{
val message = "Press $menuChoice to save this phone number as $presentation. Or " +
"Press 9 to save as work number"
val commandVoice = mutableListOf<String>("python","pythonScript/main.py",message);
val buildAudio = ProcessBuilder(commandVoice).start()
val getPath = buildAudio.inputStream.bufferedReader().use { it.readText() }
if(getPath.isEmpty()){
println("A python script failed")
}
println(getPath.replace("\n","").replace("att_sas_pyttsx3/",""))
val fileName = getPath.replace("\n","")
contactTypeAudioPathRepository.save(ContactTypeAudioPath(0,fileName))
// Genera error --> contactTypeAudioPathRepository.add("mediaLink").subscribe()
}.start()
// executeP.start();
//contactTypeAudioPathRepository.add("mediaLink").subscribe()
}
这是存储库,正如您在 JPA 的 CrudRepository 中看到的那样
@Repository
interface ContactTypeAudioPathRepository : CrudRepository<ContactTypeAudioPath,Int> {
}
谢谢
您不需要使用 lateinit
来自动装配您的存储库
Spring 允许您使用构造函数注入
@Component
class ProvisioningController(private val repository:ContactTypeAudioPathRepository) {
fun createAudioWithAsync(menuChoice: String, presentation: String) {
....
}
}
大家好,我正在使用 Spring Boot 开发应用程序,尽管我在线程中初始化 JPA 存储库时遇到一些问题,生成以下错误
Exception in thread "Thread-6" kotlin.UninitializedPropertyAccessException: lateinit property contactTypeAudioPathRepository has not been initialized
at com.sopristec.sa_tas.controllers.ProvisioningController$createAudioWithAsync$executeP.run(ProvisioningController.kt:96)
at java.lang.Thread.run(Thread.java:748)
我正在使用@Autowired 来启动它,这就是函数的样子
@Autowired
private lateinit var contactTypeAudioPathRepository: ContactTypeAudioPathRepository
fun createAudioWithAsync(menuChoice: String, presentation: String) {
val executeP = Thread{
val message = "Press $menuChoice to save this phone number as $presentation. Or " +
"Press 9 to save as work number"
val commandVoice = mutableListOf<String>("python","pythonScript/main.py",message);
val buildAudio = ProcessBuilder(commandVoice).start()
val getPath = buildAudio.inputStream.bufferedReader().use { it.readText() }
if(getPath.isEmpty()){
println("A python script failed")
}
println(getPath.replace("\n","").replace("att_sas_pyttsx3/",""))
val fileName = getPath.replace("\n","")
contactTypeAudioPathRepository.save(ContactTypeAudioPath(0,fileName))
// Genera error --> contactTypeAudioPathRepository.add("mediaLink").subscribe()
}.start()
// executeP.start();
//contactTypeAudioPathRepository.add("mediaLink").subscribe()
}
这是存储库,正如您在 JPA 的 CrudRepository 中看到的那样
@Repository
interface ContactTypeAudioPathRepository : CrudRepository<ContactTypeAudioPath,Int> {
}
谢谢
您不需要使用 lateinit
来自动装配您的存储库
Spring 允许您使用构造函数注入
@Component
class ProvisioningController(private val repository:ContactTypeAudioPathRepository) {
fun createAudioWithAsync(menuChoice: String, presentation: String) {
....
}
}