Hi , I have a request for gae-j, is it not a good idea to have an 1) appengine simulator as a java eclipse plugin
or sandbox account for testing app on the server , so that it is easier to debug ... i have come across numerous scenario where thing work locally and dont work on app engine, it has been a big turnoff for me to use appengine with thirdparty libs/frameworks is it on the road map? Thank you On Dec 28, 2:14 pm, "Ikai L (Google)" <[email protected]> wrote: > Do you have a stack trace or an error? What are the visible symptoms of your > problems running in production? > > On Thu, Dec 24, 2009 at 7:50 AM, Bert Peters <[email protected]>wrote: > > > > > > > Some code, that i created and tested using Eclipse and the google > > plugin, seems not to run while installed on the App Engine, no matter > > what. > > I have really no idea what it couldd be, Anyone else an idea? > > > By the way, the code for all files is listed below. > > > Main file: > > > package poaphost; > > > import javax.servlet.http.*; > > import javax.jdo.Query; > > import javax.jdo.PersistenceManager; > > import java.io.IOException; > > import poaphost.PMF; > > import poaphost.Address; > > import poaphost.Iphandler; > > > import java.util.Locale; > > import java.util.Random; > > import java.util.List; > > import java.util.Date; > > import java.util.Formatter; > > > public class LOGONServlet extends HttpServlet { > > > /** > > * > > */ > > private static final long serialVersionUID = 1373256072813419920L; > > > public void doGet(HttpServletRequest req, HttpServletResponse resp) > > throws IOException { > > String uid = ""; > > Cookie[] cookies = req.getCookies(); > > for (Integer i = 0; i < cookies.length; i++) { > > if (cookies[i].getName().equals("poap_uid") > > && cookies[i].getValue().length() == > > 8) { > > uid = cookies[i].getValue(); > > } > > } > > if (uid == "") { > > String base = > > "abcdefghijklmnopqrstuvwxyz1234567890"; > > Random generator = new Random(); > > for (Integer i = 0; i < 8; i++) { > > uid += base.charAt(generator.nextInt(35)); > > } > > } > > > String ip = req.getRemoteAddr(); > > > Long ipNo = Iphandler.ip2long(ip); > > > PersistenceManager pm = PMF.get().getPersistenceManager(); > > > Query q = pm.newQuery(Address.class, "ip == ipParam && code > > == > > uidParam"); > > q.declareParameters("Long ipParam, String uidParam"); > > > List<Address> result = (List<Address>) q.execute(ipNo, uid); > > > if (result.isEmpty()) { > > Address a = new Address(ipNo, uid); > > pm.makePersistent(a); > > } > > Cookie c = new Cookie("poap_uid",uid); > > c.setPath("/"); > > c.setDomain("http://poaphost.appspot.com"); > > c.setMaxAge(60*60*24*365); > > > resp.setContentType("text/xml"); > > resp.setCharacterEncoding("ISO-8859-1"); > > resp.addCookie(c); > > > Date d = new Date(); > > > Long i = d.getTime(); > > > Double f = i.doubleValue() / 1000; > > > StringBuilder sb = new StringBuilder(); > > > Formatter formatter = new Formatter(sb, Locale.US); > > formatter.format("%11.4f", f); > > > resp.getWriter().println( > > "<?xml version=\"1.0\" > > encoding=\"ISO-8859-1\"?>"); > > resp.getWriter().println("<response>"); > > resp.getWriter().println("<action>logon</action>"); > > resp.getWriter().println("<result>1</result>"); > > resp.getWriter().println("<error>0</error>"); > > resp.getWriter().println("<time>" + sb.toString() + > > "</time>"); > > resp.getWriter().println("<timeOffset>0</timeOffset>"); > > resp.getWriter().println("<uid>" + uid + "</uid>"); > > resp.getWriter().println("</response>"); > > } > > > } > > > poaphost.PMF file > > > package guestbook; > > > import javax.jdo.JDOHelper; > > import javax.jdo.PersistenceManagerFactory; > > > public final class PMF { > > private static final PersistenceManagerFactory pmfInstance = > > JDOHelper.getPersistenceManagerFactory("transactions- > > optional"); > > > private PMF() {} > > > public static PersistenceManagerFactory get() { > > return pmfInstance; > > } > > } > > file poaphost.iphandler > > > package poaphost; > > > public class Iphandler { > > public static long ip2long( String aIpAddress ) > > { > > long ip = 0; > > String[] t = aIpAddress.split("\\."); > > ip = Long.parseLong(t[0]) * 256 * 256 * 256; > > ip += Long.parseLong(t[1]) * 256 * 256; > > ip += Long.parseLong(t[2]) * 256; > > ip += Long.parseLong(t[3]); > > return ip; > > } > > public static String long2ip( long aIpAddress ) > > { > > return (aIpAddress >> 24 & 255) + "." + (aIpAddress >> 16 & > > 255) + "." + (aIpAddress >> 8 & 255) + "." + (aIpAddress & 255); > > } > > } > > > file poaphost.Address > > > package poaphost; > > > import com.google.appengine.api.datastore.Key; > > > import java.lang.Long; > > import java.lang.String; > > > import javax.jdo.annotations.IdGeneratorStrategy; > > import javax.jdo.annotations.IdentityType; > > import javax.jdo.annotations.PersistenceCapable; > > import javax.jdo.annotations.Persistent; > > import javax.jdo.annotations.PrimaryKey; > > > @PersistenceCapable(identityType = IdentityType.APPLICATION) > > public class Address { > > �...@primarykey > > �...@persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) > > private Key key; > > > �...@persistent > > private Long ip; > > > �...@persistent > > private String code; > > > public Address(Long ip, String code) { > > this.setIp(ip); > > this.setCode(code); > > } > > > public void setKey(Key key) { > > this.key = key; > > } > > > public Key getKey() { > > return key; > > } > > > public void setIp(Long ip) { > > this.ip = ip; > > } > > > public Long getIp() { > > return ip; > > } > > > public void setCode(String code) { > > this.code = code; > > } > > > public String getCode() { > > return code; > > } > > > } > > > -- > > > 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 > > [email protected]. > > To unsubscribe from this group, send email to > > [email protected]<google-appengine-java%2B > > [email protected]> > > . > > For more options, visit this group at > >http://groups.google.com/group/google-appengine-java?hl=en. > > -- > Ikai Lan > Developer Programs Engineer, Google App Engine -- 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 [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-appengine-java?hl=en.
