Opened 3 months ago

Closed 2 months ago

Last modified 2 months ago

#2480 closed defect (fixed)

geoserver layer demos are broken

Reported by: darkblueb Owned by: osgeolive@…
Priority: critical Milestone: OSGeoLive17.0
Component: OSGeoLive Keywords: geoserver, java
Cc:

Description

ol17a1

openjdk 17.0.12 2024-07-16 OpenJDK Runtime Environment (build 17.0.12+7-Ubuntu-1ubuntu224.04) OpenJDK 64-Bit Server VM (build 17.0.12+7-Ubuntu-1ubuntu224.04, mixed mode, sharing)

geoserver v2.25.3

##--

  • start geoserver; choose Layer Preview
  • click on any Openlayers example
  • the new window fails to draw contents.. empty map

Change History (7)

comment:1 by darkblueb, 3 months ago

jodygarnett comments:

So when running in Java 17 a bunch of configuration is required - to ask Java to "relax" all the safety measures that were introduced. As an older application GeoServer likes to do some unsafe things, like provide a new rendering engine, or make use of an image processing engine called "javax.media.JAI" that was initially written as an extension of core Java. Since Java 17 is not so supported yet, the documentation is not "handy" for me to tell you what to do ...

Maybe try this: https://docs.geoserver.org/latest/en/user/production/java.html#running-on-java-17

comment:2 by darkblueb, 3 months ago

DEBUG session :

Exception java.lang.IllegalAccessError: 
  superclass access check failed: 
   class org.marlin.pisces.MarlinRenderingEngine 
    (in unnamed module @0x7f670d96) cannot access class sun.java2d.pipe.RenderingEngine 

comment:3 by darkblueb, 3 months ago

HTTP ERROR 500 javax.servlet.ServletException: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class sun.java2d.SurfaceData
URI:	/geoserver/tiger/wms
STATUS:	500
MESSAGE:	javax.servlet.ServletException: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class sun.java2d.SurfaceData
SERVLET:	dispatcher
CAUSED BY:	javax.servlet.ServletException: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class sun.java2d.SurfaceData
CAUSED BY:	org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class sun.java2d.SurfaceData
CAUSED BY:	java.lang.NoClassDefFoundError: Could not initialize class sun.java2d.SurfaceData
CAUSED BY:	java.lang.ExceptionInInitializerError: Exception java.lang.IllegalAccessError: superclass access check failed: class org.marlin.pisces.MarlinRenderingEngine (in unnamed module @0x7f670d96) cannot access class sun.java2d.pipe.RenderingEngine (in module java.desktop) because module java.desktop does not export sun.java2d.pipe to unnamed module @0x7f670d96 [in thread "qtp811587677-142"]

comment:4 by darkblueb, 3 months ago

also the default Openlayers template page contains outdated links

$ curl -v 'http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=en-us'
*   Trying 13.107.246.69:80...
* Connected to dev.virtualearth.net (13.107.246.69) port 80 (#0)
> GET /mapcontrol/mapcontrol.ashx?v=6.2&mkt=en-us HTTP/1.1
> Host: dev.virtualearth.net
> User-Agent: curl/7.81.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 401 Unauthorized
< Date: Fri, 13 Sep 2024 14:05:57 GMT
< Content-Type: application/json; charset=utf-8
< Content-Length: 653
< Connection: keep-alive
< Access-Control-Allow-Headers: Content-Type,X-FD-Features,X-FD-FLIGHT,PreferAnonymous
< Access-Control-Allow-Methods: POST, GET, OPTIONS
< Access-Control-Allow-Origin: *
< Alt-Svc: h3=":443"; ma=86400
< Cache-Control: no-cache
< x-azure-ref: 20240913T140557Z-176c6bcb657pms94z820mcg3zg0000000190000000004d08
< X-Cache: CONFIG_NOCACHE
< 
* Connection #0 to host dev.virtualearth.net left intact
{"authenticationResultCode":"NoCredentials","brandLogoUri":"http://dev.virtualearth.net/Branding/logo_powered_by.png","copyright":"Copyright © 2024 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.","errorDetails":["Access was denied. You may have entered your credentials incorrectly, or you might not have access to the requested resource or operation."],"resourceSets":[],"statusCode":401,"statusDescri
$ curl -v 'http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'
*   Trying 172.217.12.110:80...
* Connected to maps.google.com (172.217.12.110) port 80 (#0)
> GET /maps?file=api&amp;v=2&amp;key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ HTTP/1.1
> Host: maps.google.com
> User-Agent: curl/7.81.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 404 Not Found
< Date: Fri, 13 Sep 2024 14:07:57 GMT
< Content-Type: text/html; charset=UTF-8
< Server: mafe
< Content-Length: 1685
< X-XSS-Protection: 0
< X-Frame-Options: SAMEORIGIN
< Server-Timing: gfet4t7; dur=99
< 
<!DOCTYPE html>
<html lang=en>
  <meta charset=utf-8>
  <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
  <title>Error 404 (Not Found)!!1</title>
  <style>
    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}
  </style>
  <a href=//www.google.com/><span id=logo aria-label=Google></span></a>
  <p><b>404.</b> <ins>That’s an error.</ins>
  <p>The requested URL <code>/maps?file=api&amp;amp;v=2&amp;amp;key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ</code> was not found on this server.  <ins>That’s all we know.</ins>
* Connection #0 to host maps.google.com left intact
$ curl -v "http://api.maps.yahoo.com/ajaxymap?v=3.0&appid=euzuro-openlayers"
* Could not resolve host: api.maps.yahoo.com
* Closing connection 0
curl: (6) Could not resolve host: api.maps.yahoo.com
Last edited 3 months ago by darkblueb (previous) (diff)

comment:5 by kalxas, 2 months ago

Resolution: fixed
Status: newclosed

Fixed, since we upgraded to GeoServer 2.26.0 which works fine with Java 17.

comment:6 by jive, 2 months ago

So is this fixed now? Do the layer demos work?

aside: Note the first time you run such a thing the results may be blocked as a pop-up depending on your browser settings.

comment:7 by darkblueb, 2 months ago

aaime (Andrea Aime) writes: Oh my... that thing is still around? It's not reachable from anywhere in the GUI (and likely neither from the GeoServer official docs) but we still have it in the release data directory, indeed: https://github.com/geoserver/geoserver/tree/main/data/release/www

It needs either a full rewrite or to be removed... I'd go for the latter, what say you jodygarnett (Jody Garnett) ? it's part of the data dir, which I'm guessing is not something you touch when upgrading GeoServer. I'd recommend removing it from OSGeo live. Making a stand alone demo based on a modern OL version is likely a better proposition, assuming anyone shows up to work on it

Note: See TracTickets for help on using tickets.