RE: [XNAT Discussion] UploadAssistantApplet problem

166 views
Skip to first unread message

Haas, Evan

unread,
Oct 17, 2012, 9:19:10 AM10/17/12
to xnat_di...@googlegroups.com

Hi Christopher,

 

You’ll want to make sure that *all* the files in webapps are readable by the user that is executing Tomcat.  For more details check here:  https://wiki.xnat.org/display/XNAT16/Configuring+the+XNAT+Environment

 

If that doesn’t fix it, let’s check the output from your Java console when the applet is attempting to load.  To make the Java console appear, launch your Java Control Panel.  On Ubuntu this would typically be JAVA_HOME/bin/jcontrol (JAVA_HOME being the JRE that your web browser is using).  On the Advanced tab, under Java console, check “Show console”.  Also under Debugging, check “Enable tracing” and “Enable logging”.  Restart your web browser and attempt to upload some images again.  When the applet attempts to launch, the console should pop up with some output in it, which you can post here.

 

Hope that helps.

 

Evan

 

From: xnat_di...@googlegroups.com [mailto:xnat_di...@googlegroups.com] On Behalf Of Christopher Coello
Sent: Wednesday, October 17, 2012 2:54 AM
To: xnat_di...@googlegroups.com
Subject: [XNAT Discussion] UploadAssistantApplet problem

 

Dear XNAT community,

I have partially deployed XNAT 1.6 on Ubuntu 12.04. All the installation procedure went really smoothly. I'm now testing the client functionality, and I have been confronted to a first dead-end.

When trying to upload an image, a pop-up window appears calling the applet org.nrg.upload.ui.UploadAssistantApplet.

First I got the error already reported by Alex (28/4/11) :
load: class org.nrg.upload.ui.UploadAssistantApplet not found
I manually checked the presence of the file in the Apache webapp folder as suggested by Kevin. But I saw that permission of files was restricted to read write only for admin.
So I change it to chmod 755 UploadAssistantApplet.jnlp

Now the applet seems to be found, but the screen is all white except the little logo of XNAT on the bottom (see attached file).

What to do now ? Any help would be welcome.

Best,

-- 

Christopher Coello, Ph.D.
Preclinical PET/CT unit
http://www.med.uio.no/imb/english/research/about/infrastructure/pet/
Institute of Basic Medical Sciences
Faculty of Medicine, University of Oslo
tel. +4745154516

--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To view this discussion on the web visit https://groups.google.com/d/msg/xnat_discussion/-/xMKADYdiJQQJ.
To post to this group, send email to xnat_di...@googlegroups.com.
To unsubscribe from this group, send email to xnat_discussi...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/xnat_discussion?hl=en.




The material in this message is private and may contain Protected Healthcare Information (PHI). 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.

Rick Herrick

unread,
Oct 28, 2012, 2:53:51 PM10/28/12
to xnat_di...@googlegroups.com
Hey Paul,

What browser are you using? You have a 64-bit VM, which can have compatibility issues with 32-bit browsers.

Also, could you please turn on both debug and trace logging in your Java control panel? That will give us some more info about how the plugin is actually loading the jar files.

On Sunday, October 28, 2012 8:30:40 AM UTC-5, Paul Yushkevich wrote:
Hello,

I am having the same problem. I installed XNAT on a centos 6.2 virtual machine to test it out, but the applet crashes with the same error. Here is the console trace:

Java Plug-in 1.6.0_33
Using JRE version 1.6.0_33-b03-424-11M3720 Java HotSpot(TM) 64-Bit Server VM
User home directory = /Users/pauly
----------------------------------------------------
c:   clear console window
f:   finalize objects on finalization queue
g:   garbage collect
h:   display this help message
l:   dump classloader list
m:   print memory usage
o:   trigger logging
q:   hide console
r:   reload policy configuration
s:   dump system and deployment properties
t:   dump thread list
v:   dump thread stack
x:   clear classloader cache
0-5: set trace level to <n>
----------------------------------------------------


load: class org.nrg.upload.ui.UploadAssistantApplet not found.
java.lang.ClassNotFoundException: org.nrg.upload.ui.UploadAssistantApplet
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:195)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:249)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:179)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:160)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:690)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3045)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1497)
at java.lang.Thread.run(Thread.java:680)
Exception: java.lang.ClassNotFoundException: org.nrg.upload.ui.UploadAssistantApplet

There is no problem with jar files copying from xnat tree to the tomcat tree, and all the files in the tomcat tree are R/W by user tomcat.

Thanks!
Paul

Paul Yushkevich

unread,
Oct 28, 2012, 11:40:21 PM10/28/12
to xnat_di...@googlegroups.com
Rick

Thanks for the quick reply. Here is the trace I get with trace level set to 5. I am running Chrome on MacOS. I do get the applet when I run Firefox in my VM, but not when I try to connect to the VM from MacOS.

Thanks!
Paul


