0

Am trying to use netty jars, as part of pushy library(https://github.com/relayrides/pushy) to send apple push notifications. It runs fine in my local tomcat. When I try to deploy the same on IBM WAS and start my server, it gives me the below exception.

com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl scanJAR unable to open input stream for resource io/netty/util/internal/shaded/org/jctools/queues/package-info.class in archive WEB-INF/lib/netty-common-4.1.16.Final.jar

Pls find below the versions am using.

WAS - 8.5.5 Java - 1.7 Netty - 4.1.16

Pls help me understand the cause for the issue and how to fix the same. Thanks.

csharpnewbie
  • 789
  • 2
  • 12
  • 33

1 Answers1

1

Looking at "netty-common-4.1.16.Final.jar" from

https://mvnrepository.com/artifact/io.netty/netty-common/4.1.16.Final

I'm seeing this resource:

netty-common-4.1.16.Final.jar/io/netty/util/internal/shaded/org/jctools/queues/package-info.class

That has been compiled using a java8 compiler. That seems incorrect -- none of the other class resources of the JAR are compiled using java8.

Data (internal reporting format) for "package-info":

/netty-common-4.1.16.Final.jar/io/netty/util/internal/shaded/org/jctools/queues/package-info.class
    interface synthetic io.netty.util.internal.shaded.org.jctools.queues.package-info
        extends java.lang.Object
        Version [ 0x34 0x00 ] ( J2SE 8 )

The same data, for example, for "Log4JLoggerFactory":

/netty-common-4.1.16.Final.jar/io/netty/util/internal/logging/Log4JLoggerFactory.class
    public io.netty.util.internal.logging.Log4JLoggerFactory
        extends io.netty.util.internal.logging.InternalLoggerFactory
        Version [ 0x32 0x00 ] ( J2SE 6.0 )
        [F] public static final INSTANCE : [ Lio/netty/util/internal/logging/InternalLoggerFactory; ]
        [M] public deprecated <init> : [ ()V ] ( void )
            @java.lang.Deprecated
        [M] public newInstance : [ (Ljava/lang/String;)Lio/netty/util/internal/logging/InternalLogger; ]
        [M] static <clinit> : [ ()V ] ( void )

Can you try rerunning with that one resource removed? (Or, rebuilt to not use java8?) IBM WebSphere won't process java8 classes unless at a high enough service level (8.5.5.9 and higher). Or, try on a higher service level of WebSphere.

Thomas Bitonti
  • 1,179
  • 7
  • 14