Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails Apache在插件安装后崩溃?_Apache_Grails_Plugins_Spring Security_Tomcat7 - Fatal编程技术网

Grails Apache在插件安装后崩溃?

Grails Apache在插件安装后崩溃?,apache,grails,plugins,spring-security,tomcat7,Apache,Grails,Plugins,Spring Security,Tomcat7,我目前正在从事一个Grails项目,并且已经安装了以下插件: Spring安全核心 春季安全用户界面 邮件 等… 解决方案运行良好,一切正常,直到我决定更改“SpringSecurityUI”并使用另一个名为“Mandrill”的邮件插件。因此,我将插件中的RegisterController更改为使用Mandrill而不是Mail,我添加到控制器中的代码如下: import org.grails.mandrill.MandrillRecipient; import org.grails.man

我目前正在从事一个Grails项目,并且已经安装了以下插件:

Spring安全核心

春季安全用户界面

邮件

等…

解决方案运行良好,一切正常,直到我决定更改“SpringSecurityUI”并使用另一个名为“Mandrill”的邮件插件。因此,我将插件中的RegisterController更改为使用Mandrill而不是Mail,我添加到控制器中的代码如下:

import org.grails.mandrill.MandrillRecipient;
import org.grails.mandrill.MandrillMessage;
import org.grails.mandrill.MandrillService;

def recpts = []

        recpts.add(new MandrillRecipient(name:command.username, email:command.email))
        def message = new MandrillMessage(
                                            text:body.toString(),
                                            subject:conf.ui.register.emailSubject,
                                            from_email:conf.ui.register.emailFrom,
                                            to:recpts)
        message.tags.add("Test")
        def ret = mandrillService.send(message)
现在,一旦我安装插件并添加此代码并运行应用程序,一切都会正常启动,我不会收到任何错误,它会告诉我转到本地主机,一旦我执行此操作,Apache就会崩溃,我会收到以下错误:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: Error applying layout : main
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:679)

root cause

org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException: Error processing GroovyPageView: Error executing tag <sec:ifAnyGranted>: null
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:679)

root cause

org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException: Error executing tag <sec:ifAnyGranted>: null
    home_workspace_sm_V3_grails_app_views_layouts_main_gsp$_run_closure2.doCall(main.gsp:85)
    home_workspace_sm_V3_grails_app_views_layouts_main_gsp.run(main.gsp:122)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:679)

root cause

java.lang.NullPointerException
    grails.plugins.springsecurity.SecurityTagLib$_closure3.doCall(SecurityTagLib.groovy:89)
    home_workspace_smV3_grails_app_views_layouts_main_gsp$_run_closure2.doCall(main.gsp:85)
    home_workspace_sm_V3_grails_app_views_layouts_main_gsp.run(main.gsp:122)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:679)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.27 logs.
HTTP状态500- 类型异常报告 消息 说明服务器遇到内部错误(),无法完成此请求。 例外 org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException:应用布局时出错:main java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) run(Thread.java:679) 根本原因 org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException:错误处理GroovyPageView:错误执行标记:null java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) run(Thread.java:679) 根本原因 org.codehaus.groovy.grails.web.taglib.exceptions.grailstageexception:执行标记时出错:null home\u workspace\u sm\u V3\u grails\u app\u view\u layouts\u main\u gsp$\u run\u closure2.doCall(main.gsp:85) home\u workspace\u sm\u V3\u grails\u app\u view\u layouts\u main\u gsp.run(main.gsp:122) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) run(Thread.java:679) 根本原因 java.lang.NullPointerException grails.plugins.springsecurity.SecurityTagLib$\u closure3.doCall(SecurityTagLib.groovy:89) home\u workspace\u smV3\u grails\u app\u view\u layouts\u main\u gsp$\u run\u closure2.doCall(main.gsp:85) home\u workspace\u sm\u V3\u grails\u app\u view\u layouts\u main\u gsp.run(main.gsp:122) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) run(Thread.java:679) 注意,Apache Tomcat/7.0.27日志中提供了根本原因的完整堆栈跟踪。 有人能帮我解决这个问题吗?因为我所有的项目在这之后都不再工作了,即使它们不使用Mandrill:S

编辑

下面是我的main.gsp页面,但我看不出这与问题有什么关系,因为我所有的项目都没有运行,即使它们在我安装插件之前运行过:S

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport"       content="width=device-width, initial-scale=1.0">
    <meta name="description"    content="">
    <meta name="author"         content="">

    <title>SM</title>
    <link rel="shortcut icon" href="${resource(dir:'images',file:'favicon.png')}" type="image/x-icon" />

    <link rel="stylesheet" href="${resource(dir:'bootstrap/css', file:'bootstrap.css')}" />
    <link rel="stylesheet" href="${resource(dir:'bootstrap/css', file:'bootstrap-responsive.css')}" />
    <link rel="stylesheet" href="${resource(dir:'kickstart/css', file:'docs.css')}" />
    <link rel="stylesheet" href="${resource(dir:'kickstart/css', file:'kickstart.css')}" />
    <link rel="stylesheet" href="${resource(dir:'datepicker/css',file:'datepicker.css')}" />

    <link rel="apple-touch-icon" href="assets/ico/apple-touch-icon.png">
    <link rel="apple-touch-icon" sizes="72x72" href="assets/ico/apple-touch-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="114x114" href="assets/ico/apple-touch-icon-114x114.png">

    <g:layoutHead />

    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script src="${resource(dir:'bootstrap/js', file:'bootstrap.js')}"></script>
    <script src="${resource(dir:'datepicker/js',file:'bootstrap-datepicker.js')}"></script>
    <script src="${resource(dir:'kickstart/js', file:'kickstart.js')}"></script>
    <script src="${resource(dir:'js',           file:'application.js')}"></script>

    <r:layoutResources />
