
#programowanie #java #spring #springboot
Piszę sobie proste api w #springboot z użyciem #kotlin . Używam biblioteki SimpleXml do deserializacji XML. W kontrolerze restowym mam prosty kod który przetwarza XML. Mam test który przechodzi:
Kontroler wywala java.lang.NoClassDefFoundError: com/{...}/model/Marker
Jakies pomysly?
Piszę sobie proste api w #springboot z użyciem #kotlin . Używam biblioteki SimpleXml do deserializacji XML. W kontrolerze restowym mam prosty kod który przetwarza XML. Mam test który przechodzi:
@Test
fun wholeXmlTest(){
val xml = ClassPathResource(test.xml").file.readText()
val obj = serializer.read(Marker::class.java, xml)
Assert.assertNotSame(0, obj.country.city.placeList.size)
}
Kontroler wywala java.lang.NoClassDefFoundError: com/{...}/model/Marker
@GetMapping("/test2")
@ResponseBody
fun test2(): String {
val serializer = Persister()
val xml = ClassPathResource("test.xml").file.readText()
val marker = serializer.read(Marker::class.java, xml)
return marker.countryList.size.toString()
}
Jakies pomysly?
- Najlepsze
- Wszystkie komentarze







@nocneszczury: Być może klasa Marker zdefiniowana w źródłach testowych? A jeśli Marker jest z biblioteki to biblioteka dodana tylko jako zależność test? Ewentualnie klasa Marker jest obecna w momencie kompilacji ale nie jest dorzucana do classpath'a.
@nocneszczury: jesteś pewien że to jest ok?
I czy masz na pewno definicję klasy Marker? Bo to w sumie bardziej prawdopodobna przyczyna.
Komentarz usunięty przez autora
Komentarz usunięty przez autora
kontroler rest - {...}/RestController.kt
modele - {...}/model/Marker (klasa publiczna)
test - {...}/Test.kt
@mk321: Kotlin zamiast Javy dlatego że się przyjemniej pisze, poza tym ma fajne featury których nie ma w Javie ;)
Komentarz usunięty przez autora
@nocneszczury: @SuppressWarnings: np. ma funkcję niedziałania? ;) Jakbyś napisał prawilnie w Javie...
To samo z Gradlem. Robi więcej problemów niż Maven.
I dlaczego używasz jakiejś dzikiej biblioteki SimpleXml zamiast normalnego Jacksona?
Java+Maven+Jackson i masz masę tutoriali, które działają. Ale jak chcesz hipstersko... Pewnie jest problem z kolejnością ładowania zależności
Komentarz usunięty przez autora
@nocneszczury jakiś czas temu przepisywałem mój mały projekt monolitowego serwera na Kotlina, https://github.com/gosak/pfc-server/tree/develop jest tam sporo błędów ale może coś ciekawego wyciągniesz. Tylko wejdź na branch develop