https://kotlinlang.org logo
Docs
Join the conversationJoin Slack
Channels
100daysofcode
100daysofkotlin
100daysofkotlin-2021
advent-of-code
aem
ai
alexa
algeria
algolialibraries
amsterdam
android
android-architecture
android-databinding
android-studio
androidgithubprojects
androidthings
androidx
androidx-xprocessing
anime
anko
announcements
apollo-kotlin
appintro
arabic
argentina
arkenv
arksemdevteam
armenia
arrow
arrow-contributors
arrow-meta
ass
atlanta
atm17
atrium
austin
australia
austria
awesome-kotlin
ballast
bangladesh
barcelona
bayarea
bazel
beepiz-libraries
belgium
berlin
big-data
books
boston
brazil
brikk
budapest
build
build-tools
bulgaria
bydgoszcz
cambodia
canada
carrat
carrat-dev
carrat-feed
chicago
chile
china
chucker
cincinnati-user-group
cli
clikt
cloudfoundry
cn
cobalt
code-coverage
codeforces
codemash-precompiler
codereview
codingame
codingconventions
coimbatore
collaborations
colombia
colorado
communities
competitive-programming
competitivecoding
compiler
compose
compose-android
compose-desktop
compose-hiring
compose-ios
compose-mp
compose-ui-showcase
compose-wear
compose-web
connect-audit-events
corda
cork
coroutines
couchbase
coursera
croatia
cryptography
cscenter-course-2016
cucumber-bdd
cyprus
czech
dagger
data2viz
databinding
datascience
dckotlin
debugging
decompose
decouple
denmark
deprecated
detekt
detekt-hint
dev-core
dfw
docs-revamped
dokka
domain-driven-design
doodle
dsl
dublin
dutch
eap
eclipse
ecuador
edinburgh
education
effective-kotlin
effectivekotlin
emacs
embedded-kotlin
estatik
event21-community-content
events
exposed
failgood
fb-internal-demo
feed
firebase
flow
fluid-libraries
forkhandles
forum
fosdem
fp-in-kotlin
framework-elide
freenode
french
fritz2
fuchsia
functional
funktionale
gamedev
ge-kotlin
general-advice
georgia
geospatial
german-lang
getting-started
github-workflows-kt
glance
godot-kotlin
google-io
gradle
graphic
graphkool
graphql
graphql-kotlin
graviton-browser
greece
grpc
gsoc
gui
hackathons
hacktoberfest
hamburg
hamkrest
helios
helsinki
hexagon
hibernate
hikari-cp
hire-me
hiring
hongkong
hoplite
http4k
hungary
hyderabad
image-processing
india
indonesia
inkremental
intellij
intellij-plugins
intellij-tricks
internships
introduce-yourself
io
ios
iran
israel
istanbulcoders
italian
jackson-kotlin
jadx
japanese
jasync-sql
java-to-kotlin-refactoring
javadevelopers
javafx
javalin
javascript
jdbi
jhipster-kotlin
jobsworldwide
jpa
jshdq
juul-libraries
jvm-ir-backend-feedback
jxadapter
k2-early-adopters
kaal
kafka
kakao
kalasim
kapt
karachi
karg
karlsruhe
kash_shell
kaskade
kbuild
kdbc
kgen-doc-tools
kgraphql
kinta
klaxon
klock
kloudformation
kmdc
kmm-español
kmongo
knbt
knote
koalaql
koans
kobalt
kobweb
kodein
kodex
kohesive
koin
koin-dev
komapper
kondor-json
kong
kontent
kontributors
korau
korean
korge
korim
korio
korlibs
korte
kotest
kotest-contributors
kotless
kotlick
kotlin-asia
kotlin-beam
kotlin-by-example
kotlin-csv
kotlin-data-storage
kotlin-foundation
kotlin-fuel
kotlin-in-action
kotlin-inject
kotlin-latam
kotlin-logging
kotlin-multiplatform-contest
kotlin-mumbai
kotlin-native
kotlin-pakistan
kotlin-plugin
kotlin-pune
kotlin-roadmap
kotlin-samples
kotlin-sap
kotlin-serbia
kotlin-spark
kotlin-szeged
kotlin-website
kotlinacademy
kotlinbot
kotlinconf
kotlindl
kotlinforbeginners
kotlingforbeginners
kotlinlondon
kotlinmad
kotlinprogrammers
kotlinsu
kotlintest
kotlintest-devs
kotlintlv
kotlinultimatechallenge
kotlinx-datetime
kotlinx-files
kotlinx-html
kotrix
kotson
kovenant
kprompt
kraph
krawler
kroto-plus
ksp
ktcc
ktfmt
ktlint
ktor
ktp
kubed
kug-leads
kug-torino
kvision
kweb
lambdaworld_cadiz
lanark
language-evolution
language-proposals
latvia
leakcanary
leedskotlinusergroup
lets-have-fun
libgdx
libkgd
library-development
linkeddata
lithuania
london
losangeles
lottie
love
lychee
macedonia
machinelearningbawas
madrid
malaysia
mathematics
meetkotlin
memes
meta
metro-detroit
mexico
miami
micronaut
minnesota
minutest
mirror
mockk
moko
moldova
monsterpuzzle
montreal
moonbean
morocco
motionlayout
mpapt
mu
multiplatform
mumbai
munich
mvikotlin
mvrx
myndocs-oauth2-server
naming
navigation-architecture-component
nepal
new-mexico
new-zealand
newname
nigeria
nodejs
norway
npm-publish
nyc
oceania
ohio-kotlin-users
oldenburg
oolong
opensource
orbit-mvi
osgi
otpisani
package-search
pakistan
panamá
pattern-matching
pbandk
pdx
peru
philippines
phoenix
pinoy
pocketgitclient
polish
popkorn
portugal
practical-functional-programming
proguard
prozis-android-backup
pyhsikal
python
python-contributors
quasar
random
re
react
reaktive
realm
realworldkotlin
reductor
reduks
redux
redux-kotlin
refactoring-to-kotlin
reflect
refreshversions
reports
result
rethink
revolver
rhein-main
rocksdb
romania
room
rpi-pico
rsocket
russian
russian_feed
russian-kotlinasfirst
rx
rxjava
san-diego
science
scotland
scrcast
scrimage
script
scripting
seattle
serialization
server
sg-user-group
singapore
skia-wasm-interop-temp
skrape-it
slovak
snake
sofl-user-group
southafrica
spacemacs
spain
spanish
speaking
spek
spin
splitties
spotify-mobius
spring
spring-security
squarelibraries
stackoverflow
stacks
stayhungrystayfoolish
stdlib
stlouis
strife-discord-lib
strikt
students
stuttgart
sudan
swagger-gradle-codegen
swarm
sweden
swing
swiss-user-group
switzerland
talking-kotlin
tallinn
tampa
teamcity
tegal
tempe
tensorflow
terminal
test
testing
testtestest
texas
tgbotapi
thailand
tornadofx
touchlab-tools
training
tricity-kotlin-user-group
trójmiasto
truth
tunisia
turkey
turkiye
twitter-feed
uae
udacityindia
uk
ukrainian
uniflow
unkonf
uruguay
utah
uuid
vancouver
vankotlin
vertx
videos
vienna
vietnam
vim
vkug
vuejs
web-mpp
webassembly
webrtc
wimix_sentry
wwdc
zircon
Powered by Linen
ktor
  • h

    hawklike

    05/17/2022, 2:40 PM
    Hi, I have my Ktor server. I use the Ktor client to connect to another API in the Ktor server. The documentation says:
    After you finish working with the HTTP client, you need to free up the resources ... call
    client.close()
    Should I call the
    close()
    function in the Ktor server? And if so, where?
    a
    17 replies · 2 participants
  • o

    Okan Yıldırım

    05/17/2022, 5:32 PM
    Hello, can’t I use status pages for api calls? This is my code, when I go to a random route, I get the error of This page isn’t working. It is same for not authenticated pages In postman, it says <Response body is empty>
    a
    1 reply · 2 participants
  • x

    xxfast

    05/18/2022, 3:25 AM
    Hi all. Im trying to disable ssl for my ktor client. I've been following this stackoverflow post. However, my project is an multiplatform project, and i'm making use of the default engine to create my client in
    commonMain
    . Given that this ssl-disabling is slightly different for each engine, is there a way to do this neatly for each engine without having to `expect`/`actual` the whole engines for each platforms?
    m
    2 replies · 2 participants
  • j

    Jonathan Lennox

    05/18/2022, 5:45 PM
    Hi all, I'm trying to build ktor on macOS, and it's not building - it's failing in compilePosixMainKotlinMetadata, it looks like it can't find the kotlinx atomicfu and coroutines. Has anyone seen that?
    h
    a
    7 replies · 3 participants
  • s

    Sean Proctor

    05/18/2022, 9:18 PM
    Hi, I'm migrating a Ktor server from 1.6 to 2.0. The migration guide doesn't mention anything about the new interface to AuthenticationProvider. Can anyone point me to an example that has been migrated?
    :plus1: 2
    a
    5 replies · 2 participants
  • a

    Amaan

    05/20/2022, 1:20 AM
    If I want to host different apps/apis on different subdomains, how do I do that and test it locally? I tried doing the following:
    fun Application.configureRouting() {
        routing {
            host("localhost:8080") {
                home()
            }
            host("chat.localhost:8080") {
                chat()
            }
        }
    }
    but that doesn't seem to work when I test it on my browser.
    a
    2 replies · 2 participants
  • h

    Helio

    05/20/2022, 1:24 AM
    Hello Ktor team 👋🏽 , I’m about to complete the migration from Ktor 1 to 2 but I noticed some weird things in which I’m not sure if this is a behaviour change that I couldn’t find in the documentation, or if these could be indeed an issue. Both of the issues found were around the Unit/Integration tests.
    1 - Converting an URL to URI using
    io.ktor.http.Url
    throws an Exception
    java.net.URISyntaxException: Illegal character in query at index
    The snippet below works for
    Ktor 1.6.8
    , but it throws the exception for
    Ktor 2.0.1
    // The input parameters used for testing are:
    // baseUrl = <http://bbc-pipelines-build-info.integration.test:8082>
    // urlQueryParameters = build-info?workspace-id={5734a707-dc63-47a1-b63f-03e5d80efad5}
    
    private fun buildBuildInfoUrl(baseUrl: String, urlQueryParameters: String) =
        return Url("$baseUrl/$urlQueryParameters").toURI().toString()
    
    The response is:
    <http://bbc-pipelines-build-info.integration.test:8082/build-info?workspace-id=%7B5734a707-dc63-47a1-b63f-03e5d80efad5%7D>
    Exception thrown by
    Ktor 2.0.1
    java.net.URISyntaxException: Illegal character in query at index 78: <http://bbc-pipelines-build-info.integration.test:8082/build-info?workspace-id={5734a707-dc63-47a1-b63f-03e5d80efad5}>
    	at java.base/java.net.URI$Parser.fail(URI.java:2913)
    	at java.base/java.net.URI$Parser.checkChars(URI.java:3084)
    	at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3172)
    	at java.base/java.net.URI$Parser.parse(URI.java:3114)
    	at java.base/java.net.URI.<init>(URI.java:600)
    	at io.ktor.http.URLUtilsJvmKt.toURI(URLUtilsJvm.kt:54)
    2 - Even though I’m using the
    defaultRequest
    plugin with the HttpClient from my integration tests, when I set the following attributes
    host/port/protocol
    , during the request time the
    host
    is replaced from the value I gave with
    localhost
    .
    Looking through the snippet below in which I define my HttpClient I would assume that
    host
    used for the request should be
    bbc-pipelines-build-info.integration.test
    .
    fun buildClient(): HttpClient {
        val buildInfoUrl = URLBuilder("<http://bbc-pipelines-build-info.integration.test:8082>").build()
        return HttpClient(MockEngine) {
            install(ContentNegotiation) {
                json(Json {
                    isLenient = true
                    ignoreUnknownKeys = true
                    useArrayPolymorphism = true
                })
            }
            defaultRequest {
                url {
                    protocol = buildInfoUrl.protocol
                    port = buildInfoUrl.port
                    host = buildInfoUrl.host
                }
                header(HttpHeaderConstants.X_SLAUTH_EGRESS, true)
            }
            bbcPipelinesUrlHandler(buildInfoUrl)
        }
    }
    However, when I make the request with
    url {encodedPath = "build-info"}
    the request is done using the host as being
    localhost
    (see snippet below). When I replace the
    url { encodedPath = "build-info"}
    with
    buildInfoHttpClient.submitForm("build-info",...)
    instead of
    localhost
    , the request is sent to
    bbc-pipelines-build-info.integration.test
    host.
    suspend fun getBitbucketPipelineBuildInfo(
            workspaceId: String,
        ): BitbucketBuildInfoResponseModel = retrying {
            buildInfoHttpClient.submitForm(url {encodedPath = "build-info"}, formParameters = Parameters.build {
                append(BitbucketPipelineQueryParameters.WORKSPACE_ID.field, workspaceId)
            }, encodeInQuery = true).body()
        }
    Do you reckon you could provide an assistance for these 2 issues, please? Thanks heaps!
    p
    a
    12 replies · 3 participants
  • s

    Slackbot

    05/20/2022, 1:55 PM
    This message was deleted.
    a
    1 reply · 2 participants
  • h

    hafiedh

    05/20/2022, 3:16 PM
    is there any resource how to upload ktor to heroku with mongodb database?
    a
    1 reply · 2 participants
  • j

    jmfayard

    05/21/2022, 9:11 AM
    Hello friends, how do validate that a given field is not blank / has given length / matches some regex, ... do you have a validation library (annotation? DSL?) or do you roll your own thing?
    h
    a
    3 replies · 3 participants
  • j

    Jan

    05/21/2022, 10:41 PM
    I'm getting redirected from a website to my ktor server like that: http://localhost:3000/callback#somedata=somedata&amp;moredata=data Is it possible with ktor to read these things after the #?
    e
    b
    10 replies · 3 participants
  • d

    dany giguere

    05/23/2022, 2:59 PM
    I’m using Ktor 2 and JWT. I want to hash the password when a user creates an account. And then verify it when the user logs in. Which function/package should I user to hash passwords ?
    s
    l
    12 replies · 3 participants
  • j

    Jonathan Lennox

    05/23/2022, 6:48 PM
    Does ktor 2's
    testApplication
    work with kotest? I'm trying to use it but my tests are hanging.
    :yes: 1
    s
    11 replies · 2 participants
  • j

    Jonathan Lennox

    05/23/2022, 7:52 PM
    Another question - I'm porting code from ktor 1, and there's a unit test that tests that some code that uses ktor's HttpClient executes properly. Previously the request.body it would pass to the MockEngine would be of type
    TextContent
    , so the test could inspect it to make sure it had the right content. With ktor 2, however, the request.body is an
    OutputStreamContent
    - what's the best way for me to verify that its content is correct?
    h
    10 replies · 2 participants
  • r

    rrva

    05/24/2022, 5:56 AM
    ktor 2.x binary incompatible with ktor 1.x is a pain. I have dependencies which force me to stay on 1.x: https://github.com/awslabs/aws-sdk-kotlin/issues/480 Please don’t do the same for ktor 3.x
    j
    p
    2 replies · 3 participants
  • b

    benkuly

    05/24/2022, 12:38 PM
    When I add a ktor 2 client plugin with
    scope.requestPipeline.intercept(HttpRequestPipeline.Render)
    I get
    No request transformation found
    . Without
    intercept
    it works (json with content negotiation). Any idea why?
    a
    5 replies · 2 participants
  • r

    Robert Kempton

    05/24/2022, 6:22 PM
    Hello! I really like the idea of directory based routing, like how apache + php works. There you put files in a directory, and voila, routes defined. In addition to making it easy to define routes, finding routes based on a URL is really easy, you navigate to the file and you're done. I've created a plugin that provides package based routing for ktor. You provide a base package, and add classes in the base package. The package name and class name is used to determine the route path, and all you need to do is implement the KtorRoute interface. AFAIK, this package based routing has never been done before in any jvm language, so I'm sure it seems really weird. Here's the repo where the README has more info on usage https://github.com/snowbldr/ktor-pkg-router It's published to maven central, so is ready to use if you'd like to try it out. I hope you find this useful, and please let me know what you think, I'd be super interested in opinions on whether this is a good idea, a terrible idea, or if there's better ways to implement this.
    👍 1
    e
    10 replies · 2 participants
  • s

    Slackbot

    05/24/2022, 9:38 PM
    This message was deleted.
    e
    d
    2 replies · 3 participants
  • r

    Ryan Brink

    05/25/2022, 1:16 AM
    👋 can someone from the ktor team give any update on whether this ticket will be seeing any progress in the near future https://youtrack.jetbrains.com/issue/KTOR-774 I’m a solo dev who wrote a plugin for ktor 1 to do this https://github.com/bkbnio/kompendium V2 is really neat and route plugins are a huge feature for something like this, but doing a complete rewrite to support it is just too much for me at the moment. Is there any chance the Ktor team will be publishing their own 1 party plugin soon? I know the community really wants this feature
    a
    m
    +1
    4 replies · 4 participants
  • y

    ynsok

    05/25/2022, 6:13 AM
    Every time I’m doing a request I’m receiving a RESPONSE: 200 OK even if I have cache enabled. So the question is how can I be sure that the current response is from the cache?
    HttpClient {
        install(Logging) {
            level = <http://LogLevel.INFO|LogLevel.INFO>
        }
        install(HttpCache)
        install(JsonFeature) {
            serializer = KotlinxSerializer(json = get())
        }
    }
    client.get {
        url(url = BASE_URL)
        header(HttpHeaders.CacheControl, "only-if-cached")
    }
    a
    3 replies · 2 participants
  • r

    ribesg

    05/25/2022, 10:32 AM
    Why was this closed without being implemented? https://youtrack.jetbrains.com/issue/KTOR-316 I’m checking on this issue every few months so that we can get rid of our custom cors plugin, and I discover that the issue was just closed. I’m kinda angry.
    e
    r
    9 replies · 3 participants
  • j

    Joost Klitsie

    05/25/2022, 2:12 PM
    Hello hello! I was wondering, I have an app that has a KTOR client. There are many CRUD operations in the app and not really the ability to abstract it all away nicely, due to reified function calls within ktor library. I have for example an abstract base class which I want to have set/get/delete/update operations with the generic types I need. But within this base class, I cannot do:
    abstract class ApiDataSource<T>(private val httpClient: HttpClient) {
    
        fun update(value: T) {
            httpClient.put {
                setBody(value) // <-- T needs to be reified
            }
        }
    }
    As of course setBody needs to have a reified type. I was looking through the functions, and nowhere can I pass a type or kclass. Am I missing something? Also, a workaround would be to serialize the body myself (by passing the KSerializer in the constructor and Json and setBody with the serialized text), but would this be preferable? I rather serialize through using the ContentNegotiation plugin
    r
    3 replies · 2 participants
  • t

    Tianyu Zhu

    05/25/2022, 4:15 PM
    Is there an easy way to enforce a rate-limit on a Ktor client? e.g.
    HttpClient {
      install(RateLimit) {
        limit = 100.requestsPerSecond
      }
    }
    a
    1 reply · 2 participants
  • t

    Tolga ÇAĞLAYAN

    05/25/2022, 4:44 PM
    Hello to everyone. I want to authenticate firebase admin with ktor. I found examples for Ktor 1.6.8 but how can I do it in 2.0.1. Anyone have an idea about this? Thanks in advance
    a
    5 replies · 2 participants
  • s

    spierce7

    05/25/2022, 10:31 PM
    I realize this is a long shot, but does Ktor have any support for Unix Domain Sockets?
    a
    2 replies · 2 participants
  • k

    Kirillov Mikhail

    05/26/2022, 8:27 AM
    Hello everyone We use ktor 2.0.0 with Netty engine We process large tsv, tsv transmitted over http We represent http request body as Flow<ByteBuffer> How we read from channel
    fun ApplicationCall.receiveFlow(): Flow<ByteBuffer> = flow<ByteBuffer> {
    
        val channel = receiveChannel()
        try {
            while (true) {
                val buffer = ByteBuffer.allocate(4096)
                if (channel.readAvailable(buffer) == -1) {
                    break
                }
                buffer.flip()
                emit(buffer)
            }
        } catch (e: Exception) {
            log.error("URL: '${request.uri}' error reading body", e)
            throw e
        }
    }
    If server slowly process http request - we see increase direct byte buffers (non-heap), this buffers create netty for buffering request (buffers grows to 2 gb) I expected back pressure in ktor, but buffers are growing... I communicated with netty users - they recommend disable autoread at channel and use read() manually Does ktor support back pressure? If so, how enable it?
    b
    5 replies · 2 participants
  • j

    Jakub Gwóźdź

    05/26/2022, 10:29 AM
    Hi there. Docs for default JSON serialization say that “mode is not strict so extra json fields are ignored” but in fact deserialization fails on such unknown fields (ignoreUnknownKeys is set to false). Is this by default or a bug?
    a
    4 replies · 2 participants
  • m

    Muhammad Usman

    05/27/2022, 1:57 PM
    Hi, Can any one help me to get out of this problem. How can I detect where i have made a mistake , I was trying to configure SSL over Ktor . Thanks
    Exception in thread "main" java.security.UnrecoverableKeyException: Get Key failed: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
    	at java.base/sun.security.pkcs12.PKCS12KeyStore.engineGetKey(PKCS12KeyStore.java:457)
    	at java.base/sun.security.util.KeyStoreDelegator.engineGetKey(KeyStoreDelegator.java:90)
    	at java.base/java.security.KeyStore.getKey(KeyStore.java:1050)
    	at io.ktor.server.netty.NettyChannelInitializer.<init>(NettyChannelInitializer.kt:55)
    	at io.ktor.server.netty.NettyApplicationEngine.createBootstrap(NettyApplicationEngine.kt:145)
    	at io.ktor.server.netty.NettyApplicationEngine.access$createBootstrap(NettyApplicationEngine.kt:29)
    	at io.ktor.server.netty.NettyApplicationEngine$bootstraps$2.invoke(NettyApplicationEngine.kt:131)
    	at io.ktor.server.netty.NettyApplicationEngine$bootstraps$2.invoke(NettyApplicationEngine.kt:130)
    	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
    	at io.ktor.server.netty.NettyApplicationEngine.getBootstraps$ktor_server_netty(NettyApplicationEngine.kt:130)
    	at io.ktor.server.netty.NettyApplicationEngine.start(NettyApplicationEngine.kt:177)
    	at org.exime.ApplicationKt.main(Application.kt:30)
    	at org.exime.ApplicationKt.main(Application.kt)
    Caused by: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.
    	at java.base/com.sun.crypto.provider.CipherCore.unpad(CipherCore.java:977)
    	at java.base/com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:1058)
    	at java.base/com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:855)
    	at java.base/com.sun.crypto.provider.PKCS12PBECipherCore.implDoFinal(PKCS12PBECipherCore.java:408)
    	at java.base/com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndDESede.engineDoFinal(PKCS12PBECipherCore.java:440)
    	at java.base/javax.crypto.Cipher.doFinal(Cipher.java:2207)
    	at java.base/sun.security.pkcs12.PKCS12KeyStore.lambda$engineGetKey$0(PKCS12KeyStore.java:401)
    	at java.base/sun.security.pkcs12.PKCS12KeyStore$RetryWithZero.run(PKCS12KeyStore.java:291)
    	at java.base/sun.security.pkcs12.PKCS12KeyStore.engineGetKey(PKCS12KeyStore.java:395)
    	... 12 more
    
    Process finished with exit code 1
    p
    1 reply · 2 participants
  • j

    Julius

    05/27/2022, 2:53 PM
    Is there an example on how to do websockets with authentication on ktor 2.0.0 somewhere? 🙂 I'm using Firebase authentication in a custom plugin right now (it uses a Baerer Token), I'm currently assuming I have to do a http call first to establish session authentication?
    a
    15 replies · 2 participants
  • r

    robnik

    05/28/2022, 9:30 PM
    Running a ktor app, as described in the following link, does not seem to work for me. The problem is it does not properly run the
    processResources
    step, so if I update resources, I have to manually run the gradle task. Is this a bug in the IDE integration? https://ktor.io/docs/intellij-idea.html#run_app
    a
    5 replies · 2 participants
Powered by Linen
Title
r

robnik

05/28/2022, 9:30 PM
Running a ktor app, as described in the following link, does not seem to work for me. The problem is it does not properly run the
processResources
step, so if I update resources, I have to manually run the gradle task. Is this a bug in the IDE integration? https://ktor.io/docs/intellij-idea.html#run_app
a

Aleksei Tirman [JB]

05/30/2022, 9:17 AM
What do you mean by updating resources?
r

robnik

05/30/2022, 5:00 PM
I mean I edit an HTML file under src/jvmMain/resources.
a

Aleksei Tirman [JB]

05/30/2022, 5:28 PM
So do you have a multiplatform project and you made some modifications to the configuration of a generated project?
r

robnik

05/30/2022, 7:28 PM
Yes, it's a multiplatform project. Not sure if I changed anything. I could try starting a new project and copying in my source code, to see if that helps.
a

Aleksei Tirman [JB]

06/01/2022, 9:07 AM
I’ve asked that because the Ktor plugin for IDEA cannot create multiplatform projects yet.
View count: 2