Hi,

I was trying to do some simple JDO queries in order to find my way in
java google app engine.
I have an persistent object where I store information about users,
called UserData
I also have made a class DAO where I have methods for creating new
users for checking if a user exist and to show data for users.
I created 2 records successfully but I can't read them.
The error that I get is
HTTP ERROR 500

Problem accessing /. Reason:

    com.awt.oat.dao.UserDao.showUserData()V
Caused by:

java.lang.NoSuchMethodError: com.awt.oat.dao.UserDao.showUserData()V
        at org.apache.jsp.auction_jsp._jspService(auction_jsp.java:89)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
....
.... and a lot more
....

I'm sure that I 'm doing something really stupid. Please someone to
help me...

Here is my DAO class code:

package com.awt.oat.dao;

import javax.jdo.PersistenceManager;
import com.awt.oat.PMF;
import com.awt.oat.model.UserData;
import com.google.appengine.api.users.User;
import javax.jdo.Query;
import java.util.List;
import java.util.Date;
import javax.jdo.JDOObjectNotFoundException;


public class UserDao {
        public void createUser(String uniqueID, String userName, String email)
{
                Date date = new Date();
                UserData newUser = new UserData(uniqueID, userName, email, 
date);

                PersistenceManager pm = PMF.get().getPersistenceManager();
        try {
            pm.makePersistent(newUser);
        }finally {
            pm.close();
        }
        }

        public void showUserData(){

                PersistenceManager pm = PMF.get().getPersistenceManager();
                Query query = pm.newQuery(UserData.class);

            try{
                List<UserData> results = (List<UserData>)query.execute();

                if (results.iterator().hasNext()) {
                        for(UserData u : results){
                                System.out.println("<table border='1'>" +
                                                "<tr><td>username</td><td>" + 
u.getUserName() + "</tr>"
                                                + "<tr><td>email</td><td>" + 
u.getEmail() + "</td></tr></
table>");
                        }
                } else {
                        System.out.printf("<p>No results in the datastore</p>");
                }
            }finally{
                query.closeAll();
            }
        }
}

and here my jsp file

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.List" %>
<%@ page import="javax.jdo.PersistenceManager" %>
<%@ page import="com.google.appengine.api.users.User" %>
<%@ page import="com.google.appengine.api.users.UserService" %>
<%@ page import="com.google.appengine.api.users.UserServiceFactory" %>
<%@ page import="com.awt.oat.dao.UserDao" %>
<%@ page import="java.io.*" %>

<html>
  <head>
    <link type="text/css" rel="stylesheet" href="/stylesheets/
main.css" />
  </head>
  <body>
<%
    UserService userService = UserServiceFactory.getUserService();
    User user = userService.getCurrentUser();
    if (user != null) {
%>
<p>Hello, <%= user.getNickname() %>! (You can
<a href="<%= userService.createLogoutURL(request.getRequestURI())
%>">sign out</a>.)</p>
<%
    } else {
%>
<a href="<%= userService.createLoginURL(request.getRequestURI())
%>">Sign in</a>
<%
    }
        UserDao dao = new UserDao();
        //dao.createUser(user.getUserId(), user.getNickname(),
user.getEmail()); this one works creates new users in the database
        dao.showUserData(); //this gives me error
%>
  </body>
</html>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to