Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. return getBody(request)
  2. .flatMap { body ->
  3. WebClient.builder()
  4. .baseUrl(path)
  5. .defaultCookies { x ->
  6. request.cookies()
  7. .forEach { (k, v) -> x[k] = v.map { it.value } }
  8. }
  9. .defaultHeaders { x ->
  10. request.headers().asHttpHeaders()
  11. .forEach { (k, v) -> x[k] = v }
  12. }
  13. .defaultUriVariables(request.queryParams())
  14. .build()
  15. .method(request.method() ?: HttpMethod.GET)
  16. .body(body)
  17. .exchange()
  18. }
  19.  
  20. private fun getBody(request: ServerRequest): Mono<BodyInserter<*, in ClientHttpRequest>> {
  21. return request.multipartData()
  22. .filter { it.isNotEmpty() }
  23. .map<BodyInserter<*, in ClientHttpRequest>> { multipart ->
  24. BodyInserters.fromMultipartData(multipart)
  25. }
  26. .switchIfEmpty(Mono.fromCallable {
  27. val body = request.bodyToMono(String::class.java)
  28. BodyInserters.fromPublisher(body, String::class.java)
  29. })
  30. }
  31.  
  32. @Configuration
  33. open class SwitcherMultipartConfigurer : WebFluxConfigurer {
  34.  
  35. override fun configureHttpMessageCodecs(configurer: ServerCodecConfigurer) {
  36. configurer.customCodecs().reader(
  37. MultipartHttpMessageReader(SynchronossPartHttpMessageReader())
  38. )
  39. configurer.customCodecs().writer(
  40. MultipartHttpMessageWriter(
  41.  
  42. )
  43. )
  44. }
  45. }
  46.  
  47. observed an error org.springframework.core.codec.CodecException: No suitable writer found for part: file
  48. | 2019-06-25T13:33:49.069006743Z at org.springframework.http.codec.multipart.MultipartHttpMessageWriter.encodePart(MultipartHttpMessageWriter.java:300)
  49. | 2019-06-25T13:33:49.069013261Z at org.springframework.http.codec.multipart.MultipartHttpMessageWriter.lambda$encodePartValues$4(MultipartHttpMessageWriter.java:253)
  50. | 2019-06-25T13:33:49.069018616Z at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
  51. | 2019-06-25T13:33:49.069023613Z at java.util.LinkedList$LLSpliterator.forEachRemaining(LinkedList.java:1235)
  52. | 2019-06-25T13:33:49.069028522Z at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
  53. | 2019-06-25T13:33:49.069033432Z at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
  54. | 2019-06-25T13:33:49.069038361Z at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
  55. | 2019-06-25T13:33:49.069043368Z at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
  56. | 2019-06-25T13:33:49.069048212Z at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
  57. | 2019-06-25T13:33:49.069053089Z at org.springframework.http.codec.multipart.MultipartHttpMessageWriter.encodePartValues(MultipartHttpMessageWriter.java:253)
  58. | 2019-06-25T13:33:49.069058115Z at org.springframework.http.codec.multipart.MultipartHttpMessageWriter.lambda$writeMultipart$3(MultipartHttpMessageWriter.java:234)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement