【问题标题】:Producing a Webbapp War file - Error that parameter will be ignored生成 Webbapp War 文件 - 该参数将被忽略的错误
【发布时间】:2014-06-25 11:48:57
【问题描述】:

我正在尝试在 Tomcat7 上运行一个需要一些插件并用 Grails 编写的项目。

使用 grails prod war 命令创建 -war 会导致错误,告诉我不支持 [java.util.List] 类型的参数。

我在哪里以及如何查看支持哪些参数以及为什么不支持列表?

有错误的日志文件如下所示:

| Loading Grails 2.4.1
| Configuring classpath
| Configuring classpath.
| Environment set to production
| Environment set to production.
| Environment set to production..
| Environment set to production...
| Environment set to production....
| Environment set to production.....
| Packaging Grails application
| Packaging Grails application.
| Packaging Grails application..
| Packaging Grails application...
| Packaging Grails application....
| Packaging Grails application.....
| Compiling 70 source files
| Warning The [listFullAccessResources] action in [VsGrantController] accepts a parameter of type [java.util.List].  Interface types and abstract class types are not supported as command objects.  This parameter will be ignored.

       List listFullAccessResources(VsUser loggedInUser, List resultsGoups) {
       ^
  [groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
  [groovyc] General error during class generation: java.lang.NoClassDefFoundError: Unable to load class org.jets3t.service.impl.rest.httpclient.RestS3Service due to missing dependency org/apache/http/client/methods/HttpHead
  [groovyc] 
  [groovyc] java.lang.RuntimeException: java.lang.NoClassDefFoundError: Unable to load class org.jets3t.service.impl.rest.httpclient.RestS3Service due to missing dependency org/apache/http/client/methods/HttpHead
  [groovyc]     at org.codehaus.groovy.control.CompilationUnit.convertUncaughtExceptionToCompilationError(CompilationUnit.java:1083)

VsGrantController.groovy 看起来像这样

import org.apache.commons.lang.StringUtils

class VsGrantController {

    def vsAuthenticateService
    def vsGrantService

    def index = { redirect(action:list,params:params) }

    // the delete, save and update actions only accept POST requests
    static allowedMethods = [delete:'POST', save:'POST', update:'POST']

    List listFullAccessResources(VsUser loggedInUser, List resultsGoups) {

        // labels user has full access to
        def cLabels = VsLabel.createCriteria()
        def resultsLabelsFullAccess = cLabels.listDistinct {
            grants {
                and {
                    permission {
                        eq("name", 'Full')
                    }
                    or {
                        eq("accessor", loggedInUser)
                        if(resultsGoups) {
                            or {
                                for (g in resultsGoups) {
                                    eq("accessor", g)
                                }
                            }
                        }
                    }
                }
            }
            order("name")
        }

我对 Grails/Groovy Tomcat Webbapp 主题有点陌生 所以我希望这个问题还不错

【问题讨论】:

    标签: grails


    【解决方案1】:

    警告“不支持接口类型和抽象类类型作为命令对象。”抱怨是因为您的控制器操作有一个 List resultsGoups 参数。这不受支持。

    您可以从隐式“参数”映射或使用command object 提取参数。

    这样的……

    def listFullAccessResources(AccessResourcesCommand cmd) {
    }
    
    class AccessResourcesCommand {
        Bar loggedInUser
        List resultsGroups
    }
    

    【讨论】:

    • 或者将方法标记为私有,以防它是内部控制器方法。
    【解决方案2】:

    你的实际错误是

    Unable to load class org.jets3t.service.impl.rest.httpclient.RestS3Service due to missing dependency org/apache/http/client/methods/HttpHead
    

    您需要在类路径中包含 httpclient.jar

    【讨论】:

    • 感谢您的快速回复。好的,如果我忽略警告并添加 httpclient.jar - 错误消息更改为:Unable to load class org.jets3t.service.impl.rest.httpclient.RestS3Service due to missing dependency org/apache/http/HttpRequest
    • ok 还添加了修复错误的 httpcore.jar...但警告仍然存在
    【解决方案3】:

    改成:

    def List listFullAccessResources(VsUser loggedInUser, List resultsGoups)
    

    你的警告就会消失...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多