NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.
To learn about what's going on, see About the Archive Site.
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>"; } }
thredds
archives: