Hello Alan,
 
Thank you very much for your help. With ModuleLayer.Controller I solved the 
problem.
Do I understand it correctly — it is impossible to get reference to boot layer 
controller,
isn’t it?
 
 
--
Best regards, Alex Orlov
 
  
>Понедельник, 16 ноября 2020, 22:27 +03:00 от Alan Bateman 
><alan.bate...@oracle.com>:
> 
>On 16/11/2020 18:35, Alex Orlov wrote:
>> :
>>
>> When I start my application I get:
>>
>> java.lang.IllegalAccessError: class 
>> org.springframework.core.log.CompositeLog (in module spring.core) cannot 
>> access class org.apache.commons.logging.impl.NoOpLog (in module 
>> org.apache.commons.logging) because module org.apache.commons.logging does 
>> not export org.apache.commons.logging.impl to module spring.core.
>>
>> To fix it, I wanted in the Framework dynamically addOpens to module 
>> (module.addOpens(...)), however, I got
>>
>> Caused by: java.lang.IllegalCallerException: org.apache.commons.logging.impl 
>> is not open to module fw.module.
>>
>> To fix it I added jvm argument:
>>
>> --add-opens 
>> org.apache.commons.logging/org.apache.commons.logging.impl=fw.module \
>>
>> However, it didn’t help. It seems to me that jvm arguments add-opens works 
>> only when the module that must open
>> its package is in boot layer, but in my situation fw.module that is in boot 
>> layer knows nothing about web application modules. The static 
>> defineModulesXXXX methods return a ModuleLayer.Controller
>that can be used to export or open any package of any module in the
>layer to any other module. It's the equivalent of using the
>--add-exports or --add-opens on the command line to export or open
>packages of modules in the boot layer. So in this case you should be
>able to use the ModuleLayer.Controller for (I assume) the "Web
>Application Layer" to export
>org.apache.commons.logging/org.apache.commons.logging.impl to
>spring.core. That can be a workaround using spring.core and
>org.apache.commons.logging agree sort out their differences on whether
>org.apache.commons.logging.impl is part of the supported API or not.
>
>-Alan.
 

Reply via email to