You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Vineet <vc...@qasource.com> on 2012/01/03 12:56:53 UTC

org.apache.jackrabbit.rmi.client.ClientNode cannot be cast to net.fortuna.ical4j.model.Component

Hi

I am using Ical4j library to read the ics file.But is giving me the 
following error

"org.apache.jackrabbit.rmi.client.ClientNode cannot be cast to 
net.fortuna.ical4j.model.Component"

The code is as following

import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.jcr.LoginException;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.Value;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;



import net.fortuna.ical4j.data.CalendarBuilder;
import net.fortuna.ical4j.model.Calendar;
import net.fortuna.ical4j.model.Component;

import org.apache.jackrabbit.rmi.client.ClientNode;
import org.apache.jackrabbit.rmi.repository.URLRemoteRepository;
import org.apache.jackrabbit.servlet.ServletRepository;


public class Duplicate extends HttpServlet {

     private List<Node> icsFilesList = new ArrayList<Node>();

     SimpleDateFormat f = new SimpleDateFormat("yyyy/MM/dd");

     String todayDate = "";

     String htmlPrefix = "";

     String htmlMid = "";

     String htmlPostfix = "";

     public void doGet(HttpServletRequest req, HttpServletResponse resp)
     throws ServletException, IOException {

         String leadname = req.getParameter("selectedLead");
         System.out.println("selectedLead [" + leadname + "]");
         System.out.println("selected date [" + req.getParameter("theDate")
                 + "]");
         try {
             String htmlString = htmlPrefix + getLeadNamesHtmlString() + 
htmlMid
             + getScheduleForLeads(leadname) + htmlPostfix;
             resp.getWriter().println(htmlString);
         } catch (RepositoryException e) {
             resp.getWriter().println(
                     "Please conatct administrator. Error while 
accessing Calendar repository :\n"
                     + e.getMessage());
         }

     }

     public void init() throws ServletException {
         System.out.println("In the init() Method");
         //todayDate = f.format(Calendar.getInstance().getTime());

         htmlPrefix = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 
Transitional//EN\" "
             + 
"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html 
xmlns=\"http://www.w3.org/1999/xhtml\">"
             + "<head><meta http-equiv=\"Content-Type\" 
content=\"text/html; charset=iso-8859-1\" />"
             + "<title>HR - Calendar Viewer</title><link 
href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" />"
             + "<link type=\"text/css\" rel=\"stylesheet\" 
href=\"calendar.css?random=20051112\" media=\"screen\"></LINK>"
             + "<SCRIPT type=\"text/javascript\" 
src=\"calendar.js?random=20060118\"></script>"
             + "</head><body><!--up div start --><div 
id=\"up_div\"><!--header start --><div id=\"header\">"
             + "<!--img src=\"images/best_future.gif\" width=\"153\" 
height=\"91\" alt=\"best for future\"/-->"
             + "<img src=\"images/bebo_technologies_logo.jpg\" 
alt=\"Bebo Technologies\" width=\"150\" height=\"100\" border=\"0\">"
             + "<!--img class=\"logo\" 
src=\"images/bebo_technologies_logo.jpg\" width=\"200\" height=\"38\" 
title=\"bebo\" alt=\"bebo logo\" /-->"
             + "<h1>Be Extension &nbsp;&nbsp;&nbsp;Be Offshore</h1><ul>"
             + "<li><a href=\"#\"> </a></li><li><a href=\"#\"> 
</a></li><li><a href=\"#\"> </a></li><li><a href=\"#\"> </a></li>"
             + "<li><a href=\"#\"> </a></li><li><a href=\"#\"> 
</a></li><li><a href=\"#\"> </a></li></ul></div>"
             + "<!--header end --></div><!--up div end --><!--mid div 
start --><!--body part start -->"
             + "<div id=\"body_pan\"><h2>Schedule of leads on <br 
/><form align=\"right\"><input type=\"text\" value=\""
             + todayDate
             + "\" style=\"width:70px;\""
             + "readonly name=\"theDate\"><input type=\"button\" 
value=\"Cal\" "
             + 
"onclick=\"displayCalendar(document.forms[0].theDate,'yyyy/mm/dd',this)\"></form></h2><div 
id=\"update\"><p class=\"up\">"
             + "</p><div id=\"latest\"><h2>Lead names</h2>";

         htmlMid = "<br class=\"bank\" /></div><p 
class=\"down\"></p></div><!-- services star -->"
             + "<div id=\"ser\"><p class=\"se\"></p><div id=\"services\">";

         htmlPostfix = "<br class=\"bank\" /></div><p 
class=\"se_down\"></p></div><!--services end --><!--body part end -->"
             + "<br class=\"bank\" /></div></div><div id=\"footer\"><div 
id=\"foo\"><ul><li><a href=\"#\">Home</a>|</li>"
             + "<li><a href=\"#\">About Us</a>|</li><li><a 
href=\"#\">Company </a>|</li><li><a href=\"#\">Partners</a>|</li>"
             + "<li><a href=\"#\">Blog</a>|</li><li><a 
href=\"#\">Resources </a>|</li><li><a href=\"#\">Contact</a></li></ul>"
             + "<p>Copyright &copy; bebo Technologies Pvt Ltd. All 
rights reserved.</p></div></div><!--mid div end --></body></html>";

         try {
             Repository repository = new URLRemoteRepository(
             "http://192.16.17.60:8080/CalendarViewer/rmi");
             Session session = null;

             session = repository.login(new SimpleCredentials("admin", 
"admin"
                     .toCharArray()));
             Node rootNode = session.getRootNode();
             NodeIterator itr = rootNode.getNodes();
             for (Iterator iterator = rootNode.getNodes(); 
iterator.hasNext();) {
                 Node node = (Node) iterator.next();
                 System.out.println("NodeName = " + node.getName());
                 if (node.getName().endsWith(".ics")) {
                     icsFilesList.add(node);
                     String datacontent = node.getNode("jcr:content")
                     .getProperty("jcr:data").getString();
                     //System.out.println("DataContent : " + datacontent);
                 }
             }
         } catch (LoginException e) {
             throw new ServletException(e);
         } catch (RepositoryException e) {
             throw new ServletException(e);
         } catch (Exception e) {

         }

     }