Trace level set to 5: all… completed.
basic: Added progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@5eba06ff
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/UploadAssistant-1.6.1.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/DicomEdit-2.2.1.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/DicomUtils-1.2.0.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/antlr-2.7.7.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/antlr-runtime-3.4.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/common-1.2.0.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/commons-codec-1.5.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/commons-httpclient-3.1.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/commons-lang-2.5.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/commons-logging-1.1.1.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/dcm4che-core-2.0.25.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/dicom-xnat-sop-1.6.0.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/dicom-xnat-util-1.6.0.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/ecat-edit-0.1.2.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/ecat-io-0.1.0.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/framework-1.6.1.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/guava-12.0.1.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/jcalendar-1.4.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/json-20080701.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/jsr305-1.3.9.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/log4j-1.2.16.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/looks-2.4.1.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/nrgutil-1.0.1.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/org.restlet-1.1.10.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/slf4j-api-1.6.6.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/slf4j-log4j12-1.6.6.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/stringtemplate-3.2.1.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/jackson-mapper-asl-1.8.5.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/jackson-core-asl-1.8.5.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/spring-beans-3.0.5.RELEASE.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/spring-core-3.0.5.RELEASE.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/spring-web-3.0.5.RELEASE.jar
basic: Plugin2ClassLoader.addURL parent called for http://192.168.1.7:8080/picsl-xnat/applet/wizard-1.1.jar
basic: load: class org.nrg.upload.ui.UploadAssistantApplet not found.
load: class org.nrg.upload.ui.UploadAssistantApplet not found.
java.lang.ClassNotFoundException: org.nrg.upload.ui.UploadAssistantApplet
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:195)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:249)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:179)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:160)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:690)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3045)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1497)
at java.lang.Thread.run(Thread.java:680)
Exception: java.lang.ClassNotFoundException: org.nrg.upload.ui.UploadAssistantApplet
To view this discussion on the web visit https://groups.google.com/d/msg/xnat_discussion/-/hn7Kl-OwC3UJ.

To post to this group, send email to xnat_di...@googlegroups.com.
To unsubscribe from this group, send email to xnat_discussi...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/xnat_discussion?hl=en.



--
Paul A. Yushkevich, Ph.D.
Assistant Professor
Penn Image Computing and Science Laboratory
Department of Radiology
University of Pennsylvania

Rick Herrick

unread,
Oct 29, 2012, 10:35:11 AM10/29/12
to xnat_di...@googlegroups.com, pau...@mail.med.upenn.edu
Hey Paul,

There's your issue: Chrome on MacOS is a 32-bit browser, which will not operate with the 64-bit VM. You can try Safari or Opera, both of which work on my Macbook Pro. Chrome and Java are basically non-operational on OS X until Google releases a 64-bit version of Chrome for OS X. More background here and in links from here:

http://superuser.com/questions/477182/running-java7-in-chrome-for-mac-os-x-requires-64bit

One possible fix is that you're using 1.6, which isn't vulnerable to the Java Zero Day exploit that was in earlier versions of the Java 7 plugin (http://krebsonsecurity.com/2012/08/java-exploit-leveraged-two-flaws). But the 64-bit/32-bit incompatibility is what's killing you. This is an issue on any platform and with any browser/JVM combination. If you can roll over to a 32-bit version of 1.6, you may be able to get Chrome going, but that is a less-than-trivial exercise on OS X.

Paul Yushkevich

unread,
Oct 29, 2012, 11:51:34 AM10/29/12
to xnat_di...@googlegroups.com
Rick,

Thanks a lot. Could it be that the applet was built with Java 7 and Chrome is using Java 6? Because some applets do seem to work fine in my Chrome. When I try the applet in Safari, I get a blank screen in the popup window.

I am a little worried about deploying to not very tech savvy MRI techs at a couple of sites. Are there alternatives to the upload applet, such as a downloadable GUI-based uploader?

Thanks!
Paul

To view this discussion on the web visit https://groups.google.com/d/msg/xnat_discussion/-/dDh9IjcR52UJ.

To post to this group, send email to xnat_di...@googlegroups.com.
To unsubscribe from this group, send email to xnat_discussi...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/xnat_discussion?hl=en.

Herrick, Rick

unread,
Oct 29, 2012, 1:05:35 PM10/29/12
to xnat_di...@googlegroups.com

Re: the Java 7 build thing, I don’t think that’s it. Even when built with the 1.7 JDK, source and target compatibility is set to Java 6. I’m not even certain which compiler was used to build the latest version, since it may have been built on a different machine depending on which developer did the last build and pushed the code. But I can run it on Java 6 on my Windows machine with no issue, so I don’t think that’s the problem.

 

As far as getting things to work with Chrome, I’m really not sure what to say about that. My Chrome tells me that I don’t have the Java plugin installed at all, which is consistent with what I understand about the 32-bit browser not being at all aware of the 64-bit Java installation. It’s really hard to say, though, because it may depend on what order things got installed (e.g. installed a JDK, then a browser, then a JDK, etc.) which can affect how the plugin is configured within the browser and also because the configuration of the Java plugin within the browser is really opaque. It doesn’t appear on the normal plugin page, for example, there are no options that can be set within the browser itself, etc.

 

At this point, there are no other upload options outside of applets directly in XNAT. Believe me, it’s precisely because of issues like this that we’d love to have something else, but there are two primary issues that keep us tied to applets:

 

·         A robust DICOM metadata management API in dcm4che that simply doesn’t exist in any other client technology that has easy cross-platform execution capabilities (i.e. there’s no dcm4flash or the like)

·         Signed applets are one of the few ways we can operate outside of a tightly restricted sandbox and be able to browse your local hard drive

 

Depending on your network configuration, you could consider setting up the XNAT DICOM SCP receiver so that you can do C-STOREs from your scanner and PACS to XNAT. Generally, though, this only works with short-haul transports (like, the scanner is in the same building as the XNAT server).

Reply all
Reply to author
Forward
0 new messages