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.

4

1 回答 1

1

查看“netty-common-4.1.16.Final.jar”

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

我看到了这个资源:

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

这是使用 java8 编译器编译的。这似乎是不正确的——JAR 的其他类资源都不是使用 java8 编译的。

“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 )

相同的数据,例如“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 )

您可以尝试在删除该资源的情况下重新运行吗?(或者,重建为不使用 java8?)除非服务级别足够高(8.5.5.9 和更高),否则 IBM WebSphere 不会处理 java8 类。或者,尝试更高服务级别的 WebSphere。

于 2017-11-09T00:27:58.077 回答