#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! 🙂