Cannot run pipeline on 1.7-snapshot

173 views
Skip to first unread message

Bogdan Mitrea

unread,
Jul 28, 2016, 12:43:22 PM7/28/16
to xnat_discussion
I am trying to run the DicomToNifti pipeline on the 1.7 snapshot. The installation was performed following the workshop instructions. The error occurs when executing:

/xnat/pipeline/xnat-tools/XnatDataClient -r "http://xnat.url/xnat//data/experiments/XNAT_E00001/scans/6/resources/DICOM/files" -m GET -b -a -s D2577B5E3DDD383B9DA3EB662E57CFDE


and this is the error message:


--------------------------------------------------------------------------------------

Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper

        at org.nrg.xnat.client.data.XnatDataClient.handleBatchTransfer(XnatDataClient.java:319)

        at org.nrg.xnat.client.data.XnatDataClient.handleEntity(XnatDataClient.java:300)

        at org.nrg.xnat.client.data.XnatDataClient.launch(XnatDataClient.java:165)

        at org.nrg.xnat.client.data.XnatDataClient.main(XnatDataClient.java:90)

Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper

        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

        ... 4 more


I noticed the additional '/' in the URI but I don't know how it got there and if it triggers the exception.


Any help is appreciated.


Thank you.


Bogdan

Herrick, Rick

unread,
Jul 28, 2016, 4:33:00 PM7/28/16
to xnat_di...@googlegroups.com

Hi Bogdan,

 

That’s a bug in the pipeline configuration. There’s a missing dependency in the XnatDataClient script. I updated the download bundle, which you can get from https://bitbucket.org/xnatdev/xnat-pipeline/downloads. Try replacing your pipeline source folder with the contents of that zip file and try again.

 

-- 

Rick Herrick

Sr. Programmer/Analyst

Neuroinformatics Research Group

Washington University School of Medicine

--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussi...@googlegroups.com.
To post to this group, send email to xnat_di...@googlegroups.com.
Visit this group at https://groups.google.com/group/xnat_discussion.
For more options, visit https://groups.google.com/d/optout.

 


The materials in this message are private and may contain Protected Healthcare Information or other information of a sensitive nature. If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail.

Bogdan Mitrea

unread,
Jul 29, 2016, 12:24:28 PM7/29/16
to xnat_discussion
Thank you Rick,

I installed the pipeline using the zip file and the pipeline doesn't fail anymore but it remains in queued state. The pipeline log shows:

2016-07-29 11:08:44,437  Couldnt launch /xnat/pipeline/bin/schedule /xnat/pipeline/bin/XnatPipelineLauncher -pipeline /xnat/pipeline/catalog/mricron/DicomToNifti.xml......................

If I run the above command from the terminal I get the following exception:

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/util/MultiValueMap

at org.nrg.pipeline.utils.MailUtils.setMailService(MailUtils.java:150)

at org.nrg.pipeline.client.CommandLineArguments.<init>(CommandLineArguments.java:246)

at org.nrg.pipeline.client.XNATPipelineLauncher.main(XNATPipelineLauncher.java:258)

Caused by: java.lang.ClassNotFoundException: org.springframework.util.MultiValueMap

at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

... 3 more


Bogdan

Spiro Pantazatos

unread,
Aug 10, 2016, 2:46:22 AM8/10/16
to xnat_discussion
Hi Bogdan, Rick,

I reinstalled the XNAT 1.7 Pipeline using the xnat-pipeline-1.7.0-SNAPSHOT.zip post on July 28th in the link above. 

When I tried to rerun DicomToNifti pipeline I got the below error:

Error: Could not find or load main class org.nrg.xnat.client.data.XnatDataClient

I changed the first line of the XnatDataClient script file (i.e. "/lib/XnatDataClient-1.7.0-SNAPSHOT.jar" to "/lib/data-client-1.7.0-SNAPSHOT.jar") and 
the pipeline now seems to work. Hope this might help in case you haven't gotten it to work yet.
Best,

Spiro

Bogdan Mitrea

unread,
Aug 23, 2016, 4:09:32 PM8/23/16
to xnat_discussion
Thank you for your suggestion Spiro, but it doesn't work for me.

I went back to square one and used the xnat-dev vagrant box( from bitbucket repo). I checked out the latest version from the repositories for both the pipeline engine and xnat-web. I installed the pipeline engine using ./gradlew (and custom gradle.settings file) and deployed xnat-web using ./gradlew war deployToTomcat.

I get the same error for both the autorun pipeline and the DicomToNifiti pipeline from the catalog (pipeline.log attached). 
If I run the command in the terminal, I get:

Param Value Pair id=XNAT_E00001
Param Value Pair host=http://10.11.5.80/
Param Value Pair u=d9eed5d8-e0d5-4fd8-b889-5432638e875d
Param Value Pair pwd=********
Param Value Pair label=90002
Param Value Pair project=brainPipe
Param Value Pair mailhost=localhost
Param Value Pair userfullname=A.Admin
Param Value Pair builddir=/data/xnat/build/brainPipe/20160823_194201
Param Value Pair xnatserver=XNAT
Param Value Pair adminemail=y...@yoursite.org
Param Value Pair useremail=admini...@xnat.org
Param Value Pair workflowid=22
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/util/MultiValueMap
        at org.nrg.pipeline.utils.MailUtils.setMailService(MailUtils.java:150)
        at org.nrg.pipeline.client.CommandLineArguments.<init>(CommandLineArguments.java:246)
        at org.nrg.pipeline.client.XNATPipelineLauncher.main(XNATPipelineLauncher.java:258)
Caused by: java.lang.ClassNotFoundException: org.springframework.util.MultiValueMap
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 3 more


I found an old post with a similar error which solved the problem by reinstalling the pipeline engine but that didn't help me. I understand I might have an old jar file somewhere but I can't find.

Any advice is appreciated.

Bogdan
pipeline.log

Spiro Pantazatos

unread,
Aug 23, 2016, 4:35:49 PM8/23/16
to xnat_di...@googlegroups.com
Hi Bogdan,
I don't remember running the ./gradew command when installing XNAT 1.7. Did you follow the installation instructions from the 2016 workshop? Maybe the differences are in using gradle to install (vs. not)?



On Tue, Aug 23, 2016 at 4:09 PM, Bogdan Mitrea <bogdan...@gmail.com> wrote:
Thank you for your suggestion Spiro, but it doesn't work for me.
I went back to square one and used the xnat-dev vagrant box( from bitbucket repo). I checked out the latest version from the repositories for both the pipeline engine and xnat-web. I installed the pipeline engine using ./gradlew (and custom gradle.settings file) and deployed xnat-web using ./gradlew war deployToTomcat.

I get the same error for both the autorun pipeline and the DicomToNifiti pipeline from the catalog (pipeline.log attached). 
If I run the command in the terminal, I get:

Param Value Pair id=XNAT_E00001
Param Value Pair host=http://10.11.5.80/
Param Value Pair u=d9eed5d8-e0d5-4fd8-b889-5432638e875d
Param Value Pair pwd=********
Param Value Pair label=90002
Param Value Pair project=brainPipe
Param Value Pair mailhost=localhost
Param Value Pair userfullname=A.Admin
Param Value Pair builddir=/data/xnat/build/brainPipe/20160823_194201
Param Value Pair xnatserver=XNAT
Param Value Pair adminemail=y...@yoursite.org
Param Value Pair useremail=administrator@xnat.org

--
You received this message because you are subscribed to a topic in the Google Groups "xnat_discussion" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/xnat_discussion/ZVNcc6EgZlU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to xnat_discussion+unsubscribe@googlegroups.com.
To post to this group, send email to xnat_discussion@googlegroups.com.

Bogdan Mitrea

unread,
Aug 24, 2016, 12:12:47 PM8/24/16
to xnat_discussion
Hi Spiro,

I understand your concern but it should make no difference (setup.sh calls gradlew internally).  I now tried just running the xnat-11 vbox from the workshop. It should have the pipelines engine and the web app already installed. The error is exactly the same. Here is the error from command line:

/data/xnat/pipeline/bin/schedule /data/xnat/pipeline/bin/XnatPipelineLauncher -pipeline /data/xnat/pipeline/catalog/mricron/DicomToNifti.xml -id XNAT_E00001 -host http://xnat-11.xnat.org -u 45f278b2-d7dc-4788-b3cf-b2fa3ce5de56 -pwd PqSpGuHJQ4xZk0nz3boCaNZmlkBJIuWGQcpj7ODW7H6CYn6QXapThQK0DBdIVx0Y -dataType xnat:mrSessionData -label 90003 -supressNotification -project "brainPipe" -parameterFile /data/xnat/build/brainPipe/20160824_160500/90003/90003_params_20160824.xml -notify y...@yoursite.org -notify admini...@xnat.org -parameter mailhost='localhost' -parameter userfullname='A.Admin' -parameter builddir='/data/xnat/build/brainPipe/20160824_160500' -parameter xnatserver='XNAT' -parameter adminemail='y...@yoursite.org' -parameter useremail='admini...@xnat.org' -workFlowPrimaryKey 20
Param Value Pair id=XNAT_E00001
Param Value Pair host=http://xnat-11.xnat.org/
Param Value Pair u=45f278b2-d7dc-4788-b3cf-b2fa3ce5de56
Param Value Pair pwd=********
Param Value Pair label=90003
Param Value Pair project=brainPipe
Param Value Pair mailhost=localhost
Param Value Pair userfullname=A.Admin
Param Value Pair builddir=/data/xnat/build/brainPipe/20160824_160500
Param Value Pair xnatserver=XNAT
Param Value Pair adminemail=y...@yoursite.org
Param Value Pair useremail=admini...@xnat.org
Param Value Pair workflowid=20
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/util/MultiValueMap
        at org.nrg.pipeline.utils.MailUtils.setMailService(MailUtils.java:150)
        at org.nrg.pipeline.client.CommandLineArguments.<init>(CommandLineArguments.java:246)
        at org.nrg.pipeline.client.XNATPipelineLauncher.main(XNATPipelineLauncher.java:258)
