Hi everybody!
I'm trying to retrieves jsonArray in my httpServlet under to use the
remote paging of my gridPanel.
I followed this exemples :
http://www.17od.com/2008/07/24/how-to-create-a-remote-paging-listview-using-gwt-ext/
I almost have the same code. But when i build my grid, the servlet is
never call and i have no message in my log. I use apach tomcat server.
My code :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package malak.cara.client.riupdate;
import malak.cara.client.MainEntryPoint;
import com.gwtext.client.core.RegionPosition;
import com.gwtext.client.core.SortDir;
import com.gwtext.client.data.FieldDef;
import com.gwtext.client.data.HttpProxy;
import com.gwtext.client.data.IntegerFieldDef;
import com.gwtext.client.data.JsonReader;
import com.gwtext.client.data.RecordDef;
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Component;
import com.gwtext.client.widgets.MessageBox;
import com.gwtext.client.widgets.PagingToolbar;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.event.PanelListenerAdapter;
import com.gwtext.client.widgets.grid.ColumnConfig;
import com.gwtext.client.widgets.grid.ColumnModel;
import com.gwtext.client.widgets.grid.GridPanel;
import com.gwtext.client.widgets.grid.GridView;
import com.gwtext.client.widgets.grid.RowSelectionModel;
import com.gwtext.client.widgets.layout.BorderLayoutData;
public class AppRouteIdUpdate extends Panel {
/**
* Panel of AppRouteIdUpdate
*/
public static Panel centerPanel;
public GridPanel routesIdGrid;
public ColumnModel columnModel;
public final int nbColumns = 8;
public Button previousB;
public AppRouteIdUpdate() {
super();
this.setBorder(false);
this.setAutoScroll(true);
//this.setLayout(new BorderLayout());
buildCenterPanel();
this.add(centerPanel, new BorderLayoutData
(RegionPosition.CENTER));
this.doLayout();
MainEntryPoint.refresh();
}
/**
* This method builds the center panel
*/
public void buildCenterPanel() {
centerPanel = new Panel();
centerPanel.setAutoWidth(true);
centerPanel.setAutoHeight(true);
centerPanel.setAutoScroll(true);
centerPanel.setBorder(false);
centerPanel.doLayout(true);
buildroutesIdGrid();
}
/**
* This method builds the routesIdGrid
*/
public void buildroutesIdGrid() {
HttpProxy dataProxy = new HttpProxy("http://localhost:8888/
routesId");
final RecordDef recordDef = new RecordDef(new FieldDef[]{
new StringFieldDef("class"),
new StringFieldDef("route_id"),
new IntegerFieldDef("id"),
new StringFieldDef("projet"),
new StringFieldDef("cli"),
new StringFieldDef("country"),
new StringFieldDef("route_type"),
new StringFieldDef("resource"),
new StringFieldDef("resource_type"),
new StringFieldDef("plan"),
});
JsonReader reader = new JsonReader(recordDef);
reader.setRoot("routesId");
reader.setTotalProperty("totalRoutesId");
reader.setId("id");
final Store store = new Store(dataProxy, reader, true);
store.setDefaultSort("id", SortDir.ASC);
ColumnConfig[] columns = new ColumnConfig[]{
new ColumnConfig("Route Id", "route_id", 100, true),
new ColumnConfig("Projet", "projet", 90, true),
new ColumnConfig("Cli", "cli", 130, true),
new ColumnConfig("Country", "country", 100, true),
new ColumnConfig("Route Type", "route_type", 100,
true),
new ColumnConfig("Resource", "resource", 100, true),
new ColumnConfig("Type Of Resource", "resource_type", 100,
true),
new ColumnConfig("plan", "plan", 100, true)
};
columnModel = new ColumnModel(columns);
columnModel.setDefaultSortable(true);
routesIdGrid = new GridPanel();
routesIdGrid.setWidth(1000);
routesIdGrid.setHeight(300);
routesIdGrid.setStore(store);
routesIdGrid.setColumnModel(columnModel);
routesIdGrid.setTrackMouseOver(true);
routesIdGrid.setLoadMask(true);
routesIdGrid.setSelectionModel(new RowSelectionModel());
routesIdGrid.setStripeRows(true);
routesIdGrid.setEnableColumnResize(true);
GridView view = new GridView();
view.setForceFit(true);
routesIdGrid.setView(view);
PagingToolbar pagingToolbar = new PagingToolbar(store);
pagingToolbar.setPageSize(15);
pagingToolbar.setDisplayInfo(true);
routesIdGrid.setBottomToolbar(pagingToolbar);
centerPanel.add(routesIdGrid);
routesIdGrid.addListener(new PanelListenerAdapter() {
public void onRender(Component component) {
store.load(0, 15);
}
});
}
}
The servlet side :
public class RoutesIdServlet extends HttpServlet {
/**
* Araxxe logger
*/
private static ArxLogger log = new ArxLogger(
RoutesIdServlet.class);
/**
* Processes requests for both HTTP <code>GET</code> and
<code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
// Display the parameters we're passed in for debugging
purposes
//printParameters(req);
// Get the limit and sort parameters off the request
int start = request.getParameter("start") == null ? 1 :
Integer.parseInt(request.getParameter(
"start"));
int numberToReturn = request.getParameter("limit") == null ?
10 : Integer.parseInt(request.getParameter(
"limit"));
String sortBy = request.getParameter("sort") == null ? "id" :
request.getParameter(
"sort");
String sortOrder = request.getParameter("dir") == null ?
"asc" : request.getParameter(
"dir");
// Create the SQL query used to retrieve the persons
String sql = createMainSQLQuery(sortBy, sortOrder);
ArrayList routesId;
try {
// Execute the query to return the exact records
requested
routesId = getroutesId(sql, start, numberToReturn);
// Convert the list of routesId into a JSON string
JSONObject jsonDataToReturn = new JSONObject();
JSONArray jsonroutesId = new JSONArray();
jsonroutesId.add(routesId);
jsonDataToReturn.put("totalRoutesId",
getTotalNumberOfroutesId(sql));
jsonDataToReturn.put("routesId", jsonroutesId);
// Write everything back to the requestor
response.getWriter().print(jsonDataToReturn.toString(1));
/* TODO output your page here
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet RoutesIdServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet RoutesIdServlet at " +
request.getContextPath () + "</h1>");
out.println("</body>");
out.println("</html>");
*/
} finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet
methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
System.out.println("on pac laaaa");
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Short description";
}// </editor-fold>
public ArrayList getroutesId(String sql, int start, int
numberToReturn) {
StringBuffer sqlBuffer = new StringBuffer(
"SELECT * FROM (SELECT a.*, ROWNUM rnum from (");
sqlBuffer.append(sql);
sqlBuffer.append(") a WHERE ROWNUM <= ");
sqlBuffer.append(start + numberToReturn);
sqlBuffer.append(") WHERE rnum > ");
sqlBuffer.append(start);
RouteId tmproutesId = null;
log.debug("AppCallingCardUpdateServiceImpl.getCallingCards" +
" query = " + sqlBuffer.toString());
ResultSet rs = ArmDb.executeQuery(sqlBuffer.toString());
if (rs == null) {
log.error("AppCallingCardUpdateServiceImpl.getCallingCards
" +
"cannot execute query: " + sqlBuffer.toString());
ArmDb.releaseResultSet(rs);
return null;
}
ArrayList routesId = new ArrayList();
try {
int id = 0;
while (rs.next()) {
tmproutesId = new RouteId();
tmproutesId.setId(id);
tmproutesId.setRouteId(rs.getString("route_id"));
tmproutesId.setProvider(rs.getString("projet"));
tmproutesId.setExpectedCli(rs.getString("cli"));
tmproutesId.setCountry(rs.getString("country"));
tmproutesId.setRouteType(rs.getString("route_type"));
tmproutesId.setAPartyResource(rs.getString
("resource"));
tmproutesId.setTypeOfNumbering(rs.getString
("resource_type"));
tmproutesId.setPlmn(rs.getString("plan"));
id++;
routesId.add(tmproutesId);
}
} catch (Exception e) {
log.exception(e);
ArmDb.releaseResultSet(rs);
return null;
}
log.info("AppCallingCardUpdateServiceImpl.getCallingCards " +
"Successfull retrievment of Calling Cards");
ArmDb.releaseResultSet(rs);
return routesId;
}
/**
* Return the total numbner of records that the given query will
return.
* @param sql
* @return
*/
private Integer getTotalNumberOfroutesId(String sql){
Integer count = new Integer(0);
StringBuffer sqlBuffer = new StringBuffer("SELECT COUNT(*)
count FROM (");
sqlBuffer.append(sql);
sqlBuffer.append(")");
ResultSet rs = ArmDb.executeQuery(sqlBuffer.toString());
log.debug("Method routesIdServlet.getTotalNumberOfPersons
query :" +
sqlBuffer.toString());
if (rs == null) {
log.warn("Method routesIdServlet.getTotalNumberOfPersons"
+
" cannot get data from bypass_tags table");
return new Integer(-1);
}
try {
while (rs.next()) {
count = new Integer(rs.getInt("count"));
} // end while
} catch (Exception e) {
log.exception(e);
ArmDb.releaseResultSet(rs);
return new Integer(-1);
} // end try
log.info("routesIdServlet.getTotalNumberOfPersons " +
"Successfull retrievment of bypass_tags count");
ArmDb.releaseResultSet(rs);
return count;
}
private String createMainSQLQuery(String sortBy, String sortOrder)
{
StringBuffer sql = new StringBuffer(
"SELECT route_id, projet, cli, country," +
" route_type, resource,resource_type, plan" +
" FROM routeId");
sql.append(" ORDER BY ");
sql.append(sortBy);
sql.append(" ");
sql.append(sortOrder);
return sql.toString();
}
And to conclude my routeId class :
package malak.cara.servlets;
public class RouteId {
tmproutesId.setRouteId(rs.getString("route_id"));
private int id;
private String routeId;
private String projet;
private String cli;
private String country;
private String routeType;
private String resource;
private String resrouce_type;
private String plan;
public String getAPartyResource() {
return aPartyResource;
}
public String getCountry() {
return country;
}
public String Cli() {
return cli;
}
public int getId() {
return id;
}
public String getPlan() {
return plan;
}
public String getProjet() {
return projet;
}
public String getRouteId() {
return routeId;
}
public String getRouteType() {
return routeType;
}
public String getResourceType() {
return resourceType;
}
public void setResourceType(String resourceType) {
this.resourceType= resourceType;
}
public void setCountry(String country) {
this.country = country;
}
public void setCli(String cli) {
this.cli= cli;
}
public void setId(int id) {
this.id = id;
}
public void setPlmn(String plan) {
this.plan= plan;
}
public void setProvider(String projet) {
this.projet= projet;
}
public void setRouteId(String routeId) {
this.routeId = routeId;
}
public void setRouteType(String routeType) {
this.routeType = routeType;
}
public void setRouteType(String routeType) {
this.routeType= routeType;
}
}
I have only one message in my browser (mozilla with developper
toolbar) :
access to restricted URL denied
Thanks in advance,
Damien
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---