我遵循了提到的这里步骤
从geonetwork.war下载所需的SourceForge文件。将WAR文件复制到Tomcat的webapp文件夹中。如果启动,Tomcat将自动部署应用程序。如果没有,启动Tomcat部署。
我启动Tomcat,转到http://localhost:8080/manager/html,然后开始并单击Geonetwork。页面加载几秒钟,但Start按钮不会更改为Stop。它显示了FAIL - Application at context path [/GeoNetwork-4.0.5-0] could not be started。

我单击GeoNetwork-4.0.5-0在那里,它返回一个404错误。

xampp/tomcat/webapp文件夹

服务器信息

我尝试使用安装 压缩文件 ,但现在返回一个503错误。

我刚启动Tomcat就检查了日志,上面写着
Jul 04, 2022 7:13:30 PM org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
INFO: validateJarFile(C:\xampp\tomcat\webapps\GeoNetwork-4.0.5-0\WEB-INF\lib\javaee-api-7.0.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
Jul 04, 2022 7:13:30 PM org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
INFO: validateJarFile(C:\xampp\tomcat\webapps\GeoNetwork-4.0.5-0\WEB-INF\lib\jsp-api-2.1-6.1.14.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/el/Expression.class
Jul 04, 2022 7:13:30 PM org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
INFO: validateJarFile(C:\xampp\tomcat\webapps\GeoNetwork-4.0.5-0\WEB-INF\lib\servlet-api-2.3.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
Jul 04, 2022 7:13:30 PM org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
INFO: validateJarFile(C:\xampp\tomcat\webapps\GeoNetwork-4.0.5-0\WEB-INF\lib\servlet-api-2.5-20081211.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
Jul 04, 2022 7:13:30 PM org.apache.catalina.loader.WebappClassLoaderBase validateJarFile
INFO: validateJarFile(C:\xampp\tomcat\webapps\GeoNetwork-4.0.5-0\WEB-INF\lib\servlet-api-2.5-6.1.14.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class有解决这个问题的窍门吗?
发布于 2022-07-04 12:25:18
由于您正在安装版本4,我建议您查看相关的文档这里。需要为该版本安装一些附加服务,如ElasticSearch。
另外,最好是下载最新的4.2.0版本,而不是您正在使用的旧版本4.0.5。
错误的发生最可能是由于GeoNetwork开发人员对war文件进行了混乱的打包。该文件包含Tomcat已经提供的库,因此将它们打包为war文件的一部分将导致这样的错误。
关于servlet-api和jsp-api的警告并不重要,因为这些库都存在于Tomcat上,并且无论如何都会被加载。但是,javaee-api-7.0.jar警告是非常关键的,因为Tomcat没有完全提供JavaEE API,而加载这个库失败是应用程序失败的原因:
Caused by: java.lang.IllegalStateException: Failed to introspect Class [org.fao.geonet.api.records.attachments.ResourceLoggerStore] from ClassLoader [WebappClassLoader
context: /GeoNetwork-4.0.5-0
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
java.net.URLClassLoader@2a84aee7
]
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:481)
at org.springframework.util.ReflectionUtils.doWithLocalMethods(ReflectionUtils.java:321)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:267)
... 77 more
Caused by: java.lang.NoClassDefFoundError: javax/resource/NotSupportedException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethods(Class.java:1975)
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:463)
... 79 more
Caused by: java.lang.ClassNotFoundException: javax.resource.NotSupportedException
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1951)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1795)
... 83 more解决此问题的一个快速方法是将此jar从已部署的应用程序(tomcat/webapps/GeoNetwork-4.0.5-0/WEB-INF/lib/javaee-api-7.0.jar)复制到tomcat/lib目录并重新启动Tomcat服务器。
一种正确的方法是向GeoNetwork的开发人员报告这个问题,这样他们就可以从分发版中删除冲突的库,或者更新文档。
https://stackoverflow.com/questions/72855687
复制相似问题