2015-07-02 5 views
0

У меня очень странная ситуация. Отражение в моем приложении работает на Tomcat 7, но не на Tomcat 8. Я использую отражение для проверки общего поля из сгенерированных объектов по имени.Tomcat 8 не может получить доступ к защищенному элементу через отражение

Что происходит, когда приложение запускается на 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". 

У меня нет ни малейшего понятия, как эта ошибка возможна, имеет ли какая-либо идея?

Примечание: Java 7 используется на обоих ПК.

ответ

0

Это, по-видимому, временная проблема с Tomcat и/или сгенерированным классом из XSD. После двух повторных развертываний проблема удаляется сама.