jetty NoSuchFieldError: MAX_INACTIVE_MINUTES
3532 ワード
Jettyテストの場合、異常を報告するのは以下の通りです.
つまりStandardDescriptorProcessorクラスにMAX_がありませんINACTIVE_MINITESという属性.この属性はjetty-serverパッケージのAbstractSessionManagerクラスのこの属性を参照します.すなわち,依存するjetty-serverパケットの下にはこの属性がない.また、
NoSuchFieldErrorおよびNoSuchMethodErrorの多くはjarパッケージのバージョンが間違っているため、jetty関連jarパッケージを以下のように表示します.
jetty-webappとjetty-servletは異なるバージョンであることがわかります.私の依存にはjetty-serverパッケージがありません.少なくとも1つのパッケージがjetty-serverパッケージに依存しているに違いありません.jetty-webappはjetty-servletに依存し、jetty-servletはjetty-securityに依存し、jetty-securityはjetty-serverパッケージに依存し、jetty-server 9.3.7バージョンのAbstractSessionManagerにはMAX_INACTIVE_MINITESプロパティなので、jetty-webapp 9.3.8バージョンのStandardDescriptorProcessorクラスがこのプロパティを参照すると、この例外が報告されます.したがって、jetty-servletのバージョンを9.3.8またはjetty-webappのバージョンを9.3.7に変更するだけで、さらにバージョンを一致させることができます.次のように変更されました.
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0( Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jetty.webapp.IterativeDescriptorProcessor.visit(IterativeDescriptorProcessor.java:83)
at org.eclipse.jetty.webapp.IterativeDescriptorProcessor.process(IterativeDescriptorProcessor.java:70)
at org.eclipse.jetty.webapp.MetaData.resolve(MetaData.java:402 )
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1339)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:772)
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:263)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:517 )
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
at org.eclipse.jetty.server.Server.start( Server.java:405)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.Server.doStart(Server.java:372 )
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at soc.main.SocMain.main( SocMain.java:41)
Caused by: java.lang.NoSuchFieldError: MAX_INACTIVE_MINUTES
at org.eclipse.jetty.webapp.StandardDescriptorProcessor.visitSessionConfig(StandardDescriptorProcessor.java:653)
... 19 more
つまりStandardDescriptorProcessorクラスにMAX_がありませんINACTIVE_MINITESという属性.この属性はjetty-serverパッケージのAbstractSessionManagerクラスのこの属性を参照します.すなわち,依存するjetty-serverパケットの下にはこの属性がない.また、
NoSuchFieldErrorおよびNoSuchMethodErrorの多くはjarパッケージのバージョンが間違っているため、jetty関連jarパッケージを以下のように表示します.
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>9.3.8.v20160314</version>
</dependency>
……………………
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>9.3.7.v20160115</version>
</dependency>
jetty-webappとjetty-servletは異なるバージョンであることがわかります.私の依存にはjetty-serverパッケージがありません.少なくとも1つのパッケージがjetty-serverパッケージに依存しているに違いありません.jetty-webappはjetty-servletに依存し、jetty-servletはjetty-securityに依存し、jetty-securityはjetty-serverパッケージに依存し、jetty-server 9.3.7バージョンのAbstractSessionManagerにはMAX_INACTIVE_MINITESプロパティなので、jetty-webapp 9.3.8バージョンのStandardDescriptorProcessorクラスがこのプロパティを参照すると、この例外が報告されます.したがって、jetty-servletのバージョンを9.3.8またはjetty-webappのバージョンを9.3.7に変更するだけで、さらにバージョンを一致させることができます.次のように変更されました.
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>9.3.8.v20160314</version>
</dependency>
……………………
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>9.3.8.v20160314</version>
</dependency>