[jboss-jira] [JBoss JIRA] (WFLY-11353) Classes for newer versions are not loaded from Multi-Release-JARs in WARs

Brian Stansberry (Jira) issues at jboss.org
Fri Jan 4 11:55:00 EST 2019


    [ https://issues.jboss.org/browse/WFLY-11353?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13678487#comment-13678487 ] 

Brian Stansberry commented on WFLY-11353:
-----------------------------------------

Our theory on this is that the JBoss VFS library is not handling MR jars properly.

A possible workaround (I confess I haven't tried it) is to package the MR jar in a JBoss Modules module in the $JBOSS_HOME/modules dir and add a dependency on the module to the war.

http://docs.wildfly.org/14/Developer_Guide.html#Class_Loading_in_WildFly describes how to add a dependency on a module, either via MANIFEST.mf (see 'Dependencies: Manifest Entries') or via the jboss-deployment-structure.xml descriptor (http://docs.wildfly.org/14/Developer_Guide.html#jboss-deployment-structure-file)

> Classes for newer versions are not loaded from Multi-Release-JARs in WARs
> -------------------------------------------------------------------------
>
>                 Key: WFLY-11353
>                 URL: https://issues.jboss.org/browse/WFLY-11353
>             Project: WildFly
>          Issue Type: Bug
>          Components: Class Loading
>    Affects Versions: 14.0.0.Final, 15.0.0.Final
>         Environment: Java 9+
>            Reporter: Daniel Schwering
>            Priority: Major
>         Attachments: buggywar.src.zip, buggywar.war, multireleaselib-0.0.1-SNAPSHOT.jar, multireleaselib-0.0.1-SNAPSHOT.jar, multireleaselib.src.zip, multireleaselib.src.zip
>
>
>  1
> down vote
> favorite
> Since Java 9 there are Multi-Release JARs ([MRJARS|https://openjdk.java.net/jeps/238]) that allow different classes for different Java versions to be included in one JAR file. I was surprised when a Wildfly 14 running on Java 11 executed Java-8-code in a JAR included in a WAR although the JAR was a MRJAR with code for Java 11. That JAR included as a dependency for a regular Java SE project is running different code depending on the running JRE, but when included in a WAR, the Java-11-code seems to be ignored.
> Is that expected behavior for a webserver, as Java EE 8 does not explicitly require Java 9 (which introduced MRJARs) but only Java 8?



--
This message was sent by Atlassian Jira
(v7.12.1#712002)


More information about the jboss-jira mailing list