[Geoserver-users] Geoserver and Java 9

Hi,

While upgrading to Windows 10 I installed also Java 9 from http://download.java.net/java/jdk9/archive/116/binaries/jre-9-ea+116_windows-x64_bin.exe

Geoserver does not start. I wonder how big a workload it will mean to make Geoserver to run on jre9 when the time comes.

This is the console log:

Welcome to GeoServer!

JAVA_HOME: C:\Program Files\Java\jre-9

Please wait while loading GeoServer...

WARNING: Module not found [ssl]
2016-05-04 19:01:07.020:INFO::main: Logging initialized @1245ms
2016-05-04 19:01:07.285:INFO:oejs.Server:main: jetty-9.2.13.v20150730
2016-05-04 19:01:07.307:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/C:/ohjelmat/geoserver-2.9-RC1/webapps/] at interval 1
2016-05-04 19:01:16.106:INFO:oejw.StandardDescriptorProcessor:main: NO JSP Support for /geoserver, did not find org.eclipse.jetty.jsp.JettyJspServlet
2016-05-04 19:01:17.727:WARN:oejw.WebAppContext:main: Failed startup of context o.e.j.w.WebAppContext@anonymised.com{/geoserver,file:/C:/ohjelmat/geoserver-2.9-RC1/webapps/geoserver/,STARTING}{C:\ohjelmat\geoserver-2.9-RC1\webapps\geoserver}
java.lang.IllegalArgumentException: org.geotools.coverage.grid.GridCoverageFactory is not an ImageIO SPI class
        at javax.imageio.spi.ServiceRegistry.checkClassAllowed(java.desktop@anonymised.com/ServiceRegistry.java:733)
        at javax.imageio.spi.ServiceRegistry.<init>(java.desktop@anonymised.com/ServiceRegistry.java:138)
        at org.geotools.factory.FactoryRegistry.<init>(FactoryRegistry.java:155)
        at org.geotools.factory.FactoryCreator.<init>(FactoryCreator.java:91)
        at org.geotools.coverage.CoverageFactoryFinder.getServiceRegistry(CoverageFactoryFinder.java:63)
        at org.geotools.coverage.CoverageFactoryFinder.getGridCoverageFactory(CoverageFactoryFinder.java:93)
        at org.geoserver.GeoserverInitStartupListener.contextInitialized(GeoserverInitStartupListener.java:171)
        at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:800)
        at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:444)
        at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:791)
        at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:294)
        at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
        at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
        at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
        at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:41)
        at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:186)
        at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:498)
        at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:146)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:180)
        at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:440)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:64)
        at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:609)
        at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:528)
        at org.eclipse.jetty.util.Scanner.scan(Scanner.java:391)
        at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:313)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:150)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:560)
        at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:235)
        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:387)
        at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
        at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
        at org.eclipse.jetty.server.Server.doStart(Server.java:354)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1255)
        at java.security.AccessController.doPrivileged(java.base@anonymised.com/Native Method)
        at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1174)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@...7578.../Native Method)
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@anonymised.com..7578.../NativeMethodAccessorImpl.java:62)
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@anonymised.com/DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(java.base@anonymised.com/Method.java:531)
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:321)
        at org.eclipse.jetty.start.Main.start(Main.java:817)
        at org.eclipse.jetty.start.Main.main(Main.java:112)
2016-05-04 19:01:17.955:INFO:oejs.ServerConnector:main: Started ServerConnector@anonymised.com{HTTP/1.1}{0.0.0.0:8080}
2016-05-04 19:01:17.960:INFO:oejs.Server:main: Started @12186ms

-Jukka Rahkonen-

On Wed, May 4, 2016 at 6:13 PM, Rahkonen Jukka (MML) <
jukka.rahkonen@anonymised.com> wrote:

Hi,

While upgrading to Windows 10 I installed also Java 9 from
http://download.java.net/java/jdk9/archive/116/binaries/jre-9-ea+116_windows-x64_bin.exe

Geoserver does not start. I wonder how big a workload it will mean to make
Geoserver to run on jre9 when the time comes.

The issue is known, java 9 pulled away the API we use for the GeoTools
plugin system (not sure what will happen to JAI either...).
There's a beginning of the work here, but it cannot be merged because some
code has been copy/pasted, we need clean
implementations instead:
https://github.com/geotools/geotools/pull/1064

Long story short, it's going to require some effort (not fully trivial
unfortunately)

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------

See https://osgeo-org.atlassian.net/browse/GEOT-5289 for the discussion, there was a good pull request on this one: https://github.com/geotools/geotools/pull/1064

While this request avoid license trouble (by using reflection rather than copy&paste coding) to access a hidden map class - I would like to our own map and not borrow any incompatibility trouble.

This work has been delayed while waiting for master to be available.

···

On 4 May 2016 at 12:13, Rahkonen Jukka (MML) <jukka.rahkonen@anonymised.com> wrote:

Hi,

While upgrading to Windows 10 I installed also Java 9 from http://download.java.net/java/jdk9/archive/116/binaries/jre-9-ea+116_windows-x64_bin.exe

Geoserver does not start. I wonder how big a workload it will mean to make Geoserver to run on jre9 when the time comes.

This is the console log:

Welcome to GeoServer!

JAVA_HOME: C:\Program Files\Java\jre-9

Please wait while loading GeoServer…

