当前位置: 首页 > 知识库问答 >
问题:

在tomcat中部署grails war时的类加载器错误

弘兴言
2023-03-14

我试图通过运行“grailsdevwar”命令并将war手动部署到Tomcat容器中,在测试环境中部署grails应用程序。该应用程序没有运行,我看到几个错误日志,如下所示:

./logs/catalina.out:2014-01-13 09:18:53,415 [主] 错误上下文。GrailsContextLoader - 初始化应用程序时出错:创建名为“instanceTagLibraryApi”的Bean时出错:注入自动连接的依赖项失败;nested exception is org.springframework.beans.factory.BeanCreationException: Can not autowire method: public void org.codehaus.groovy.grails.plugins.web.api.TagLibraryApi.setGspTagLibraryLookup(org.codehaus.groovy.grails.web.pages.TagLibraryLookup);嵌套异常是 org.springframework.beans.factory.BeanCreationException: 创建名为 'gspTagLibraryLookup' 的 bean 时出错: Init 方法调用失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException: 创建名为 'es.indra.nta.UiLayoutsTagLib' 的 bean 时出错: Bean 初始化失败;嵌套异常是 org.springframework.beans.ConversionNotSupportedException: 未能将类型 'org.apache.catalina.loader.WebappClassLoader' 的属性值转换为属性 'classLoader' 的必需类型 'groovy.lang.GroovyClassLoader';嵌套异常是 java.lang.IllegalStateException:无法将类型 [org.apache.catalina.loader.WebappClassLoader] 的值转换为属性 'classLoader' 的必需类型 [groovy.lang.GroovyClassLoader]:找不到匹配的编辑器或转换策略

对于几个bean,我得到了相同的错误。我正在使用<code>Grails 2.2.2

你知道我错过了什么吗?。

感谢您的帮助!

大卫。

共有2个答案

郑松
2023-03-14

我解决了这个问题,并且我关于我是一个Tomcat配置问题的假设是错误的。我解释一下,以防有人面临类似的问题:

在我留下的错误日志中,它指的是由我们es.indra.nta.UiLayoutsTagLib开发的内部插件的taglib。检查taglib的代码,我意识到我正在使用这个SO帖子中的代码:Grails插件的配置,因此在我的taglib代码中有这个:

GroovyClassLoader classLoader = new GroovyClassLoader(getClass().getClassLoader())
config = new ConfigSlurper().parse(classLoader.loadClass('MyWebServicePluginConfig'))

部署WAR时,Tomcat使用默认的类加载器,没有找到我的taglib所请求的< code>GroovyClassLoader。

去掉了< code>ConfigSlurper的使用,并为我正在使用的配置属性使用了标记属性(这更有意义),从而消除了在taglib代码中使用类加载器的需要,并解决了这个问题。

云慈
2023-03-14

当我升级到grails 2.2.x(从1.3.7)时,我遇到了类似的问题

在< code > application . properties 中,我有

plugins.tomcat=2.2.x

我不得不删除它并添加<code>grails app/conf/BuildConfig。groovy:

plugins {
    build ':tomcat:2.2.x'
}

它解决了我的问题,我希望它也能解决你的问题。

 类似资料:
  • 当我尝试部署一个war(Apache airavata-registry . war)时,我得到如下所示的错误。能是什么原因呢? 2013年11月14日下午7:41:19 org . Apache . catalina . core . application context日志信息:HTMLManager: list:列出虚拟主机“localhost”的上下文2013年11月14日下午7:41:

  • 我开发了一个springboot war文件来部署到服务器中,但是由于某些原因,我不得不将它部署到xampp的tomcat中,但是我得到了如下错误。我怎么才能修好这个? 信息:validateJarFile(c:\xampp\tomcat\webapps\ipf-2.0.0.rc2\WEB-INF\lib\tomcat-embed-core-8.5.28.jar)-jar未加载。参见Servlet

  • 我在springboot应用程序中有筛选器。在embedded tomcate 9.0.34中运行该应用程序时,它可以正常工作。然而,当我创建war并将其部署在外部Tomcate8.5上时,它会抛出以下错误。

  • 我想将Spring Boot应用程序作为WAR部署到Tomcat容器,但Tomcat无法启动该容器。我遵循了Spring Boot Reference中的“传统部署”一节。容器的线程大小设置为-xss4068,但我仍然收到堆栈溢出错误。 下面是堆栈跟踪: 我的pom.xml具有以下Spring Boot依赖项,其中spring-boot-starter-tomcat作用域设置为提供,如文档中所述。

  • tomcat支持war部署@运行时??? 当部署多个war文件时,发生tomcat permGen运行时内存不足错误,请停止tomcat并部署并重新启动该时间错误。这个错误的实际原因是什么。是否存在任何tomcat配置问题。

  • 我在netbean(在glassfish服务器上运行)上有一个javaEE应用程序(webapp)。我使用JPA ORM。我在MAVEN上导入了所有正确的jar。当我想在远程服务器(在tomcat上运行)上部署此webapp的WAR文件时,JPA会使其崩溃... 我在服务器上有一个错误500: _EmployeesManagementApplication2_war_1PeristenceExce