Tag: ejb

JPA:检查实体对象是否已被持久化

有没有一般的方法可以 if(entity is persisted before){ entity = entity.merge(); }else{ entity.persist(); } 所以包含上述逻辑的方法到处都是安全的吗?

找到类字节,但在部署EAR时,defineClass()因错误而失败

我正在尝试使用EJB 1.1的东西部署和旧的代码库到Weblogic 10.3.6并继续得到这个奇怪的错误Class bytes found but defineClass()failed for 。 这些课程在那里,并找到导致这种情况的原因?

在JavaEE EJB / Web容器中创建线程

我在Adam Bien的JavaEE夜间黑客书中读到,虽然EJB容器上禁止创建线程,但Web容器却不是这样。 他实际上在他的X射线探测器中创建了一个线程池执行器,它在Tomcat上运行。 我现在有点困惑。 虽然我遇到了必须在EE应用程序中进行手动线程池管理的情况,但我可以理解为什么在JavaEE容器中手动创建线程是个坏主意。 但是,当您可以将大部分EJB部署到任何一个EJB容器时,我不理解EJB容器和Web容器之间的区别。 如果会话bean在Web容器中生成线程没有任何问题,那么将相同的会话bean部署到EJB容器可能会导致什么问题?

如何指定从中获取EJB的服务器?

在java EE中,从远程服务器获取EJB的方式是在JNDI中查找它。 规范定义了给定bean类型的JNDI名称。 但是,这似乎只有在您想从本地计算机上获取bean时才会出现这种情况。 我想像大多数用户那样从远程服务器上获取bean。 如何指定服务器URL? 我是否将地图传递给InitialContext构造函数? 注意:还有另一个问题几乎相同,但自从规范定义可移植JNDI名称以来,这已经过时了。

从JSF中的Datatable获取选定的行数据

所以,我试图在这个问题中实现Anthony / BalusC的方法: 如何在JSF数据表中获取选定的行索引? 但无济于事。 我还浏览了@BalusC的“使用数据表”一文 (这是一如既往的精彩),但这是为JSF1.2编写的,而2.0文章并没有真正解决获取所选行数据的问题。 当用户单击“添加到我的collections夹”按钮时,所选行不会传递给辅助bean,导航案例不会被跟踪,并且当前页面会刷新。 我在这里做错了什么想法? 这是我的支持bean: @ManagedBean(name = “selectedBean”) @RequestScoped public class SelectedBeerBean { private List favoriteBeers; private Beer selectedBeer; private HtmlDataTable datatableBeers; public HtmlDataTable getDatatableBeers() { return datatableBeers; } public void setDatatableBeers(HtmlDataTable datatableBeers) { this.datatableBeers = datatableBeers; } public String addBeer() { selectedBeer = (Beer) datatableBeers.getRowData(); return “selectedBeer”; } public […]

在某些时间安排消息驱动的bean来访问队列?

1) 您是否可以安排消息驱动bean仅在特定时间访问队列? 例如,用户有两个联系选项 – 上午9点至下午5点至下午5点至晚上10点。 我想有两个MDB,一个只在上午9点到下午5点活跃,另一个在下午3点到晚上10点。 两个队列都有全天发送给他们的消息,但我只想在特定时间处理它们。 理想情况下@Schedule可以工作但不幸的是它没有。 使用Glassfish 3.1.2和ActiveMQ 5.5.1,但我很确定它不是特定于实现的问题。 编辑1 码 @MessageDriven( activationConfig = { @ActivationConfigProperty(propertyName = “destinationType”, propertyValue = “javax.jms.Queue”), @ActivationConfigProperty(propertyName = “destination”, propertyValue = “jms/queue/amqmsg”) }) public class ExampleMessageBean implements MessageListener { @Schedule(second=”*”, minute=”*”, hour=”9-17″, persistent = false) public void onMessage(Message message) { try { System.out.println(“We’ve received a message: ” + […]

如何在不同的JVM中从Standalone java程序调用EJB

我使用具有glassfish服务器的NETbeans IDE开发了EJB。 我可以从独立的java中调用它,只有当这个java项目是在NETbeans下开发并在相同的JRE下运行时。 但我需要找出如何在不同的jre中运行它。 我找不到这方面的帮助。 有什么建议么? (或相关链接会做)谢谢,

适用于企业应用程序的瘦(ner)独立客户端

首先是一点背景 : 我正在使用EJB模块和Application Client模块处理企业应用程序(ear)。 我还使用hibernate JPA进行持久化,使用swingx进行GUI。 这是唯一的第三方atm。 此应用程序部署在Glassfish上。 一切进展顺利,直到我第一次部署我的应用程序并尝试通过Java Web Start启动它。 我遇到了主要的拦路保护程序–JWS不喜欢hibernate3.jar,抱怨它没有签名,尽管它已经签署了。 如果你有兴趣,我在这里描述了这个问题。 无论如何,它可能与JVM中这个未解决的错误有关。 关于JWS还有其他一些我不喜欢的事情,但现在并不重要。 目前的方法 鉴于这个问题我想我自己部署了应用程序(我计划编写某种自动更新程序以保持所有内容同步)。 所以我按照这里的说明一切都很酷,除了我需要部署到客户端的应用程序容器大约40 MB! 。 这太过分了! 好的,所以我说我将删除应用程序容器,创建一个独立的客户端通过JNDI进行EJB查找并仅包含最小值。 在这里,我被困住了! 这是我使用的JNDI查找: Properties prop = new Properties(); prop.put(Context.INITIAL_CONTEXT_FACTORY, “com.sun.enterprise.naming.SerialInitContextFactory”); prop.put(“org.omg.CORBA.ORBInitialHost”, “bogdan-pc”); prop.put(“org.omg.CORBA.ORBInitialPort”, “3700”); try { InitialContext ctx = new InitialContext(prop); DatabaseCacheEJBRemote service = (DatabaseCacheEJBRemote) ctx.lookup(“ejbs.DatabaseCacheEJBRemote”); System.out.println(“count: ” + service.getProductionCount()); } catch (NamingException ex) […]

当CDI注入POJO应该有效吗? (GlassFish v3)

当我将EJB 3.1 bean注入由@Inject创建的POJO时,注入工作。 当我自己构建POJO时,它不会(Glassfish v3)。 这是正确的行为吗? 我的类(在EJB模块中): @Singleton @LocalBean @Startup @Named public class NewSingletonBean { @PostConstruct public void init(){ System.out.println(“NewSingletonBean INIT”); } } _ public class MyPOJO { @Inject NewSingletonBean newSingletonBean; public void sth(){ System.out.println(“EJB injected into POJO: ” + (newSingletonBean != null)); } } 这不起作用 : @Singleton @LocalBean @Startup @DependsOn(value=”NewSingletonBean”) public class NewSingletonBean2 { […]

Java EE 7 – @Decorator,@ Stateless和@PersistenceContext = nullpointerException

我在java ee 7(glassfish 4)中使用装饰模式。 我有这个装饰师 @Decorator public class FooIndexer implements FooService { @Inject @Delegate FooService fooService; private Logger logger = Logger.getLogger(FooIndexer.class.getName()); //@Inject //Indexer indexer; @Override public Foo create(Foo foo, boolean index) { fooService.create(foo, index); if (index) { System.out.println(“Im in”); } return foo; } } 而这个ejb类 @Stateless(name = “fooService”) @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) @DeclareRoles({“ADMINISTRATOR”, “USER”}) public class FooServiceImpl implements […]