New configuration of the PID provider - misunderstanding

16 views
Skip to first unread message

Maylein, Leonhard

unread,
Jul 16, 2024, 9:34:54 AM (7 days ago) Jul 16
to Dataverse Users Community, Fellhauer, Iven, nina....@urz.uni-heidelberg.de

Hi,


We are currently trying to convert the PID configuration in 6.2 to the new (multi PID) options (even though we only use a single PID provider).


This is what our new test configuration looks like.:


<jvm-options>-Ddataverse.pid.default-provider=datacite1</jvm-options>
<jvm-options>-Ddataverse.pid.providers=datacite1</jvm-options>
<jvm-options>-Ddataverse.pid.datacite1.type=datacite</jvm-options>
<jvm-options>-Ddataverse.pid.datacite1.label=datacite</jvm-options>
<jvm-options>-Ddataverse.pid.datacite1.datacite.mds-api-url=https://mps.test.datacite.org</jvm-options>
<jvm-options>-Ddataverse.pid.datacite1.datacite.rest-api-url=https://api.test.datacite.org</jvm-options>
<jvm-options>-Ddataverse.pid.datacite1.datacite.username=***</jvm-options>
<jvm-options>-Ddataverse.pid.datacite1.datacite.password=***</jvm-options> <!--TODO alias -->
<jvm-options>-Ddataverse.pid.datacite1.authority=10.82109</jvm-options>
<jvm-options>-Ddataverse.pid.datacite1.shoulder=data/</jvm-options>


This leads to the following error:

Caused by: java.util.NoSuchElementException: Unable to find property with name dataverse.pid.datacite.mds-api-url

(error stack see below)

It looks to me as if the old parameter of the legacy configuration is being searched for here.
Or did we misinterpret the configuration documentation?

Tanks,

Leonhard Maylein


[2024-07-16T09:28:15.800-0400] [Payara 6.2024.6] [SEVERE] [] [javax.enterprise.system.tools.deployment.common] [tid: _ThreadID=31 _ThreadName=RunLevelControllerThread-1721136454521] [timeMillis: 1721136495800] [levelValue: 1000] [[
  Exception while invoking class org.glassfish.ejb.startup.EjbApplication start method
jakarta.ejb.EJBException: jakarta.ejb.CreateException: Initialization failed for Singleton PidProviderFactoryBean
    at com.sun.ejb.containers.AbstractSingletonContainer$SingletonContextFactory.create(AbstractSingletonContainer.java:745)
    at com.sun.ejb.containers.AbstractSingletonContainer.instantiateSingletonInstance(AbstractSingletonContainer.java:477)
    at org.glassfish.ejb.startup.SingletonLifeCycleManager.initializeSingleton(SingletonLifeCycleManager.java:219)
    at org.glassfish.ejb.startup.SingletonLifeCycleManager.initializeSingleton(SingletonLifeCycleManager.java:213)
    at org.glassfish.ejb.startup.SingletonLifeCycleManager.initializeSingleton(SingletonLifeCycleManager.java:180)
    at org.glassfish.ejb.startup.SingletonLifeCycleManager.doStartup(SingletonLifeCycleManager.java:159)
    at org.glassfish.ejb.startup.EjbApplication.start(EjbApplication.java:171)
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:123)
    at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:292)
    at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:361)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.initialize(ApplicationLifecycle.java:633)
    at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:352)
    at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:303)
    at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:351)
    at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:466)
    at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:281)
    at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:65)
    at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2103)
    at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
    at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:67)
    at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1213)
    at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1144)
    at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$UpOneLevel.run(CurrentTaskFuture.java:762)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: jakarta.ejb.CreateException: Initialization failed for Singleton PidProviderFactoryBean
    at com.sun.ejb.containers.AbstractSingletonContainer.createSingletonEJB(AbstractSingletonContainer.java:598)
    at com.sun.ejb.containers.AbstractSingletonContainer$SingletonContextFactory.create(AbstractSingletonContainer.java:743)
    ... 25 more
