加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

grails – java.lang.IllegalAccessError:尝试从类zxy访问类xyz

发布时间:2020-12-15 04:19:15 所属栏目:Java 来源:网络整理
导读:我有一个grails应用程序,如果我通过它启动它,它运行正常 grails run-app 在早期阶段,我已经将该应用程序部署到节点上的tomcat实例,并且没有遇到任何问题.然而,昨天我开始准备生产一切,并设置一个流浪盒来部署整个堆栈.突然发生了一件非常奇怪的事情: 我有一
我有一个grails应用程序,如果我通过它启动它,它运行正常

grails run-app

在早期阶段,我已经将该应用程序部署到节点上的tomcat实例,并且没有遇到任何问题.然而,昨天我开始准备生产一切,并设置一个流浪盒来部署整个堆栈.突然发生了一件非常奇怪的事情:

我有一个方法

def checkEmail(String email)

在我的RegisterController中,它调用静态方法

static String normalize(final String email) throws InvalidEmailAddressException

在一个groovy类中,它放在我项目中相应包中的’/ src / groovy’下.

每当调用控制器中的checkEmail方法时,我都会看到以下异常:

2014-04-07 20:19:20,588 [http-bio-8080-exec-6] ERROR errors.GrailsExceptionResolver  - IllegalAccessError occurred when processing request: [GET] /register/checkEmail
tried to access class com.getgrape.core.exception.InvalidEmailAddressException from class com.getgrape.authority.RegisterController. Stacktrace follows:
org.codehaus.groovy.grails.web.servlet.mvc.exceptions.ControllerExecutionException: Executing action [checkEmail] of controller [com.getgrape.authority.RegisterController]  caused exception: Runtime error executing action
    at grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter(GrailsAnonymousAuthenticationFilter.java:53)
    at grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter.doFilter(RequestHolderAuthenticationFilter.java:49)
    at grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter(MutableLogoutFilter.java:82)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
Caused by: org.codehaus.groovy.grails.web.servlet.mvc.exceptions.ControllerExecutionException: Runtime error executing action
    ... 6 more
Caused by: java.lang.reflect.InvocationTargetException
    ... 6 more
Caused by: java.lang.IllegalAccessError: tried to access class com.getgrape.core.exception.InvalidEmailAddressException from class com.getgrape.authority.RegisterController
    at com.getgrape.authority.RegisterController.checkEmail(RegisterController.groovy:128)
    ... 6 more

InvalidEmailAddressException如下所示,并放在项目中相应包中的’/ src / java’下:

package com.getgrape.core.exception;

class InvalidEmailAddressException extends Exception {

    private static final long serialVersionUID = 1L;

    InvalidEmailAddressException() {
        super();
    }

    InvalidEmailAddressException(String message) {
        super(message);
    }
}

我基本上不知道发生了什么.

>我检查了可能的重复定义
InvalidEmailAddressException,但找不到任何内容.
>我试图重命名Exception,以防我忽略了任何东西或者这可能与另一个库发生冲突,但这没有帮助
无论是.
>我检查了所有的import语句,它们看起来也很好.
>如果我完全删除了对normalize方法的调用,则错误消失.所以,这必须是关于该方法的东西,它抛出了
例外.
>我试图从方法中删除静态修饰符并通过实例化对象调用它,但这没有什么区别.
>我检查了war文件,看看它是否包含InvalidEmailAddressException,它应该在哪里.
>我尝试将该应用程序部署到刚刚下载的tomcat,但问题仍然存在.所以,它不应该是一个配置
问题.
>没有编译器错误.

有谁知道可能会发生什么?

java version is: oracle jdk 1.7.0_51
grails: 2.3.7
running on ubuntu 12.04

战争是通过“战争战争”建立起来的,而且在战争开始之前,我一直在运行“grails clean-all”.

解决方法

如果没有public修饰符,则该方法仅适用于类的包.请参阅 http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html.这适用于非公开的异常类.如果您想要全局访问,构造函数和方法也应该是公共的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读