WARNING: Module not found [ssl]
2016-05-04 19:01:07.020:INFO::main: Logging initialized @1245ms
2016-05-04 19:01:07.285:INFO:oejs.Server:main: jetty-9.2.13.v20150730
2016-05-04 19:01:07.307:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/C:/ohjelmat/geoserver-2.9-RC1/webapps/] at interval 1
2016-05-04 19:01:16.106:INFO:oejw.StandardDescriptorProcessor:main: NO JSP Support for /geoserver, did not find org.eclipse.jetty.jsp.JettyJspServlet
2016-05-04 19:01:17.727:WARN:oejw.WebAppContext:main: Failed startup of context o.e.j.w.WebAppContext@anonymised.com{/geoserver,file:/C:/ohjelmat/geoserver-2.9-RC1/webapps/geoserver/,STARTING}{C:\ohjelmat\geoserver-2.9-RC1\webapps\geoserver}
java.lang.IllegalArgumentException: org.geotools.coverage.grid.GridCoverageFactory is not an ImageIO SPI class
at javax.imageio.spi.ServiceRegistry.checkClassAllowed(java.desktop@anonymised.com/ServiceRegistry.java:733)
at javax.imageio.spi.ServiceRegistry.(java.desktop@anonymised.com/ServiceRegistry.java:138)
at org.geotools.factory.FactoryRegistry.(FactoryRegistry.java:155)
at org.geotools.factory.FactoryCreator.(FactoryCreator.java:91)
at org.geotools.coverage.CoverageFactoryFinder.getServiceRegistry(CoverageFactoryFinder.java:63)
at org.geotools.coverage.CoverageFactoryFinder.getGridCoverageFactory(CoverageFactoryFinder.java:93)
at org.geoserver.GeoserverInitStartupListener.contextInitialized(GeoserverInitStartupListener.java:171)
at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:800)
at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:444)
at org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:791)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:294)
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.deploy.bindings.StandardStarter.processBinding(StandardStarter.java:41)
at org.eclipse.jetty.deploy.AppLifeCycle.runBindings(AppLifeCycle.java:186)
at org.eclipse.jetty.deploy.DeploymentManager.requestAppGoal(DeploymentManager.java:498)
at org.eclipse.jetty.deploy.DeploymentManager.addApp(DeploymentManager.java:146)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.fileAdded(ScanningAppProvider.java:180)
at org.eclipse.jetty.deploy.providers.WebAppProvider.fileAdded(WebAppProvider.java:440)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider$1.fileAdded(ScanningAppProvider.java:64)
at org.eclipse.jetty.util.Scanner.reportAddition(Scanner.java:609)
at org.eclipse.jetty.util.Scanner.reportDifferences(Scanner.java:528)
at org.eclipse.jetty.util.Scanner.scan(Scanner.java:391)
at org.eclipse.jetty.util.Scanner.doStart(Scanner.java:313)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.deploy.providers.ScanningAppProvider.doStart(ScanningAppProvider.java:150)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.deploy.DeploymentManager.startAppProvider(DeploymentManager.java:560)
at org.eclipse.jetty.deploy.DeploymentManager.doStart(DeploymentManager.java:235)
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:387)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
at org.eclipse.jetty.server.Server.doStart(Server.java:354)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1255)
at java.security.AccessController.doPrivileged(java.base@anonymised.com/Native Method)
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1174)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@anonymised.com/Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@anonymised.com/NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@anonymised.com/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@anonymised.com.7578…/Method.java:531)
at org.eclipse.jetty.start.Main.invokeMain(Main.java:321)
at org.eclipse.jetty.start.Main.start(Main.java:817)
at org.eclipse.jetty.start.Main.main(Main.java:112)
2016-05-04 19:01:17.955:INFO:oejs.ServerConnector:main: Started ServerConnector@anonymised.com{HTTP/1.1}{0.0.0.0:8080}
2016-05-04 19:01:17.960:INFO:oejs.Server:main: Started @12186ms

-Jukka Rahkonen-

Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z


Geoserver-users mailing list
Geoserver-users@anonymised.comsts.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users


Jody Garnett

On Thu, May 5, 2016 at 8:00 PM, Jody Garnett <jody.garnett@anonymised.com> wrote:

See https://osgeo-org.atlassian.net/browse/GEOT-5289 for the discussion,
there was a good pull request on this one:
https://github.com/geotools/geotools/pull/1064

While this request avoid license trouble (by using reflection rather than
copy&paste coding) to access a hidden map class - I would like to our own
map and not borrow any incompatibility trouble.

See the comments, I have implemented a PartiallySortedSet already, but
afaik the pull request had other licensing issues (especially
if we want to avoid reflection, which might also be trouble, java 9 could
learn to get the expected isolation also via reflection)

Cheers
Andrea

--

GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via di Montramito 3/A
55054 Massarosa (LU)
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

*AVVERTENZE AI SENSI DEL D.Lgs. 196/2003*

Le informazioni contenute in questo messaggio di posta elettronica e/o
nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il
loro utilizzo è consentito esclusivamente al destinatario del messaggio,
per le finalità indicate nel messaggio stesso. Qualora riceviate questo
messaggio senza esserne il destinatario, Vi preghiamo cortesemente di
darcene notizia via e-mail e di procedere alla distruzione del messaggio
stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso,
divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od
utilizzarlo per finalità diverse, costituisce comportamento contrario ai
principi dettati dal D.Lgs. 196/2003.

The information in this message and/or attachments, is intended solely for
the attention and use of the named addressee(s) and may be confidential or
proprietary in nature or covered by the provisions of privacy act
(Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection
Code).Any use not in accord with its purpose, any disclosure, reproduction,
copying, distribution, or either dissemination, either whole or partial, is
strictly forbidden except previous formal approval of the named
addressee(s). If you are not the intended recipient, please contact
immediately the sender by telephone, fax or e-mail and delete the
information in this message that has been received in error. The sender
does not give any warranty or accept liability as the content, accuracy or
completeness of sent messages and accepts no responsibility for changes
made after they were sent or for other risks which arise as a result of
e-mail transmission, viruses, etc.

-------------------------------------------------------