[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: About the viewers



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.bz2


it 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.Viewer


What 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 at
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


<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 to
http://www.unidata.ucar.edu/projects/THREDDS/tech/tutorial/Viewers.html,


fisrt of all we have to implement the Viewer interface. The
question is: where is this interface? At the documentation it can
be 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>";
         }
}


NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.