You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
When testing OpenLiberty services in Java versions greater than 11, using @RESTClient-annotated classes in integration tests results in a failed test with the error message: "java.lang.IllegalArgumentException: my.package.MyService is not an interface". Re-running with Java11 results in a successful test.
To Reproduce
git clone https://github.com/OpenLiberty/guide-microshed-testing.git (Using this as a known-working project)
cd guide-microshed-testing/finish
mvn verify
Expected behavior
PersonServiceIT and ErrorPathIT complete without errors.
System information:
OS: macOS 12.1
Java Version: 17 (tested with 15 & 18 which show this same behavior as well)
MicroShed Testing Version: 0.9.1
Additional context
I'm not sure where I'd even begin debugging this since it really caught me by surprise. Any guidance or even just confirmation that this is indeed a bug would be helpful. Since it is working on Java11 I could fall back to that if nothing else.
For reference, here is the output of a failed run:
buzaan@buzaan ~/scratch/guide-microshed-testing/finish % git rev-parse HEAD
cda558a8cab1d2d2630b6d7463973862729a188a
buzaan@buzaan ~/scratch/guide-microshed-testing/finish % java -version
openjdk version "17.0.1" 2021-10-19
OpenJDK Runtime Environment (build 17.0.1+12-39)
OpenJDK 64-Bit Server VM (build 17.0.1+12-39, mixed mode, sharing)
buzaan@buzaan ~/scratch/guide-microshed-testing/finish % mvn verify
(...output....)
[INFO] --- maven-failsafe-plugin:2.22.0:integration-test (default) @ guide-microshed-testing ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running io.openliberty.guides.testing.PersonServiceIT
[INFO] Found application file at: /Users/buzaan/scratch/guide-microshed-testing/finish/target/guide-microshed-testing.war
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[INFO] Using ServerAdapter: org.testcontainers.containers.liberty.LibertyAdapter
[INFO] Using ApplicationEnvironment class: org.microshed.testing.testcontainers.config.TestcontainersConfiguration
[INFO] Starting 1 container(s) in parallel for class io.openliberty.guides.testing.PersonServiceIT
[INFO] localhost/testcontainers/dw5vlrv2adhpyddu:latest
[ApplicationContainer]
[INFO] ApplicationContainer[localhost/testcontainers/dw5vlrv2adhpyddu:latest] has exposed ports:
[INFO] 9080 --> 35221
[ApplicationContainer] Launching defaultServer (Open Liberty 22.0.0.11/wlp-1.0.70.cl221120221010-1540) on Eclipse OpenJ9 VM, version 1.8.0_345-b01 (en_US)
[ApplicationContainer] [AUDIT ] CWWKE0001I: The server defaultServer has been launched.
[ApplicationContainer] [AUDIT ] CWWKG0093A: Processing configuration drop-ins resource: /opt/ol/wlp/usr/servers/defaultServer/configDropins/defaults/keystore.xml
[ApplicationContainer] [AUDIT ] CWWKG0093A: Processing configuration drop-ins resource: /opt/ol/wlp/usr/servers/defaultServer/configDropins/defaults/open-default-port.xml
[ApplicationContainer] [AUDIT ] CWWKZ0058I: Monitoring dropins for applications.
[ApplicationContainer] [AUDIT ] CWWKT0016I: Web application available (default_host): http://ab727dc296fb:9080/health/
[ApplicationContainer] [ERROR ] CWWKZ0002E: An exception occurred while starting the application guide-microshed-testing. The exception message was: java.lang.UnsupportedClassVersionError: JVMCFRE199E bad major version 61.0 of class=io/openliberty/guides/testing/PersonServiceApp, the maximum supported major version is 52.0; offset=6
[ApplicationContainer] [AUDIT ] CWWKF0012I: The server installed the following features: [json-1.0, mpConfig-2.0, mpHealth-3.1, mpRestClient-2.0].
[ApplicationContainer] [AUDIT ] CWWKF0013I: The server removed the following features: [appClientSupport-1.0, appSecurity-2.0, appSecurity-3.0, batch-1.0, concurrent-1.0, distributedMap-1.0, ejb-3.2, ejbHome-3.2, ejbLite-3.2, ejbPersistentTimer-3.2, ejbRemote-3.2, j2eeManagement-1.1, jacc-1.5, jaspic-1.1, javaMail-1.6, javaee-8.0, jaxb-2.2, jaxws-2.2, jca-1.7, jcaInboundSecurity-1.0, jdbc-4.2, jms-2.0, jpa-2.2, jpaContainer-2.2, jsf-2.3, jsp-2.3, managedBeans-1.0, mdb-3.2, ssl-1.0, wasJmsClient-2.0, wasJmsSecurity-1.0, wasJmsServer-1.0, webProfile-8.0, websocket-1.1].
[ApplicationContainer] [AUDIT ] CWWKF0011I: The defaultServer server is ready to run a smarter planet. The defaultServer server started in 12.821 seconds.
[INFO] All containers started in 16955ms
[INFO] Building rest client for class io.openliberty.guides.testing.PersonService with base path: http://localhost:35221/guide-microshed-testing/ and providers: [class org.microshed.testing.jaxrs.JsonBProvider]
Nov 08, 2022 2:46:30 PM org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean createWithValues
SEVERE: java.lang.IllegalArgumentException : io.openliberty.guides.testing.PersonService is not an interface
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 18.151 s <<< FAILURE! - in io.openliberty.guides.testing.PersonServiceIT
[ERROR] io.openliberty.guides.testing.PersonServiceIT Time elapsed: 18.149 s <<< ERROR!
java.lang.IllegalArgumentException: io.openliberty.guides.testing.PersonService is not an interface
[INFO] Running io.openliberty.guides.testing.ErrorPathIT
[INFO] Using ApplicationEnvironment class: org.microshed.testing.testcontainers.config.TestcontainersConfiguration
[INFO] All containers started in 21ms
[INFO] Building rest client for class io.openliberty.guides.testing.PersonService with base path: http://localhost:35221/guide-microshed-testing/ and providers: [class org.microshed.testing.jaxrs.JsonBProvider]
Nov 08, 2022 2:46:30 PM org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean createWithValues
SEVERE: java.lang.IllegalArgumentException : io.openliberty.guides.testing.PersonService is not an interface
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.047 s <<< FAILURE! - in io.openliberty.guides.testing.ErrorPathIT
[ERROR] io.openliberty.guides.testing.ErrorPathIT Time elapsed: 0.047 s <<< ERROR!
java.lang.IllegalArgumentException: io.openliberty.guides.testing.PersonService is not an interface
[ApplicationContainer] [INFO]
[INFO] Results:
[INFO]
[ERROR] Errors:
[ERROR] ErrorPathIT » IllegalArgument io.openliberty.guides.testing.PersonService is n...
[ERROR] PersonServiceIT » IllegalArgument io.openliberty.guides.testing.PersonService ...
[INFO]
[ERROR] Tests run: 2, Failures: 0, Errors: 2, Skipped: 0
The text was updated successfully, but these errors were encountered:
Describe the bug
When testing OpenLiberty services in Java versions greater than 11, using
@RESTClient
-annotated classes in integration tests results in a failed test with the error message: "java.lang.IllegalArgumentException: my.package.MyService is not an interface". Re-running with Java11 results in a successful test.To Reproduce
git clone https://github.com/OpenLiberty/guide-microshed-testing.git
(Using this as a known-working project)cd guide-microshed-testing/finish
mvn verify
Expected behavior
PersonServiceIT and ErrorPathIT complete without errors.
System information:
Additional context
I'm not sure where I'd even begin debugging this since it really caught me by surprise. Any guidance or even just confirmation that this is indeed a bug would be helpful. Since it is working on Java11 I could fall back to that if nothing else.
For reference, here is the output of a failed run:
The text was updated successfully, but these errors were encountered: