在 tomcat 8 上部署地理服务器
Posted
技术标签:
【中文标题】在 tomcat 8 上部署地理服务器【英文标题】:Deploy geoserver on tomcat 8 【发布时间】:2017-04-21 14:19:47 【问题描述】:我最近设法(并非不费吹灰之力)在 Debian 8.1 远程服务器上安装了 tomcat 8。我的目标是运行一个名为geoserver 的网络应用程序
在那个tomcat服务器上。所以在我的/var/lib/tomcat8/webapps
目录中,我创建了一个名为geoserver/
的新目录,并在该目录中上传了名为geoserver.war
的.war 文件。
然后我进入/var/lib/tomcat8/conf
(这实际上是一个符号链接,将我重定向到/etc/tomcat8
并编辑tomcat-users.xml
文件,在<tomcat-users></tomcat-users>
标签之间添加以下内容:
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="*****" roles="admin-gui, manager-gui"/>
这让我可以访问 tomcat webapps manager 和 host-manager。在管理器中,我通过提供上下文路径和其他必需的 URL 部署了我的 geoserver.war
文件。之后,我可以在我的应用列表中看到/geoserver
正在成功运行。
但是当我尝试实际连接到地理服务器页面(在 MY_SERVER_IP:8080/geoserver)时,为了处理它,我收到 404 错误,说请求的资源 (/geoserver
) 不可用.作为记录,默认提供的其他 web 应用程序(例如 /examples)运行良好。
我在互联网上找不到我的问题的答案,这就是为什么我来这里询问是否有人知道如何解决我的问题。我希望我的问题对于***来说不会太离题,如果只是让我知道,我会将其发布在另一个网站上。提前致谢,周末愉快!
编辑:当我尝试在我的 tomcat webapps 管理器中启动地理服务器时,这是 catalina.out 文件中写入的内容。
avr. 24, 2017 5:32:55 AM org.apache.catalina.core.ApplicationContext log
INFOS: No Spring WebApplicationInitializer types detected on classpath
以下部分由于某种原因重复了 5 次。
avr. 24, 2017 5:32:55 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class marktest.Config org.geoserver.GeoserverInitStartupListener
java.lang.UnsupportedClassVersionError: org/geoserver/GeoserverInitStartupListener : Unsupported major.minor version 52.0 (unable to load class org.geoserver.GeoserverInitStartupListener)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2476)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:853)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1263)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1146)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:520)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:501)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:120)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4753)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1265)
at org.apache.catalina.manager.htmlManagerServlet.start(HTMLManagerServlet.java:673)
at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:221)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:213)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:618)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1081)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1570)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1527)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
最后:
avr. 24, 2017 5:32:55 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
avr. 24, 2017 5:32:55 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
avr. 24, 2017 5:32:55 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/geoserver] startup failed due to previous errors
有些部分是用法语写的,我希望我的翻译足够准确。
【问题讨论】:
谁能帮我解决我的问题? 【参考方案1】:将geoserver.war
移动到/var/lib/tomcat8/webapps
并重新启动tomcat
- 此时一切都应该正常工作。
如果失败,则需要检查的其他事项是:
-
Java 1.8 安装了吗? GeoServer 需要这个
确保没有其他程序正在使用端口 8080
Tomcat8 用户对
/var/lib/tomcat8/webapps/geoserver
具有读/写/执行权限
检查/var/log/tomcat8/catalina.out
中的Tomcat日志文件
检查/var/lib/tomcat8/webapps/geoserver/data/logs/geoserver.log
中的 GeoServer 日志文件
【讨论】:
非常感谢您的回答。实际上,我自己发现我的 geoserver.war 文件在错误的位置,并将其移至/var/lib/tomcat8/webapps
目录。但是,它仍然无法正常工作,所以我将尝试回答您的清单:1. 是 2. 我在 Windows 命令提示符下运行了netstat -anb
,但在输出中没有找到使用端口 8080 的任何内容 3. 是4. 我实际上是想用谷歌搜索我在那个文件中得到的错误,我会用它来编辑我的问题,你很可能会比我解释得更好 5. 这个文件在我的服务器上不存在。我应该创建它吗?
tomcat 安装后不使用 java8
就我而言,我遇到了类似的情况,就是我使用的是 Java 7。下载并指定 Java 8 解决了这个问题以上是关于在 tomcat 8 上部署地理服务器的主要内容,如果未能解决你的问题,请参考以下文章