I can’t seem to get my sample app working. When I go to the /events.do url, all my data fields come up null in the generated xml.
Here is the connector code I have set up:
/*
- Copyright © 2009 - DHTMLX, All rights reserved
*/
import java.sql.Connection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.dhtmlx.connector.ConnectorServlet;
import com.dhtmlx.connector.DBType;
import com.dhtmlx.connector.SchedulerConnector;
import com.dhtmlx.connector.ThreadSafeConnectorServlet;
// TODO: Auto-generated Javadoc
/**
-
The Class SchedulerBasicConnector.
*/
public class Scheduler_BasicConnector extends ThreadSafeConnectorServlet {
/* (non-Javadoc)
-
@see com.dhtmlx.connector.ConnectorServlet#configure()
*/
protected void configure(HttpServletRequest req, HttpServletResponse res) {
Connection conn= ( new DataBaseConnection()).getConnection();
SchedulerConnector c = new SchedulerConnector(conn,DBType.Oracle);
c.servlet(req,res);
c.render_sql("select classes.guid as event_id,classes.startdate as start_date, classes.enddate as end_date, courses.coursename as event_name, courses.description as details from classes inner join courses on CLASSES.COURSEGUID =courses.guid where courses.guid = '842'", "event_id", "start_date,end_date,event_name,details","","");
}
}
Hi,
We use servlet to get the data from the database.
Below is the code snippet which will be helpful for you.
// code snippet to load the data in the scheduler.
scheduler.load("<%=request.getContextPath()%>/simpleServlet?uid="+ scheduler.uid());
public class SimpleServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/xml; charset=UTF-8");
List eventList = //get the event list as value objects from the database
String data = constructData(eventList);
ServletOutputStream responseStream = response.getOutputStream();
responseStream.write(data.getBytes("UTF8"));
responseStream.flush();
response.flushBuffer();
}
private String constructData(List eventList) {
StringBuffer data = new StringBuffer();
data.append("<data>");
Iterator eventListIter = eventList.iterator();
while(eventListIter.hasNext()) {
ValueObjects valueObjects = (ValueObjects) eventListIter.next();
data.append("<event id='");
data.append(valueObjects.getEventID());
data.append("' start_date='");
data.append(valueObjects.getStartTime());
data.append("' end_date='");
data.append(valueObjects.getEndTime());
data.append("' text='");
data.append(userCalendarValues.getActivity());
data.append("' remarks='");
data.append(userCalendarValues.getRemarks());
data.append("' />");
}
data.append("</data>");
return data.toString();
}
This way works perfectly for us.
Try to change the code line as
c.render_sql(“select classes.guid as event_id,classes.startdate as start_date, classes.enddate as end_date, courses.coursename as event_name, courses.description as details from classes inner join courses on CLASSES.COURSEGUID =courses.guid where courses.guid = ‘842’”, “EVENT_ID”, “START_DATE,END_DATE,EVENT_NAME,DETAILS”,"","");
Field name in upper-case ( Oracle returns them always in upper case, at least in local tests )
Thanks! All of your suggestions work.