import java.util.List;
import javax.jdo.JDOHelper;
import javax.jdo.PersistenceManager;
import javax.jdo.PersistenceManagerFactory;
import javax.jdo.Transaction;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import javax.persistence.Query;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.wissen.enterprisebysush.client.GreetingService;
import com.wissen.enterprisebysush.server.domainobject.Department;
import com.wissen.enterprisebysush.server.domainobject.Employee;
/**
* The server side implementation of the RPC service.
*/
@SuppressWarnings("serial")
public class GreetingServiceImpl extends RemoteServiceServlet
implements GreetingService {
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("transactions-optional");
public String greetServer(String input) {
String serverInfo = getServletContext().getServerInfo();
String userAgent = getThreadLocalRequest().getHeader("User-
Agent");
return "Hello, " + input + "!<br><br>I am running " +
serverInfo + ".<br><br>It looks like you are using:<br>" + userAgent;
}
@SuppressWarnings("unchecked")
public void addDept(String dept_name, String dept_head) {
EntityManager em = null;
try {
em = emf.createEntityManager();
em.getTransaction().begin();
Department d = new Department();
d.setDept_name(dept_name);
d.setHead(dept_head);
Query q = em.createQuery("select from
com.wissen.enterprisebysush.server.domainobject.Department d");
List<Department> deptList = q.getResultList();
for (Department dept : deptList) {
System.out.println("Department name: " +
dept.getDept_name());
}
em.persist(d);
} finally {
em.getTransaction().commit();
em.close();
}
}
public void addEmp(String emp_name, String emp_sal, String did) {
EntityManager em = emf.createEntityManager();
try {
String s = did;
EntityTransaction transaction = em.getTransaction();
transaction.begin();
System.out.println("value of Department_name is::" + s);
System.out.println("Transaction is active and
is::"+transaction);
// Query q = em.createQuery("select dept_id
from com.wissen.enterprisebysush.server.domainobject.Department d
where d.dept_name = ?1");
// q.setParameter(1, s);
// System.out.println("Name of Department is::"
+ s);
// Department dept = (Department)
q.getSingleResult();
Query q = em.createQuery("select from
com.wissen.enterprisebysush.server.domainobject.Department d");
Department dept = (Department) q.getResultList().get(0);
System.out.println("Name of Department is::" +
dept.getDept_name());
//System.out.println("Query executed
Successfully!!!!!!!!!!!!!!" + q.getSingleResult());
Employee e = new Employee();
e.setEmp_name("Abdch");
e.setEmp_sal("5000");
e.setDepartment(dept);
em.persist(e);
System.out.println("Transaction: " + transaction);
transaction.commit();
em.close();
} catch (NullPointerException e) {
e.printStackTrace();
System.out.println("Exception::" + e.getCause());
} finally {
}
}
}
output::
value of Department_name is::Production
Transaction is active and
is::org.datanucleus.jpa.entitytransactioni...@1a21c7d
Name of Department is::Accounts
Transaction: org.datanucleus.jpa.entitytransactioni...@1a21c7d
java.lang.NullPointerException
Exception::null at
com.google.appengine.api.datastore.KeyFactory.stringToKey(KeyFactory.java:
181)
at
org.datanucleus.store.appengine.DatastoreElementContainerStoreSpecialization.extractElementKey(DatastoreElementContainerStoreSpecialization.java:
170)
at
org.datanucleus.store.appengine.DatastoreAbstractCollectionStoreSpecialization.contains(DatastoreAbstractCollectionStoreSpecialization.java:
57)
at
org.datanucleus.store.mapped.scostore.AbstractCollectionStore.contains(AbstractCollectionStore.java:
116)
at org.datanucleus.sco.backed.List.contains(List.java:455)
at
org.datanucleus.state.RelationshipManager.processManyToOneBidirectionalRelation(RelationshipManager.java:
690)
at
org.datanucleus.state.RelationshipManager.process(RelationshipManager.java:
294)
at
org.datanucleus.state.JDOStateManagerImpl.processManagedRelations(JDOStateManagerImpl.java:
2377)
at
org.datanucleus.ObjectManagerImpl.performManagedRelationships(ObjectManagerImpl.java:
2706)
at org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:
2744)
at org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:
2886)
at
org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:
348)
at org.datanucleus.TransactionImpl.commit(TransactionImpl.java:235)
at
org.datanucleus.jpa.EntityTransactionImpl.commit(EntityTransactionImpl.java:
104)
at
com.wissen.enterprisebysush.server.GreetingServiceImpl.addEmp(GreetingServiceImpl.java:
94)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:
527)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:
166)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:
86)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
487)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1093)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:
43)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1084)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:
360)
at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:
216)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:
181)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:
712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
405)
at
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:
54)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
139)
at com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:306)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:
139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
506)
at org.mortbay.jetty.HttpConnection
$RequestHandler.content(HttpConnection.java:844)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:
396)
at org.mortbay.thread.BoundedThreadPool
$PoolThread.run(BoundedThreadPool.java:442)
--
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.