Tag: ejb 3.0

javax.naming.NoInitialContextException:无法实例化类:

我正在尝试实现在tutorialpoint中描述的简单EJB应用程序,我使用JBoss 5.1和eclipse作为IDE,我创建了项目作为EJB 3.但是我收到以下错误 javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory] at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:674) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307) at javax.naming.InitialContext.init(InitialContext.java:242) at javax.naming.InitialContext.(InitialContext.java:216) at com.tutorialspoint.test.EJBTester.(EJBTester.java:42) at com.tutorialspoint.test.EJBTester.main(EJBTester.java:51) Caused by: java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:274) at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:72) at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:61) at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:671) […]

java.lang.ClassCastException:$ Proxy99无法强制转换

我正在使用JBoss4.2.2和java6。 部署的耳朵的名字是apa.ear 在servlet中,我有以下代码行: placeBid = (PlaceBid) context.lookup(“apa/” + PlaceBid.class.getSimpleName() + “/remote”); 我有一个生成的jboss-app.xml,如下所示: apa:app=ejb3 当试图通过上下文获取PlaceBid时,我得到了这个exception java.lang.ClassCastException: $Proxy99 cannot be cast to se.nextit.actionbazaar.buslogic.PlaceBid PlaceBid界面如下所示: @Remote public interface PlaceBid { Long addBid(String userId, Long itemId, Double bidPrice); } 当我运行EJB3的实例时,它可以工作。 EJB3在动作示例代码中附带了ant构建。 我想使用Maven,所以我重新安排了一些代码。 但是,我不知道我在这里做错了什么。 我对jboss-app.xml文件有一些想法。 我不确定它的内容应该是什么样的。 感谢任何帮助。 祝愿Lasse

Glassfish 3.0:部署ejb模块时出现exception……无效的ejb j ar:它包含零ejb

我有一个非常简单的ejb 3.0模块与maven,它只有两个会话bean一个无状态,另一个是单例…当我尝试在Glassfish 3.0服务器上部署项目时,我得到了这个例外: 部署期间发生错误:部署应用程序时出现exception:无效的ejb jar:它包含零ejb。 注意:1。有效的ejb jar至少需要一个会话,实体(1.x / 2.x样式)或消息驱动的bean。 2. EJB3 +实体bean(@Entity)是POJO,请将它们打包为库jar。 3.如果jar文件包含使用EJB组件级别注释(@Stateless,@ Stateful,@ MessageDriven,@ Singleton)注释的有效EJB,请检查server.log以查看注释是否已正确处理..请参阅服务器。记录更多详细信息。 我使用Glassfish Verifier工具validation项目,我得到了这个例外,但我不知道该怎么办? Verifier output unparsable Verifier output (C:\Users\Mariam.Moustafa\Documents\NetBeansProjects\web\EmployeesTimer\target\EmployeesTimer-1.0-SNAPSHOT.jar.xml) not found. 这是pom.xml: 4.0.0 com.unilever EmployeesTimer 1.0-SNAPSHOT ejb EmployeesTimer ${project.build.directory}/endorsed UTF-8 com.sun.jersey jersey-bundle 1.8 javax javaee-api 6.0 provided org.codehaus.jackson jackson-mapper-asl 1.9.2 org.codehaus.jackson jackson-core-asl 1.9.2 org.slf4j slf4j-api 1.7.7 log4j log4j 1.2.17 org.slf4j […]

weblogic ejb ComplianceException

我尝试部署在weblogic 10.3上使用EJB的应用程序。 我使用框架接缝2.2.0 我创建了一个EJB项目和带有研讨会的EAR项目。 当我编译项目时,我收到此错误: weblogic.ejb.container.compliance.ComplianceException: No business interface, component interface or web service endpoint interface found for Session Bean Authenticator 这是bean代码: import javax.ejb.Local; import javax.ejb.Stateless; import javax.persistence.EntityManager; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Logger; import org.jboss.seam.annotations.Name; import org.jboss.seam.contexts.SessionContext; import org.jboss.seam.faces.FacesMessages; import org.jboss.seam.faces.Redirect; import org.jboss.seam.log.Log; import org.jboss.seam.security.Credentials; import org.jboss.seam.security.Identity; import org.jboss.seam.security.crypto.BinTools; import org.jboss.seam.security.management.IdentityManager; import org.jboss.seam.security.management.JpaIdentityStore; @Stateless @Local @Name(“authenticator”) […]

什么是Spring Framework中的EJB替代方案