Caused by: java.util.NoSuchElementException: Unable to find property with name dataverse.pid.datacite.mds-api-url
    at fish.payara.nucleus.microprofile.config.spi.ConfigValueResolverImpl.throwWhenNotExists(ConfigValueResolverImpl.java:256)
    at fish.payara.nucleus.microprofile.config.spi.PayaraConfig.getValue(PayaraConfig.java:162)
    at edu.harvard.iq.dataverse.settings.JvmSettings.lookup(JvmSettings.java:442)
    at edu.harvard.iq.dataverse.settings.JvmSettings.lookup(JvmSettings.java:413)
    at edu.harvard.iq.dataverse.pidproviders.PidProviderFactoryBean.loadProviders(PidProviderFactoryBean.java:175)
    at edu.harvard.iq.dataverse.pidproviders.PidProviderFactoryBean.init(PidProviderFactoryBean.java:68)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at com.sun.ejb.containers.interceptors.BeanCallbackInterceptor.intercept(InterceptorManager.java:1022)
    at com.sun.ejb.containers.interceptors.CallbackChainImpl.invokeNext(CallbackChainImpl.java:72)
    at com.sun.ejb.containers.interceptors.CallbackInvocationContext.proceed(CallbackInvocationContext.java:204)
    at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163)
    at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.init(SystemInterceptorProxy.java:125)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at com.sun.ejb.containers.interceptors.CallbackInterceptor.intercept(InterceptorManager.java:978)
    at com.sun.ejb.containers.interceptors.CallbackChainImpl.invokeNext(CallbackChainImpl.java:72)
    at com.sun.ejb.containers.interceptors.CallbackInvocationContext.proceed(CallbackInvocationContext.java:204)
    at org.jboss.weld.module.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:81)
    at org.jboss.weld.module.ejb.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:52)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at com.sun.ejb.containers.interceptors.CallbackInterceptor.intercept(InterceptorManager.java:978)
    at com.sun.ejb.containers.interceptors.CallbackChainImpl.invokeNext(CallbackChainImpl.java:72)
    at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:418)
    at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:381)
    at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:2071)
    at com.sun.ejb.containers.AbstractSingletonContainer.createSingletonEJB(AbstractSingletonContainer.java:585)
    ... 26 more
]]




James Myers

unread,
Jul 16, 2024, 9:42:32 AM (7 days ago) Jul 16
to dataverse...@googlegroups.com, Fellhauer, Iven, nina....@urz.uni-heidelberg.de

I think you probably still have the :Protocol, :Authority, :Shoulder, and :DoiProvider settings. With those in place, the code then looks for the jvm options required for that legacy provider. Removing those settings should get rid of the error.

 

-- Jim

--
You received this message because you are subscribed to the Google Groups "Dataverse Users Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dataverse-commu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dataverse-community/3ccd9f6aa3e94835abab8cb2416014a9%40ub.uni-heidelberg.de.

Maylein, Leonhard

unread,
Jul 16, 2024, 10:02:25 AM (7 days ago) Jul 16
to dataverse...@googlegroups.com, Fellhauer, Iven, nina....@urz.uni-heidelberg.de

Hi Jim,


It works. Many thanks.


Leo



Von: dataverse...@googlegroups.com <dataverse...@googlegroups.com> im Auftrag von James Myers <qqm...@hotmail.com>
Gesendet: Dienstag, 16. Juli 2024 15:42
An: dataverse...@googlegroups.com
Cc: Fellhauer, Iven; nina....@urz.uni-heidelberg.de
Betreff: [Dataverse-Users] RE: New configuration of the PID provider - misunderstanding
 

Asbjørn KU-IT

unread,
Jul 18, 2024, 5:00:49 AM (5 days ago) Jul 18
to Dataverse Users Community
Hi

One comment, but I don't think it is your issue.

I think you have a typo in the value.

<jvm-options>-Ddataverse.pid.datacite1.datacite.mds-api-url=https://mps.test.datacite.org</jvm-options>

it should be:
<jvm-options>-Ddataverse.pid.datacite1.datacite.mds-api-url=https://mds.test.datacite.org</jvm-options>

Reply all
Reply to author
Forward
0 new messages