     /**
      * <ul>
      * <li><a href="#">Lead 1 </a></li>
      * <li><a href="#">Lead 2</a></li>
      * <li><a href="#">Lead 3</a></li>
      * <li><a href="#">Lead 4</a></li>
      * </ul>
      *
      * @return
      * @throws RepositoryException
      */
     private String getLeadNamesHtmlString() throws RepositoryException {

         StringBuffer htmlStr = new StringBuffer("<ul>");

         String contextPath = getServletContext().getContextPath();

         System.out.println("contextPath : " + contextPath);

         contextPath = contextPath + "/viewer?selectedLead=";
         htmlStr.append("<li><a href=\"" + contextPath + "\">All</a>");
         for (Iterator iterator = icsFilesList.iterator(); 
iterator.hasNext();) {
             Node node = (Node) iterator.next();
             String filename = node.getName();
             String lead = filename.substring(0, filename.indexOf(".ics"));

             htmlStr.append("<li><a href=\"" + contextPath + lead + "\">");

             htmlStr.append(lead);
             htmlStr.append("</a></li>");

         }

         htmlStr.append("</ul>");

         return htmlStr.toString();
     }

     private String getScheduleForLeads(String leadname)
     throws RepositoryException {
         System.out.println("In the getScheduleForLeads() Method with 
arg = "
                 + leadname);
         StringBuffer htmlStr = new StringBuffer("");

         for (Iterator iterator = icsFilesList.iterator(); 
iterator.hasNext();) {
             Node node = (Node) iterator.next();
             String filename = node.getName();
             String lead = filename.substring(0, filename.indexOf(".ics"));

             if (leadname != null && !leadname.equals("")
&& lead.equals(leadname)) {
                 System.out.println("adding cal for : " + leadname);
                 htmlStr.append("<h2>");
                 htmlStr.append(lead);
                 htmlStr.append("</h2>");
                 /*
                  * htmlStr .append("<table border=\"0\">" + "<tr><td>10:00
                  * to 12:00 </td><td><font size=\"4\">Interview with 
yyyyyy on
                  * ttttttt using mmmmmmm</font></td></tr>" + "<tr><td>1:00
                  * to 2:00 </td><td><font size=\"3\">Interview with 
xxxxxx on
                  * dddjdjd using dkdkdkd</font></td></tr>" + "</table>");
                  */

                 try {
                     FileInputStream fin = new FileInputStream(filename);

                     CalendarBuilder builder = new CalendarBuilder();

                     System.out.println("PATH --->" + node.getPath());
                     net.fortuna.ical4j.model.Calendar calendar = builder
                     .build(node.getNode("jcr:content").getProperty(
                     "jcr:data").getStream());


                     List list = calendar.getComponents("VEVENT");
                     System.out.println(list.size());

                     for (Iterator iterator2 = list.iterator(); iterator
                     .hasNext();) {
                         String eventName = null;
                         String eventStartDate = null;
                         String eventEndDate = null;
                         String eventRepeatPattern = null;




                         Component component = (Component) iterator.next();

                         eventName = 
component.getProperty("SUMMARY").getValue();
                         eventStartDate = component.getProperty("DTSTART")
                         .getValue();
                         eventEndDate = component.getProperty("DTEND")
                         .getValue();
                         if (component.getProperty("RRULE") != null) {
                             eventRepeatPattern = 
component.getProperty("RRULE")
                             .getValue();
                         }

                         System.out.println(eventName);
                         System.out.println(eventStartDate);
                         System.out.println(eventEndDate);
                         if (eventRepeatPattern != null) {

                             System.out.println(eventRepeatPattern);
                         }

                         System.out.println();

                         htmlStr.append("<table border=\"0\">" + "<tr><td>"
                                 + eventName + "</td><td><font size=\"4\">"
                                 + eventStartDate + "</font></td>"
                                 + "<td><font size=\"4\">" + eventEndDate
                                 + "</font></td></tr>" + "</table>");
                     }

                 } catch (Exception e) {
                     System.out.println("Execption ---> " + e.getMessage());
                 }

                 String datacontent = 
node.getNode("jcr:content").getProperty(
                 "jcr:data").getString();
                 break;
             } else if (leadname == null || leadname.equals("")) {
                 System.out.println("adding cal for ================== " 
+ leadname);
                 htmlStr.append("<h2>");
                 htmlStr.append(lead);
                 htmlStr.append("</h2>");

                 String datacontent = 
node.getNode("jcr:content").getProperty("jcr:data").getString();

                 //htmlStr.append(datacontent);

                 byte datacontentInBytes[] = datacontent.getBytes();
                 try {

                     CalendarBuilder builder = new CalendarBuilder();

                     FileOutputStream fos = new 
FileOutputStream("\\\\192.16.17.52//shared//vin.ics");
                     fos.write(datacontentInBytes);
                     fos.flush();
                     fos.close();

                     //ByteArrayInputStream bis = new 
ByteArrayInputStream(datacontentInBytes);
                     //FileInputStream fis = 
node.getNode("jcr:content").getProperty("jcr:data").getStream();



                     Calendar calendar = 
builder.build(node.getNode("jcr:content").getProperty("jcr:data").getStream());


                     List list1 = calendar.getComponents("VEVENT");


                     System.out.println("list size = "+list1.size());


                     for (Iterator iterator2 = list1.iterator(); 
iterator.hasNext();) {

                         String eventName = null;
                         String eventStartDate = null;
                         String eventEndDate = null;
                         String eventRepeatPattern =    null;

                         Component component = (Component) iterator.next();
                         System.out.println("component = "+ component);
                         //htmlStr.append(datacontent);

                         /*component.
                         //eventNamev = component.getProperty("SUMMARY");
                         //eventName = eventNamev.getString();
                         eventStartDate = 
component.getProperty("DTSTART").getValue();
                         eventEndDate = 
component.getProperty("DTEND").getValue();

                         if (component.getProperty("RRULE") != null) {

                             eventRepeatPattern = 
component.getProperty("RRULE")    .getValue();

                         }

                         System.out.println(eventName);
                         System.out.println(eventStartDate);
                         System.out.println(eventEndDate);

                         if(eventRepeatPattern != null){

                             System.out.println(eventRepeatPattern);
                         }

                         System.out.println();
                         //htmlStr.append(eventName);


                         htmlStr.append("<table border=\"0\">" + 
"<tr><td>" +
                                 eventName + "</td><td><font 
size=\"4\">" + eventStartDate + "</font></td>" +
                                 "<td><fontsize=\"4\">" + eventEndDate + 
"</font></td></tr>" + "</table>"); */

                         System.out.println(" ================== " );
                         }
                 } catch (Exception e) {
                     System.out.println("Execption ---> " +e.getMessage());
                 }

             }

         }

         return htmlStr.toString();
     }
}

