- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 JavaBeans 或第一次,我得到以下信息错误:
javax.naming.NameNotFoundException: DemoEJB
javax.naming.NamingException: Lookup failed for 'java:global/DemoEJB/ContenedorEJB/BeanStateful!beanssesion.BeanStatefulLocal' in SerialContext[myEnv={java.naming.factory
我正在将 NetBeans 与 glassfish 4.1 服务器结合使用。该应用程序非常简单,我有一个企业应用程序项目,其中链接了一个 EJB 模块(称为 ContenedorEJB)和一个客户端(这是一个 Servlet)。
这是项目结构:
ClienteWeb
源码包
-servlet
-ServletEJB.java
ContenedorEJB
-源码包
beansession
BeanStateful.java
BeanStatefulLocal.java
演示EJB
-Java EE 模块
ContenedorEJB.jar
ClienteJB.war
servlet代码如下。我唯一做的就是查找 sessionBean,
c.lookup("java:global/DemoEJB/ContenedorEJB/BeanStateful!beanssesion.BeanStatefulLocal");
保存它,然后使用实现的方法 getValor 和 setValor 来查看我发送到 EJB 模块的值是否已保存。但它会丢失,因为它找不到 BeanStateful,即使它在那里。
package servlets;
import beanssesion.BeanStatefulLocal;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletEJB extends HttpServlet {
BeanStatefulLocal beanStateful = lookupBeanStatefulLocal();
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet ServletEJB</title>");
out.println("</head>");
out.println("<body>");
out.println("Enviamos un valor al EJB Stateful: ");
beanStateful.setValor("Valor desde Servlet");
out.println("Valor devuelto " + beanStateful.getValor());
out.println("</body>");
out.println("</html>");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
private BeanStatefulLocal lookupBeanStatefulLocal() {
try {
Context c = new InitialContext();
return (BeanStatefulLocal) c.lookup("java:global/DemoEJB/ContenedorEJB/BeanStateful!beanssesion.BeanStatefulLocal");
} catch (NamingException ne) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", ne);
throw new RuntimeException(ne);
}
}
}
有人可以帮忙吗?
最佳答案
当您使用 GlassFish 4.1 时,如果您暂时将所有类(包括 EJB)放入 Web 模块中,您会发现生活变得更简单。
其次,您很少需要再使用显式 JNDI 查找;使用注入(inject)代替:
public class ServletEJB extends HttpServlet {
@javax.ejb.EJB
BeanStatefulLocal beanStateful;
...
}
但是,使用这样的有状态 session bean 存在一个大问题。该 servlet 实例将与所有客户端共享,您正在注入(inject)/查找的 EJB 也将共享。这将导致严重的并发问题。
关于java - 找不到 EJB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32958660/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!