我试图学习Spring Framework,之前我曾经用EJB创建应用程序 [Web services]->[Business Layer]->[DAO Layer] | [数据库] 以下方式 WebServices :使用Jersey和url mappings Restful API,支持JSON和XML格式( news/list.json , news/list.xml )。 一旦端点(url-mapped-method)收到请求,它就会通过查找(远程,本地)转发到相关的EJB。 EJB处理每一件事,应用业务规则并将结果作为DTO(数据传输对象)返回,然后Service将结果转换为所需的格式(JSON,XML) 业务层 :在EJB使用remote和local接口实现的业务层(Facade),这些EJB可以调用其他EJB。 WebService层(和/或Timer服务和MDB)也可以调用任何EJB)。 对于与计时器服务相关的function,我使用了EJB Timer Service ,而Message使用了Message Drive Bean和拦截器来进行日志记录和审计。 DAO Layer :所有与数据库相关的函数(添加,编辑,删除,搜索)使用EntityManager编写JPA/Hibernate (实体bean和HQL)。 无缝事务支持,每个EJB的方法(基于查询)调用被视为一个单独的事务,DAO层的调用方法是同一事务的一部分(假设没有提供额外的配置)。 在单个事务中执行多个操作如果一个db操作失败,则所有其他操作将自动回滚。 每个表都映射为具有关系等的实体类。 我曾经在Spring MVC但是无法正确地映射/理解上面的架构我对AOP有点了解并且我认为它是拦截器的完美替代品(或者至少它对我有用) 现在我的问题是如何在Spring框架中替换所有这些 ? 泽西(RestAPi)替代spring> Spring中的EJB替代方案(因为EJB支持远程处理,对方法的每次查找调用都被视为事务,对EJB方法的调用可以被拦截,并且它带有状态完全和无状态的风格)? Spring中的定时服务替代方案? Spring中的Message Drive Bean替代方案? 拦截器替代品是春季的AOP(根据我的经验,这符合我的目的) JPA(实体经理)在春季的替代方案?

@PostConstruct中的CDI参数

我认为我的问题与此类似,但尚未发现它有效 为什么我不能用@Named执行此操作并使用CDI: @Named @RequestScoped public class DetailsBean { private Contacts detailsContact; @EJB ContactsFacade contactsEJB; private int id; public DetailsBean() { System.out.println(“details bean called”); } @PostConstruct public void onLoad() { detailsContact = contactsEJB.find(id); } 我无法记录身份证。 当然,@ ManagedProperty与CDI不兼容。 ***** UPDATE ***** 一些xhtml:     更多java代码: package com.atlanticpkg.view.beans; import com.atlanticpkg.model.entities.Contacts; import com.atlanticpkg.util.FacesUtils; import java.io.Serializable; import javax.annotation.PostConstruct; import javax.enterprise.context.RequestScoped; […]

Weblogic在javax.ejb.EJBException中包装应用程序exception

我的耳朵应用工作正常。 但是突然它开始在一些方法调用中抛出javax.ejb.EJBException,而不是返回原始的Application Exception(用@ApplicationException注释(rollback = true)。现在原始的应用程序exception包含在EJBException中。目前是其他的开发人员那个在项目中工作的人正在休假。所以我不知道他对代码发生了什么。这个应用程序exception和ejb远程接口是在一个单独的jar文件中,它被部署为weblogic中的共享库。 我想知道什么可以负责抛出这个EJBException而不是抛出应用程序exception。 我想可能是weblogic没有正确检测到@ApplicationException注释。 任何人都可以帮我解决这个问题吗?

如何对Entity-Bean @OneToMany关系应用默认限制

我有两个实体模型,Customer和Order。 每个客户可能有数千个订单。 我在这两个实体之间有一个OneToMany和ManyToOne关系。 如何将此关系列表仅限制为前10个订单? 是否可以在@OneToMany上应用’WHERE’条件作为属性? 喜欢: @OneToMany(“Where Order.orderNo > 100”) 我的问题是当实体管理器创建的对象所有订单都在内存中创建时。 延迟加载无法解决我的考虑,因为我需要在默认构造中获得前10个订单。

为什么池无状态豆?

通常我们将singleton实例用于business / dao层。 在EJB的情况下汇集无状态会话bean的原因是什么?

无法从Java SE客户端访问EJB – 查找失败错误

我正在使用Netbeans并正在尝试使用EJB。 我有两个项目(2个独立的申请) 1-一个名为EnterpriseApp的Java ME项目 2-标准Java SE项目,名为Test 现在这就是我所做的 – 在EnterpriseApp中,我使用本地和远程接口生成了一个名为TestEJB的无状态EJB。 对于远程项目选择,我选择了测试应用程序。 简而言之,bean代码看起来像这样 @Stateless public class TestEjb implements TestEjbRemote, TestEjbLocal { @Override public String Try() { return “Hello World”; } } 在Java SE客户端项目中,这里是我尝试访问bean的主要类: public class Main { public static void main(String[] args) { try { Properties props = new Properties(); props.load(new FileInputStream(“jndi.properties”)); InitialContext ctx = new InitialContext(props); […]