Caused by: java.lang.ClassNotFoundException: org.springframework.util.MultiValueMap
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 3 more

On Tuesday, August 23, 2016 at 3:35:49 PM UTC-5, Spiro Pantazatos wrote:
Hi Bogdan,
I don't remember running the ./gradew command when installing XNAT 1.7. Did you follow the installation instructions from the 2016 workshop? Maybe the differences are in using gradle to install (vs. not)?


On Tue, Aug 23, 2016 at 4:09 PM, Bogdan Mitrea <bogdan...@gmail.com> wrote:
Thank you for your suggestion Spiro, but it doesn't work for me.
I went back to square one and used the xnat-dev vagrant box( from bitbucket repo). I checked out the latest version from the repositories for both the pipeline engine and xnat-web. I installed the pipeline engine using ./gradlew (and custom gradle.settings file) and deployed xnat-web using ./gradlew war deployToTomcat.

I get the same error for both the autorun pipeline and the DicomToNifiti pipeline from the catalog (pipeline.log attached). 
If I run the command in the terminal, I get:

Param Value Pair id=XNAT_E00001
Param Value Pair host=http://10.11.5.80/
Param Value Pair u=d9eed5d8-e0d5-4fd8-b889-5432638e875d
Param Value Pair pwd=********
Param Value Pair label=90002
Param Value Pair project=brainPipe
Param Value Pair mailhost=localhost
Param Value Pair userfullname=A.Admin
Param Value Pair builddir=/data/xnat/build/brainPipe/20160823_194201
Param Value Pair xnatserver=XNAT
Param Value Pair adminemail=y...@yoursite.org
Param Value Pair useremail=admini...@xnat.org
To unsubscribe from this group and all its topics, send an email to xnat_discussi...@googlegroups.com.

Herrick, Rick

unread,
Aug 24, 2016, 3:27:05 PM8/24/16
to xnat_di...@googlegroups.com

The problem you’re seeing is due to the script templates being out of sync with the versions of jars in the pipeline’s lib folder. The NoClassDefFoundError is for a class that’s in the spring-core jar, but the jar isn’t getting included because the reference is invalid. I just spent a while working through these dependencies to make sure everything resolves to something that actually exists and pushed up a new version of the pipeline installer:

 

https://bitbucket.org/xnatdev/xnat-pipeline/downloads/xnat-pipeline-1.7.0-SNAPSHOT.zip

 

Like Bogdan said, you probably wouldn’t have called ./gradlew directly, but instead called setup.sh or had setup.sh called for you by the Vagrant provisioning scripts. To fix this manually, just download and extract the zip file above. By default, I think the pipeline installer is placed in /data/xnat/src/pipeline, although you can put it wherever you want.

 

After that, you should delete everything from within the pipeline destination folder:

 

rm -rf /data/xnat/pipeline/*

 

You can rebuild your pipeline engine with either setup.sh or gradlew (as mentioned before, setup.sh invokes gradlew). First, change into the directory where you extracted the pipeline installer from the zip file. Running setup.sh looks like this:

 

./setup.sh ad...@wherever.edu mail.wherever.edu http://your.xnat.url SiteName /data/xnat/pipeline

 

To build with gradlew directly, you can run with everything on the command line like so:

 

./gradlew -PxnatUrl=http://yourxnat.url \

          -PsiteName=SiteName \

          -PadminEmail=ad...@wherever.edu \

          -PsmtpServer=mail.wherever.edu \

          -Pdestination=/data/xnat/pipeline

 

Or you can put all of those properties into a file named gradle.properties in the same folder with gradlew:

 

xnatUrl=http://yourxnat.url

siteName=SiteName

adminEmail=ad...@wherever.edu

smtpServer=mail.wherever.edu

destination=/data/xnat/pipeline

 

Then run gradlew on the command line:

 

./gradlew

 

This definitely fixes the issues with the default autorun pipeline.

Bogdan Mitrea

unread,
Aug 24, 2016, 3:34:50 PM8/24/16
to xnat_discussion
Thank you Rick for taking the time to fix this issue.
I pull the changes from the repo, installed the pipeline engine and everything works as expected.

Thank you again.
Reply all
Reply to author
Forward
0 new messages