Can anyone help me with this...

Thanks
Vineet


Re: org.apache.jackrabbit.rmi.client.ClientNode cannot be cast to net.fortuna.ical4j.model.Component

Posted by Vineet <vc...@qasource.com>.
On 1/3/2012 5:34 PM, Jukka Zitting wrote:
> Hi,
>
> On Tue, Jan 3, 2012 at 12:56 PM, Vineet<vc...@qasource.com>  wrote:
>> "org.apache.jackrabbit.rmi.client.ClientNode cannot be cast to
>> net.fortuna.ical4j.model.Component"
> Sounds more like an ical4j problem than a Jackrabbit one.
>
> BR,
>
> Jukka Zitting
>

Hi
I have tried reading a normal file (create using FileInputStream) and 
that is working perfectly fine.
I am able to read the data from the ics file, even from the remote 
machine if I have rights.
Thats why I was wondering that the problem is at which end
Below is the sample code, it is working absolutely fine

public static void main(String[] args) {

         try {
             int a;
             int i = 1;
             String s="";

             FileInputStream fin = new 
FileInputStream("E://downloads//AA.ics");

             while((a = fin.read())!=-1){
                 s = s + (char)a;
             }

             byte b[] = s.getBytes();
             fin.close();

             //FileOutputStream fos = new 
FileOutputStream("\\\\192.16.17.52//shared//vin.ics");
             //fos.write(b);

             FileInputStream fileInputStream = new 
FileInputStream("\\\\192.16.17.52//shared//vin.ics");
             CalendarBuilder builder = new CalendarBuilder();

             Calendar calendar = builder.build(fileInputStream);

             List list = calendar.getComponents("VEVENT");
             System.out.println(list.size());

             for (Iterator iterator = list.iterator(); 
iterator.hasNext();) {
                 String eventName = null;
                 String eventStartDate = null;
                 String eventEndDate = null;
                 String eventRepeatPattern = null;

                 Component component = (Component) iterator.next();

                 System.out.println(i + "> " + component.getName());
                 eventName = component.getProperty("SUMMARY").getValue();
                 eventStartDate = 
component.getProperty("DTSTART").getValue();
                 eventEndDate = component.getProperty("DTEND").getValue();
                 if(component.getProperty("RRULE")!= null){
                 eventRepeatPattern = 
component.getProperty("RRULE").getValue();
                 }

                 System.out.println(eventName);
                 System.out.println(eventStartDate);
                 System.out.println(eventEndDate);
                 if(eventRepeatPattern != null){

                     System.out.println(eventRepeatPattern);
                 }

                 System.out.println("...End...");
                 System.out.println();
                 i++;
             }

             /*
              * for (Iterator i = calendar.getComponents().iterator();
              * i.hasNext();) { Component component = (Component) i.next();
              * System.out.println("Component [" + component.getName() + 
"]");
              * System.out.println();
              *
              * component.getProperty("SUMMARY").getValue
              *
              * for (Iterator j = component.getProperties().iterator();
              * j.hasNext();) { String eventName=null; String
              * eventStartDate=null; String eventEndDate=null; String
              * eventYear=null; String eventMonth=null; String 
eventDate=null;
              *
              * Property property = (Property) j.next();
              *
              * if(property.getName().equalsIgnoreCase("summary")){
              *  } Property property = (Property) j.next();
              *
              * System.out.println("Property [" + property.getName() + 
", " +
              * property.getValue() + "]"); } System.out.println(); }
              */

         } catch (Exception e) {
             System.out.println("Execption ---> " + e.getMessage());
         }
     }



Re: org.apache.jackrabbit.rmi.client.ClientNode cannot be cast to net.fortuna.ical4j.model.Component

Posted by Jukka Zitting <ju...@gmail.com>.
Hi,

On Tue, Jan 3, 2012 at 12:56 PM, Vineet <vc...@qasource.com> wrote:
> "org.apache.jackrabbit.rmi.client.ClientNode cannot be cast to
> net.fortuna.ical4j.model.Component"

Sounds more like an ical4j problem than a Jackrabbit one.

BR,

Jukka Zitting