geoserver中的ImageMosaic服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了geoserver中的ImageMosaic服务相关的知识,希望对你有一定的参考价值。

参考技术A ImageMosaic 翻译成中文就是影像拼接,适用于多个影像文件需要在一起展示的场景,针对这种场景,我们可以对每一个影像数据发布服务,完了通过 layergroup 的方式统一成一个服务,很显然,如果当影像很多的时候这种操作既耗时又费力,这个时候你就需要用到geoserver的 ImageMosaic ,它可以实现将一个文件夹下面的所有影像文件发布成一个服务的需求。

本文所用的测试数据是北京30m分辨率的dem数据,为方便测试按照下图切割成了四份,为防止中间会存在数据的丢失,在边缘区域将范围扩大了一点。

在geoserver发布后的效果如下。

为了让发布出来的样式好看一点,我们需要配置一下样式。样式可以在qgis中配置好后导出成sld文件。

安装 GeoServer 时出错 - HTTP 状态 404 - /geoserver 和上下文路径 /geoserver 中的应用程序无法启动

【中文标题】安装 GeoServer 时出错 - HTTP 状态 404 - /geoserver 和上下文路径 /geoserver 中的应用程序无法启动【英文标题】:Error installing GeoServer - HTTP Status 404 - /geoserver and Application at context path /geoserver could not be started 【发布时间】:2017-04-29 16:55:17 【问题描述】:

我最近尝试在 Lubuntu 14.04 服务器上安装带有 Tomcat7 的 GeoServer,但这样做时遇到了很多问题,因为 Tomcat7 的 Java 默认版本设置为 1.7。昨晚我为此苦苦挣扎,我想记录一下如何解决它。


我按照以下步骤在 Lubuntu 14.04 机器上安装了 GeoServer:

1) 安装 Java 8,如文档中的 here

sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

之后,运行java -versionreturned:

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

2) 安装 Tomcat 7

sudo apt-get install tomcat7 tomcat7-admin

3) 安装 GeoServer 的“Web Archive”版本

cd ~/Downloads
wget http://sourceforge.net/projects/geoserver/files/GeoServer/2.11.0/geoserver-2.11.0-war.zip
unzip geoserver-2.11.0-war.zip geoserver.war
sudo mv geoserver.war /var/lib/tomcat7/webapps/
sudo service tomcat7 restart

在那之后,我无法访问localhost:8080/geoserver。尝试这样做会返回 HTTP Status 404 - /geoserver 错误,并显示“请求的资源不可用”。作为描述。

尝试通过Tomcat的/manager页面部署.war文件也没有成功,返回如下错误:Application at context path /geoserver could not be started

我查看了错误日志,看看出了什么问题,发现了以下异常:

Apr 29, 2017 12:32:49 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class org.geoserver.platform.GeoServerHttpSessionListenerProxy
java.lang.UnsupportedClassVersionError: org/geoserver/platform/GeoServerHttpSessionListenerProxy : Unsupported major.minor version 52.0 (unable to load class org.geoserver.platform.GeoServerHttpSessionListenerProxy)
        at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2970)
        at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1209)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1689)
        [...]

尽管错误消息说什么,回显$JAVA_HOME 返回/usr/lib/jvm/java-8-oracle,所以我确定我有必要的Java 版本。

【问题讨论】:

【参考方案1】:

显然 Tomcat 7 附带 1.7 JVM 作为默认值。这可以在Tomcat Web Application Manager(通常在localhost:8080/manager)上查看,在页面底部有一个JVM版本的表格。

+-------------------------------+---------------+-------+
|        Tomcat Version         |  JVM Version  | [...] |
+-------------------------------+---------------+-------+
| Apache Tomcat/7.0.52 (Ubuntu) | 1.7.0_121-b00 | [...] |
+-------------------------------+---------------+-------+

由于 GeoServer 需要 Java 1.8,这就解释了UnsupportedClassVersionError。我们必须明确告诉 Tomcat 使用 JVM 1.8。这已记录在 here 中,步骤如下:

首先我们需要找到 JVM 1.8 所在的位置。打开一个控制台终端并输入:

$ echo $JAVA_HOME

Java 8 文件夹的路径应该回显给您。就我而言,它是/usr/lib/jvm/java-8-oracle。确保复制它。

然后我们必须编辑 Tomcat 的配置并告诉它使用这个 JVM。在控制台终端上,输入:

$ sudo nano /etc/default/tomcat7

应该打开 Tomcat 7 的配置文件。在其中找到以下文本:

# The home directory of the Java development kit (JDK). You need at least
# JDK version 1.5. If JAVA_HOME is not set, some common directories for
# OpenJDK, the Sun JDK, and various J2SE 1.5 versions are tried.
#JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk

找到以JAVA_HOME 开头的行,然后更改Java 8 文件夹的路径。确保通过删除JAVA_HOME 之前的# 取消注释该行。就我而言,文件最终是这样的:

# The home directory of the Java development kit (JDK). You need at least
# JDK version 1.5. If JAVA_HOME is not set, some common directories for
# OpenJDK, the Sun JDK, and various J2SE 1.5 versions are tried.
JAVA_HOME=/usr/lib/jvm/java-8-oracle

之后我们需要使用以下命令重启Tomcat:

$ sudo service tomcat7 restart

那么如果我们检查localhost:8080/manager,在页面底部应该有这样的东西:

+-------------------------------+---------------+-------+
|        Tomcat Version         |  JVM Version  | [...] |
+-------------------------------+---------------+-------+
| Apache Tomcat/7.0.52 (Ubuntu) | 1.8.0_131-b11 | [...] |
+-------------------------------+---------------+-------+

现在应该可以成功启动 GeoServer,并且应该可以通过localhost:8080/geoserver 访问它。

【讨论】:

以上是关于geoserver中的ImageMosaic服务的主要内容,如果未能解决你的问题,请参考以下文章

Geoserver并移至HTTPS

地理服务器无法识别空间列

安装 GeoServer 时出错 - HTTP 状态 404 - /geoserver 和上下文路径 /geoserver 中的应用程序无法启动

geoserver 可以发布路径分析服务吗

在geoserver中用c#复制

使用docker部署的geoserver发布矢量切片服务(坑汇总)