using this code, I only get a null pointer exception.
The table got created and I could add values using the Administration menu ‘application settings’.
But how ever I try, I cannot access the settings in the code.
Last line throws the error.
@Service(StartBatchService.NAME)
public class StartBatchServiceBean implements StartBatchService {
I can locate the issue on the following:
using datamanger or appSettings in a @Component or @Service,
I cannot read from entities, using the admin user.
Almost all examples from the manual I tried, no success.
Using the same code inside a screen controller it works fine.
Unfortunately, I’m not able to reproduce described issue, using appSettings it is possible to operate with settings entities in uiControllers and services too.
Could you attach some small test project on whic I can reproduce the problem?
one issue is solved, I can now use appSettings and datamanager working fine.
The issue was a wrong coding on my side, I used new instead of @Autowired…
the last thing is getting it running with Quartz.
Actually I have an authorization error…
tbc…
java.lang.IllegalStateException: Authentication is not set. Use SystemAuthenticator in non-user requests like schedulers or asynchronous calls.
at io.jmix.core.security.impl.CurrentAuthenticationImpl.getAuthentication(CurrentAuthenticationImpl.java:49) ~[jmix-core-1.2.0.jar:na]
at io.jmix.security.impl.constraint.AuthenticationPolicyStore.extractFromAuthenticationByScope(AuthenticationPolicyStore.java:107) ~[jmix-security-1.2.0.jar:na]
at io.jmix.security.impl.constraint.AuthenticationPolicyStore.getEntityResourcePolicies(AuthenticationPolicyStore.java:70) ~[jmix-security-1.2.0.jar:na]
at io.jmix.security.impl.constraint.SecureOperationsImpl.isEntityOperationPermitted(SecureOperationsImpl.java:57) ~[jmix-security-1.2.0.jar:na]
at io.jmix.security.impl.constraint.SecureOperationsImpl.isEntityCreatePermitted(SecureOperationsImpl.java:36) ~[jmix-security-1.2.0.jar:na]
at io.jmix.securitydata.constraint.CrudEntityConstraint.applyTo(CrudEntityConstraint.java:52) ~[jmix-security-data-1.2.0.jar:na]
at io.jmix.securitydata.constraint.CrudEntityConstraint.applyTo(CrudEntityConstraint.java:28) ~[jmix-security-data-1.2.0.jar:na]
at io.jmix.core.AccessManager.lambda$applyConstraints$2(AccessManager.java:76) ~[jmix-core-1.2.0.jar:na]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[na:1.8.0_201]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_201]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[na:1.8.0_201]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) ~[na:1.8.0_201]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_201]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_201]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[na:1.8.0_201]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[na:1.8.0_201]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_201]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[na:1.8.0_201]
at io.jmix.core.AccessManager.applyConstraints(AccessManager.java:75) ~[jmix-core-1.2.0.jar:na]
at io.jmix.data.impl.DataStoreCrudListener.beforeEntityLoad(DataStoreCrudListener.java:57) ~[jmix-data-1.2.0.jar:na]
at io.jmix.core.datastore.DataStoreBeforeEntityLoadEvent.sendTo(DataStoreBeforeEntityLoadEvent.java:50) ~[jmix-core-1.2.0.jar:na]
at io.jmix.core.datastore.AbstractDataStore.fireEvent(AbstractDataStore.java:343) ~[jmix-core-1.2.0.jar:na]
at io.jmix.core.datastore.AbstractDataStore.load(AbstractDataStore.java:77) ~[jmix-core-1.2.0.jar:na]
at io.jmix.core.impl.UnconstrainedDataManagerImpl.load(UnconstrainedDataManagerImpl.java:97) ~[jmix-core-1.2.0.jar:na]
at io.jmix.core.FluentLoader$ById.optional(FluentLoader.java:197) ~[jmix-core-1.2.0.jar:na]
at io.jmix.appsettings.impl.AppSettingsToolsImpl.loadAppSettingsEntityFromDataStore(AppSettingsToolsImpl.java:51) ~[jmix-appsettings-1.2.1.jar:na]
at io.jmix.appsettings.impl.AppSettingsImpl.getAppSettingsEntity(AppSettingsImpl.java:56) ~[jmix-appsettings-1.2.1.jar:na]
at io.jmix.appsettings.impl.AppSettingsImpl.load(AppSettingsImpl.java:35) ~[jmix-appsettings-1.2.1.jar:na]
at com.jnj.epos.service.StartBatchServices.test(StartBatchServices.java:33) ~[main/:na]
at com.jnj.epos.service.StartMailQueue.execute(StartMailQueue.java:32) ~[main/:na]
at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[quartz-2.3.2.jar:na]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [quartz-2.3.2.jar:na]
org.quartz.SchedulerException: Job threw an unhandled exception.
at org.quartz.core.JobRunShell.run(JobRunShell.java:213) ~[quartz-2.3.2.jar:na]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [quartz-2.3.2.jar:na]
Caused by: java.lang.IllegalStateException: Authentication is not set. Use SystemAuthenticator in non-user requests like schedulers or asynchronous calls.
at io.jmix.core.security.impl.CurrentAuthenticationImpl.getAuthentication(CurrentAuthenticationImpl.java:49) ~[jmix-core-1.2.0.jar:na]
at io.jmix.security.impl.constraint.AuthenticationPolicyStore.extractFromAuthenticationByScope(AuthenticationPolicyStore.java:107) ~[jmix-security-1.2.0.jar:na]
at io.jmix.security.impl.constraint.AuthenticationPolicyStore.getEntityResourcePolicies(AuthenticationPolicyStore.java:70) ~[jmix-security-1.2.0.jar:na]
at io.jmix.security.impl.constraint.SecureOperationsImpl.isEntityOperationPermitted(SecureOperationsImpl.java:57) ~[jmix-security-1.2.0.jar:na]
at io.jmix.security.impl.constraint.SecureOperationsImpl.isEntityCreatePermitted(SecureOperationsImpl.java:36) ~[jmix-security-1.2.0.jar:na]
at io.jmix.securitydata.constraint.CrudEntityConstraint.applyTo(CrudEntityConstraint.java:52) ~[jmix-security-data-1.2.0.jar:na]
at io.jmix.securitydata.constraint.CrudEntityConstraint.applyTo(CrudEntityConstraint.java:28) ~[jmix-security-data-1.2.0.jar:na]
at io.jmix.core.AccessManager.lambda$applyConstraints$2(AccessManager.java:76) ~[jmix-core-1.2.0.jar:na]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) ~[na:1.8.0_201]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_201]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[na:1.8.0_201]
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) ~[na:1.8.0_201]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_201]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_201]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) ~[na:1.8.0_201]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) ~[na:1.8.0_201]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_201]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) ~[na:1.8.0_201]
at io.jmix.core.AccessManager.applyConstraints(AccessManager.java:75) ~[jmix-core-1.2.0.jar:na]
at io.jmix.data.impl.DataStoreCrudListener.beforeEntityLoad(DataStoreCrudListener.java:57) ~[jmix-data-1.2.0.jar:na]
at io.jmix.core.datastore.DataStoreBeforeEntityLoadEvent.sendTo(DataStoreBeforeEntityLoadEvent.java:50) ~[jmix-core-1.2.0.jar:na]
at io.jmix.core.datastore.AbstractDataStore.fireEvent(AbstractDataStore.java:343) ~[jmix-core-1.2.0.jar:na]
at io.jmix.core.datastore.AbstractDataStore.load(AbstractDataStore.java:77) ~[jmix-core-1.2.0.jar:na]
at io.jmix.core.impl.UnconstrainedDataManagerImpl.load(UnconstrainedDataManagerImpl.java:97) ~[jmix-core-1.2.0.jar:na]
at io.jmix.core.FluentLoader$ById.optional(FluentLoader.java:197) ~[jmix-core-1.2.0.jar:na]
at io.jmix.appsettings.impl.AppSettingsToolsImpl.loadAppSettingsEntityFromDataStore(AppSettingsToolsImpl.java:51) ~[jmix-appsettings-1.2.1.jar:na]
at io.jmix.appsettings.impl.AppSettingsImpl.getAppSettingsEntity(AppSettingsImpl.java:56) ~[jmix-appsettings-1.2.1.jar:na]
at io.jmix.appsettings.impl.AppSettingsImpl.load(AppSettingsImpl.java:35) ~[jmix-appsettings-1.2.1.jar:na]
at com.jnj.epos.service.StartBatchServices.test(StartBatchServices.java:33) ~[main/:na]
at com.jnj.epos.service.StartMailQueue.execute(StartMailQueue.java:32) ~[main/:na]
at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[quartz-2.3.2.jar:na]
… 1 common frames omitted
Caused by: java.lang.IllegalStateException: Authentication is not set. Use SystemAuthenticator in non-user requests like schedulers or asynchronous calls.