Исключение при запуске : java.lang.NoClassDefFoundError: it.geosolutions.imageio.утилиты.Возможности использования изображений

#java #image #docker #maven #javax.imageio

Вопрос:

Привет, я использую более старые версии imageio,

Вот подробная информация о зависимостях, которые я использую в pom.xml. Я загрузил все банки в nexus, который я использую в качестве менеджера репозитория,

 <dependency>
    <groupId>it.geosolutions.imageio-ext</groupId>
    <artifactId>imageio-ext-tiff</artifactId>
    <version>1.1.19</version>
</dependency>
<dependency>
    <groupId>javax.media</groupId>
    <artifactId>jai_imageio</artifactId>
    <version>1.1</version>
</dependency>

<dependency>
    <groupId>javax.media</groupId>
    <artifactId>jai_core</artifactId>
    <version>1.0</version>
</dependency>
<dependency>
    <groupId>javax.media</groupId>
    <artifactId>jai_codec</artifactId>
    <version>1.1.3</version>
</dependency>
<dependency>
    <groupId>javax.media</groupId>
    <artifactId>mlibwrapper_jai</artifactId>
    <version>1.1.3</version>
</dependency>
 

Все банки загружаются правильно, когда я выполняю сборку maven, а затем создание образа docker. Но когда я пытаюсь запустить контейнер, я получаю следующую ошибку в журналах.

 

2021-07-27 09:07:55.200:WARN:oejw.WebAppContext:main: Failed startup of context o.e.j.w.WebAppContext@7644fdbd{Cantaloupe,/,file:///tmp/jetty-0.0.0.0-9016-cantaloupe.war-_-any-2847888525028026762.dir/webapp/,UNAVAILABLE}{/cantaloupe.war}
java.lang.NoClassDefFoundError: it.geosolutions.imageio.utilities.ImageIOUtilities
        at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageWriterSpi.onRegistration(TIFFImageWriterSpi.java:145)
        at javax.imageio.spi.SubRegistry.registerServiceProvider(ServiceRegistry.java:731)
        at javax.imageio.spi.ServiceRegistry.registerServiceProvider(ServiceRegistry.java:310)
        at javax.imageio.spi.IIORegistry.registerApplicationClasspathSpis(IIORegistry.java:211)
        at javax.imageio.spi.IIORegistry.<init>(IIORegistry.java:138)
        at javax.imageio.spi.IIORegistry.getDefaultInstance(IIORegistry.java:159)
        at javax.imageio.ImageIO.<clinit>(ImageIO.java:66)
        at edu.illinois.library.cantaloupe.processor.codec.IIOProviderContextListener.contextInitialized(IIOProviderContextListener.java:59)
        at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:952)
        at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:558)
        at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:917)
        at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:370)
        at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1497)
        at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1459)
        at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:847)
        at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:287)
        at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:545)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
        at org.eclipse.jetty.server.Server.start(Server.java:416)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
        at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
        at org.eclipse.jetty.server.Server.doStart(Server.java:383)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at edu.illinois.library.cantaloupe.ApplicationServer.start(ApplicationServer.java:350)
        at edu.illinois.library.cantaloupe.StandaloneEntry.main(StandaloneEntry.java:97)
Caused by: 
java.lang.ClassNotFoundException: it.geosolutions.imageio.utilities.ImageIOUtilities
        at java.net.URLClassLoader.findClass(URLClassLoader.java:591)
        at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:951)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:896)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:879)
        at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:565)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:879)
        at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageWriterSpi.onRegistration(TIFFImageWriterSpi.java:145)
        at javax.imageio.spi.SubRegistry.registerServiceProvider(ServiceRegistry.java:731)
        at javax.imageio.spi.ServiceRegistry.registerServiceProvider(ServiceRegistry.java:310)
        at javax.imageio.spi.IIORegistry.registerApplicationClasspathSpis(IIORegistry.java:211)
        at javax.imageio.spi.IIORegistry.<init>(IIORegistry.java:138)
        at javax.imageio.spi.IIORegistry.getDefaultInstance(IIORegistry.java:159)
        at javax.imageio.ImageIO.<clinit>(ImageIO.java:66)
        at edu.illinois.library.cantaloupe.processor.codec.IIOProviderContextListener.contextInitialized(IIOProviderContextListener.java:59)
        at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:952)
        at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:558)
        at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:917)
        at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:370)
        at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1497)
        at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1459)
        at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:847)
        at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:287)
        at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:545)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:138)
        at org.eclipse.jetty.server.Server.start(Server.java:416)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:108)
        at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
        at org.eclipse.jetty.server.Server.doStart(Server.java:383)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at edu.illinois.library.cantaloupe.ApplicationServer.start(ApplicationServer.java:350)
        at edu.illinois.library.cantaloupe.StandaloneEntry.main(StandaloneEntry.java:97)
2021-07-27 09:07:55.212:INFO:oejs.AbstractConnector:main: Started ServerConnector@dbc5a1c2{HTTP/1.1,[http/1.1]}{0.0.0.0:9016}
2021-07-27 09:07:55.213:INFO:oejs.Server:main: Started @3188ms

 

Не делаю ли я что-то не так в этом процессе?

Комментарии:

1. запустите mvn dependency:tree и проверьте, существует ли зависимость.

2. Выяснилось, что отсутствует одна зависимость. Добавил imageio-ext-утилиты в мой nexus и использовал его с pom.xml. Это сработало. Спасибо за помощь @KarthikeyanVaithilingam! 🙂