Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DeploymentException: Mixing RESTEasy Reactive and RESTEasy Classic server parts is not supported #37316

Closed
daloji opened this issue Nov 25, 2023 · 10 comments
Labels

Comments

@daloji
Copy link

daloji commented Nov 25, 2023

Describe the bug

Hello
I'm trying to upgrade our quarkus version (3.2.9 -> 3.5) but I have a problem.
[ERROR] [error]: Build step io.quarkus.resteasy.reactive.common.deployment.ResteasyReactiveCommonProcessor#checkMixingStacks threw an exception: jakarta.enterprise.inject.spi.DeploymentException: Mixing RESTEasy Reactive and RESTEasy Classic server parts is not supported

we have migrated our lib ReastEasy-classic to RestEasy Reactive

 <dependency>
 <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy-reactive</artifactId>
    </dependency>
 <dependency>
      <groupId>io.quarkus</groupId>
      <artifactId>quarkus-resteasy-reactive-jsonb</artifactId>
    </dependency>
 <dependency>
<dependency>
      <groupId>org.jboss.resteasy</groupId>
      <artifactId>resteasy-multipart-provider</artifactId>
    </dependency> 

I think the issue is from resteasy-multipart-provider I haven't found an Reactive equivalent

Expected behavior

support upgrading 3.2.9 to 3.5 with resteasy-multipart-provider dependency

Actual behavior

[error]: Build step io.quarkus.resteasy.reactive.common.deployment.ResteasyReactiveCommonProcessor#checkMixingStacks threw an exception: jakarta.enterprise.inject.spi.DeploymentException: Mixing RESTEasy Reactive and RESTEasy Classic server parts is not supported at io.quarkus.resteasy.reactive.common.deployment.ResteasyReactiveCommonProcessor.checkMixingStacks(ResteasyReactiveCommonProcessor.java:107) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:578) at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:849) at io.quarkus.builder.BuildContext.run(BuildContext.java:282) at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18) at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513) at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538) at java.base/java.lang.Thread.run(Thread.java:1589) at org.jboss.threads.JBossThread.run(JBossThread.java:501)

How to Reproduce?

you can reproduce with this repository
https://github.com/daloji/Mixing-RESTEasy-Reactive-and-RESTEasy-Classic-server-parts-is-not-supported

Output of uname -a or ver

6.2.0-37-generic #38~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 2 18:01:13 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

Output of java -version

openjdk version "19" 2022-09-20 OpenJDK Runtime Environment (build 19+36-2238) OpenJDK 64-Bit Server VM (build 19+36-2238, mixed mode, sharing)

Quarkus version or git rev

3.5

Build tool (ie. output of mvnw --version or gradlew --version)

pache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0) Maven home: /opt/apache-maven-3.8.5 Java version: 19, vendor: Oracle Corporation, runtime: /opt/jdk-19 Default locale: fr_FR, platform encoding: UTF-8 OS name: "linux", version: "6.2.0-37-generic", arch: "amd64", family: "unix"

Additional information

No response

@daloji daloji added the kind/bug Something isn't working label Nov 25, 2023
@mschorsch
Copy link
Contributor

@daloji
Copy link
Author

daloji commented Nov 25, 2023

@daloji See here https://stackoverflow.com/questions/67675566/quarkus-reasteasy-reactive-with-multipart-extension

yes but we use resteasy-multipart-provider not quarkus-resteasy-multipart

@gsmet
Copy link
Member

gsmet commented Nov 25, 2023

@daloji It's exactly the same issue. resteasy-multipart-provider is part of RESTEasy Classic and you are using RESTEasy Reactive so this is not a supported combination.
We used to not complain about it but now we complain loudly as it can lead to unexpected behavior.

You should use the multipart support of RESTEasy Reactive and report back if you encounter issues.

@yrodiere yrodiere changed the title cannot upgrade to Quarkus 3.5 DeploymentException: Mixing RESTEasy Reactive and RESTEasy Classic server parts is not supported Nov 27, 2023
Copy link

quarkus-bot bot commented Nov 27, 2023

/cc @FroMage (resteasy-reactive), @geoand (resteasy-reactive), @stuartwdouglas (resteasy-reactive)

@yrodiere yrodiere added the triage/needs-feedback We are waiting for feedback. label Nov 27, 2023
@geoand
Copy link
Contributor

geoand commented Nov 28, 2023

@luca-bassoricci
Copy link
Contributor

#36780 (comment)

@daloji
Copy link
Author

daloji commented Nov 28, 2023

@geoand

yes

@geoand
Copy link
Contributor

geoand commented Nov 28, 2023

As mentioned in the chat, RESTEasy Reactive already comes with multipart support.

@geoand geoand closed this as completed Nov 28, 2023
@geoand geoand added kind/question Further information is requested and removed kind/bug Something isn't working triage/needs-feedback We are waiting for feedback. labels Nov 28, 2023
@luca-bassoricci
Copy link
Contributor

#36780 (comment)

@geoand I'm sorry to bother you for a closed topic, but with quarkus multipart support I lost the possibility to send a generic multipart form via RR client; which is the right way to intercept a generic form on server side and send this form to a RR client?

thanks
Luca

@gsmet
Copy link
Member

gsmet commented Nov 29, 2023

@luca-bassoricci If I were you, I would create a small project showing what you achieved with RESTEasy Classic and can't with the Reactive one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants