我很困惑。這是我的問題:在Jtable的Servlet中使用EntityManager
我有一個jtable在一個與Servlet連接的jsp文件。到此爲止,一切都很好。在我的Servlet中,我需要通過EntityManager連接到數據庫,但我無法使用它,因爲它給了我NullPointerException。我有一個HomeController,我沒有任何問題管理EntityManager,但是我不能從我的Servlet中使用它們的函數。這是我的源代碼:
HomeController.java:
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory
.getLogger(HomeController.class);
@PersistenceContext
private EntityManager entityManager;
(...)
/**
* Lists users by points in desc order
*
* @return list with users ordered by points
*/
public List<Usuario> listaUsuarios() {
return entityManager.createQuery(
"select u from Usuario u order by puntos desc").getResultList();
}
}
InvasionServlet.java:
@WebServlet("/InvasionServlet")
public class InvasionServlet extends HttpServlet {
private static final long serialVersionUID = -9049034342389418838L;
private static final Logger logger = LoggerFactory
.getLogger(InvasionServlet.class);
@PersistenceContext
private EntityManager entityManager;
/* Manejo de tablas */
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = request.getParameter("action");
if (action != null) {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
response.setContentType("application/json");
if (action.equals("list")) {
logger.info("loading users list");
List<Usuario> usuariosOrdenados = entityManager.createQuery(
"select u from Usuario u order by puntos desc").getResultList();
JsonElement element = gson.toJsonTree(usuariosOrdenados,
new TypeToken<List<Usuario>>() {
}.getType());
JsonArray jsonArray = element.getAsJsonArray();
String listData = jsonArray.toString();
// Return Json in the format required by jTable plugin
listData = "{\"Result\":\"OK\",\"Records\":" + listData + "}";
try {
response.getWriter().print(listData);
} catch (IOException e) {
String error = "{\"Result\":\"ERROR\",\"Message\":"
+ e.getStackTrace() + "}";
response.getWriter().print(error);
}
}
}
}
}
我無法從反正加載數據,任何建議?我認爲這是一個明顯的問題,但我無法想象。
Thnkx!它的工作原理:) – aSoler
從這個意義上說,由'@ Service'(或'@ Repository',由'org.springframework.stereotype'包裝)裝飾的Spring服務就足夠了。不應該嗎? – Tiny