</head>

<body>
    <div id="Navbar" class="navbar navbar-fixed-top">
        <div class="navbar-inner">
            <div class="container">
                <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
                <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </a>

                <a class="brand" href="${createLink(uri: '/')}">
                    <img class="logo" src="${resource(dir:'images',file:'sm_logo.png')}" alt="${meta(name:'app.name')}" height="25" border="0" />
                    SM
                    <%-- <small> v${meta(name:'app.version')}</small> --%>
                </a>

                <div class="nav-collapse">
                    <ul class="nav">
                        <li class="dropdown">
                            <a class="dropdown-toggle" data-toggle="dropdown" href="#">Menu <b class="caret"></b></a>
                            <ul class="dropdown-menu">
                                <li><a class="home" href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a></li>
                                <sec:ifNotLoggedIn>
                                <li><g:link class="login" controller="Login" action="auth"><g:message code="Login" args="[entityName]" /></g:link></li>
                                <li><a href="${createLink(uri: '/register/index')}"><g:message code="Register"/></a></li>
                                </sec:ifNotLoggedIn>
                                <sec:ifLoggedIn>
                                    <li><g:link class="logout" controller="Logout" action="index"><g:message code="Logout" args="[entityName]" /></g:link></li>
                                    <li><g:link class="create" controller="Sm" action="create"><g:message code="Create" args="[entityName]" /></g:link></li>
                                    <sec:ifAnyGranted roles="ROLE_ADMIN,ROLE_SUPER_ADMIN">
                                        <li><g:link class="list" controller="Sm" action="list"><g:message code="SM Log" args="[entityName]" /></g:link></li>
                                    </sec:ifAnyGranted>
                                </sec:ifLoggedIn>
                            </ul>
                        </li>
                    </ul>

                    <sec:ifAnyGranted roles="ROLE_ADMIN,ROLE_SUPER_ADMIN">
                    <ul class="nav">
                        <li class="dropdown">
                            <a class="dropdown-toggle" data-toggle="dropdown" href="#">Admin Menu <b class="caret"></b></a>
                            <ul class="dropdown-menu">
                                <sec:ifAnyGranted roles="ROLE_SUPER_ADMIN">
                                <li><a class="config" href="${createLink(uri: '/configProperty')}"><g:message code="Config"/></a></li>
                                </sec:ifAnyGranted>
                                <li><a class="config" href="${createLink(uri: '/User')}"><g:message code="Admin"/></a></li>
                            </ul>
                        </li>
                    </ul>
                    </sec:ifAnyGranted>

                    <div class="pull-right">
                        <!--<g:render template="/menu/language"/> -->                                                                                                           
                    </div>

                </div>

            </div>
        </div>
    </div>

    <g:if test="${ pageProperty(name:'page.header') }">
        <g:pageProperty name="page.header" />
    </g:if>
    <g:else>
        <header id="Header" class="jumbotron masthead">
            <div class="inner">
                <div class="container">
                    <h1 class="title"><g:layoutTitle default="${meta(name:'app.name')}" /></h1>
                </div>
            </div>
        </header>
    </g:else>

    <div id="Content" class="container">
        <%-- Only show the "Pills" navigation menu if a controller exists (but not for home) 
        <g:if test="${  params.controller != null
                    &&  params.controller != ''
                    &&  params.controller != 'home'
        }">
            <ul id="Menu" class="nav nav-pills">
                <g:set var="entityName" value="${message(code: params.controller+'.label', default: params.controller.substring(0,1).toUpperCase() + params.controller.substring(1).toLowerCase())}" />
                <%-- Set which "pill" of the menu is active
                <li class="${ params.action == "list" ? 'active' : '' }">
                    <g:link action="list"><g:message code="default.list.label" args="[entityName]"/></g:link>
                </li>
                <li class="${ params.action == "create" ? 'active' : '' }">
                    <g:link action="create"><g:message code="default.new.label"  args="[entityName]"/></g:link>
                </li>
            </ul>
        </g:if> --%>

        <g:if test="${flash.message}">
            <div class="alert alert-info"><g:message code="${flash.message}" args="${flash.args}"
           default="${flash.default}"/></div>
        </g:if>

        <g:layoutBody />
        <g:pageProperty name="page.body" />
    </div>

    <g:if test="${ pageProperty(name:'page.footer') }">
        <g:pageProperty name="page.footer" />
    </g:if>
    <g:else>
        <footer id="Footer">
        </footer>
    </g:else>

    <r:layoutResources />
</body>

</html>

性虐待

我刚刚遇到了同样的问题-几乎相同的堆栈跟踪。grails clean和grails compile-refresh依赖项都不起作用

经过数小时的努力,我终于采取了删除.grails缓存文件夹的步骤。重新启动时,我执行了刷新依赖项&清除


这似乎成功了。

publish you layout/main.gsp code