java - Tomcat 8 无法通过反射访问 protected 成员

标签 java tomcat reflection access-modifiers

我有一个非常奇怪的情况。我的应用程序中的反射适用于 Tomcat 7,但不适用于 Tomcat 8。 我正在使用反射按名称检查生成对象的公共(public)字段。

发生的事情是,当应用程序在 Tomcat 8 上运行时,出现非法访问异常。

Field field = response.getClass().getDeclaredField(RESPONSE_FIELD);

        field.setAccessible(true);

        // get response status
        String status = (String) field.get(response);



java.lang.IllegalAccessException: Class com.ccf.services.DistributedCustomerCareService can not access a member of class com.ccf.generated.CcfGetProfileRes with modifiers "protected".

我不知道这个错误是怎么可能的,有没有人有想法?

注意:两台 PC 上都使用 Java 7。

最佳答案

这似乎是 Tomcat 和/或从 XSD 生成的类的一些临时问题。两次重新部署后,问题自行解决。

关于java - Tomcat 8 无法通过反射访问 protected 成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31184168/

相关文章:

java - 如何检索 "user input from other file"以在 JAVA 中显示为表格?

java - 枚举值作为 Java 中对象的实例

java - 如何将 32 位 Java Web 应用程序迁移到 64 位?

java - 使用反射调用 Type 参数化方法

java - 将 spring-data-solr 升级到版本 1.3.1 时无法启动嵌入式 solr 服务器

java - 面试题: What is the fastest way to generate prime number recursively?

java - 如何在Eclipse IDE中的Apache Tomcat服务器中部署创建的.jar文件?

Tomcat KeyStore 环境路径

java - 在单元测试中使用反射来测试注释的存在是否被认为是好的做法?

java - 用于测试 Java 类结构的库或框架