This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Hi Roger:I dont understand what is wrong with your class, but i get same results with it. But when I recompile, it works ok.
if I dissamble your class, I see: public class saidinViewer.Start extends java.lang.Object{ public saidinViewer.Start(); public boolean isViewable(thredds.catalog.InvDatasetImpl); public java.lang.String getViewerLinkHtml(thredds.catalog.InvDatasetImpl, javax.servlet.http.HttpServletRequest); } but when i recompile your source, i get: public class saidinViewer.Start extends java.lang.Object implements thredds.servlet.Viewer{ public saidinViewer.Start(); public boolean isViewable(thredds.catalog.InvDatasetImpl); public java.lang.String getViewerLinkHtml(thredds.catalog.InvDatasetImpl, javax.servlet.http.HttpServletRequest); } So im guuessing you just need to recompile the source correctly. However, placing this code into tomcat/shared/lib does not work, i think due to classloading issues. For now, you will have to put it directly into webapps/thredds/WEB-INF/lib or classes. I will see if I can figure out a way around that. Thanks for bringing this to my attention. My testing failed to see this problem. John Roger Olivella wrote:
John,I'm having some problems in registering our viewer. First of all, I've created a class that implements the Viewer interface (see attached file Start.java). Then I've zipped this file into a JAR file (attached saidin-viewer.jar) and put it into /usr/local/tomcat/shared/lib. Finally, I've restarted Tomcat. Unfortunately, something goes wrong because at, for example,http://ers.cmima.csic.es/thredds/catalog.html?cmd=subset&catalog=http://ers.cmima.csic.es/thredds/catalog/ers/2002/02-Feb/02/catalog.xml&dataset=ers/2002/02-Feb/02/20020202.1342.n16.nc.bz2it doesn't appear our viewer. I've looked at threddsServlet.log and found an error:2007-01-31T10:14:21.607 +0100 [ 607][ 1] ERROR - thredds.servlet.ViewServlet - Attempt to load class saidinViewer.Start does not implementthredds.servlet.ViewerWhat I'm doing wrong? Thank you for your help. Roger J ohn Caron wrote:Youre welcome, let me know how it goes. we will have the code available over an svn web server soon also.Roger Olivella wrote:John, I've downloaded the JAR. Now I'm going to install it. Thank you very much. Roger John Caron wrote:source is at ftp://ftp.unidata.ucar.edu/pub/thredds/tmp/threddsSrc-2.2.18.02.jar sorry that took so long. please let me know when you have downloaded so i can remove it. Roger Olivella wrote:Hi all,We are working on installing and configuring a Thredds server at http://ers.cmima.csic.es/thredds. We have two questions about the viewers:1. When a user clicks on “Integrated Data Viewer (IDV) (webstart)” (for example athttp://ers.cmima.csic.es/thredds/catalog.html?cmd=subset&catalog=http://ers.cmima.csic.es/thredds/catalog/ers/2001/08/25/catalog.xml&dataset=ers/2001/08/25/20010825.1343.n16.nc.bz2 <http://ers.cmima.csic.es/thredds/catalog.html?cmd=subset&catalog=http://ers.cmima.csic.es/thredds/catalog/ers/2001/08/25/catalog.xml&dataset=ers/2001/08/25/20010825.1343.n16.nc.bz2>),webstart loads IDV but it doesn't load directly the 20010825.1343.n16.nc.bz2 file. Are we missing something? 2. We are trying to add another external viewer. According tohttp://www.unidata.ucar.edu/projects/THREDDS/tech/tutorial/Viewers.html,fisrt of all we have to implement the Viewer interface. Thequestion is: where is this interface? At the documentation it canbe read that “Your class must implement the *thredds.servlet.Viewer* interface” but where can we find “thredds.servlet” package? Thanks in advance, Roger Olivella-Pujol Institute of Marine Sciences (CMIMA-CSIC) Barcelona, Catalonia (Spain) (+34) 932 309 500 voice http://saidin.cmima.csic.es <http://saidin.cmima.csic.es/>------------------------------------------------------------------------ package saidinViewer; import thredds.catalog.*; import javax.servlet.http.HttpServletRequest; import java.net.*; import thredds.servlet.Viewer; public class Start implements Viewer { public boolean isViewable( InvDatasetImpl ds) { InvAccess access = ds.getAccess(ServiceType.DODS); if (access == null) access = ds.getAccess(ServiceType.OPENDAP); if (access == null) return false; return (ds.getDataType() == DataType.GRID); } public String getViewerLinkHtml( InvDatasetImpl ds, HttpServletRequest req) { InvAccess access = ds.getAccess(ServiceType.DODS); if (access == null) access = ds.getAccess(ServiceType.OPENDAP); URI dataURI = access.getStandardUri(); try { URI base = new URI( req.getRequestURI().toString()); dataURI = base.resolve( dataURI); } catch (URISyntaxException e) { e.printStackTrace(); System.out.println("Resolve URL with "+req.getRequestURI()); } //return "<a href='/thredds/view/idv.jnlp?url="+dataURI.toString()+"'>IDV</a>"; return "<a href='http://ers.cmima.csic.es/saidin?img="+dataURI.toString()+"'>SAIDIN</a>"; } }