只有EJB的AngularJS应用程序
是否可以直接使用EJB构建AngularJS应用程序而无需将其视为REST服务?我在网络上的示例上看到的是,最终您必须使用REST服务向AngularJS提供数据.因此,您将不得不将EJB方法视为恢复的服务,以使其能够与AngularJS一起使用.有没有这样做的方法?如果有的话,请建议并提供一些帮助资源.我们正在使用EJB 3.1,而IBM为8.5. 解决方案 首先,您必须有一个接口才能访问您的EJB方法. 如果您正在启动一个新项目,我强烈建议使用REST 或 WebSocket 方法.可以在此处找到有关使用Angularjs使用WebSocket的websocket的进一步阅读(尽管使用Wildfly)可以在此处找到: http://mgreau.com/posts/2013/11/11/javaee7-websocket-angularjs-wildfly.html 还有一些叫做 angularfaces github上的项目: https://github
0 2024-02-24
编程技术问答社区
远程客户端操作的WildFly EJB调用失败,状态为等待
以下是我调用EJB的代码,但是它等待连接并失败.我将端口更改为4447,但没有运气. private DataGridService lookupRemoteEJB() throws NamingException { Context context = null; try { Properties clientProperties = new Properties(); clientProperties.put("remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED", "false"); clientProperties.put("remote.connections", "default"); clientProperties.put("remote.connection.default.port", "44
16 2023-12-04
编程技术问答社区
在不同的应用程序中从jsf第二次调用远程EJB3 Bean-未设置代理权
第二次从我的JSF托管bean调用我的远程EJB时,我会得到一个奇怪的例外.首次调用Bean时,结果将返回到屏幕.但是,如果我点击第二次调用EJB的操作,则会得到以下例外: SystemErr R java.rmi.RemoteException: CORBA BAD_OPERATION 0x0 No; nested exception is: org.omg.CORBA.BAD_OPERATION: The delegate has not been set! vmcid: 0x0 minor code: 0 completed: No [10/06/13 09:35:26:341 BST] 00000041 SystemErr R at com.ibm.CORBA.iiop.UtilDelegateImpl.mapSystemException(UtilDelegateImpl.java:330) [10/06/13 09:35:26:3
0 2023-12-03
编程技术问答社区
EJB 3.1的异步方法和线程池
我需要使用EJB 3.1的每天处理约250.000个文档,以面对整个长期任务. 我这样做是为了使用更多线程并同时处理更多文档.这是伪代码中的一个示例: // this returns about 250.000 documents per day List documentList = Persistence.listDocumentsToProcess(); for(Document currentDocument: documentList){ //this is the asynchronous call ejbInstance.processAsynchronously(currentDocument); } 假设我有一个尺寸为10和4个核心处理器的线程池,我的问题是: 应用程序服务器可以同时处理多少个文档? 当池中的所有线程都在处理文档并且还有一个异步调用时,会发生什么?这会像JMS队列一样工作吗? 我是否
0 2023-12-03
编程技术问答社区
WebSphere 如何管理 EJB jars 的启动顺序?
当耳朵包含两个EJB模块Modulea.jar和Moduleb.jar时. Modulea.jar包含一个@startup ejbx,该@Startup ejby在bean x启动期间从moduleb.jar中播放了另一个不是@startup ejb无法将X注入Y.但是如何确保首先启动该模块. 目前,我在WebSphere中遇到了这个问题,但是我似乎找不到一种执行订单的方法.规格中有什么可以管理订单吗? 或特定于WebSphere(虽然没有供应商锁定).也许在不同模块中使用启动EJB和EJB是一个糟糕的设计,也欢迎对此进行一些见解. 解决方案 可以通过模块配置(Enterprise Applications > YourApplication > Manage Modules > ejbmoduleb.jar) 在Starting weight中进行配置 开始体重 指定服务器时启动模块的顺序 开始.最低起始重量的模块首先开始. 如果您需要整个应用程
2 2023-12-03
编程技术问答社区
在websphere Getting ClassCastException中查找本地EJB的正确方法
我有一个由本地和远程界面暴露的EJB package com.sam.enqueue; import javax.ejb.Local; import javax.ejb.Remote; import javax.ejb.Singleton; @Singleton @Local(SamEnqueueLocal.class) @Remote(SamEnqueueRemote.class) public class SamEnqueue implements SamEnqueueRemote, SamEnqueueLocal { } // remote interface package com.sam.enqueue; import javax.ejb.Remote; @Remote public interface SamEnqueueRemote { } // local interface package com.sam.enqueue; @Local p
6 2023-12-03
编程技术问答社区
带有Hibernate的WebSphere Embeddeble EJB容器抛出java.lang.ClassNotFoundException:com.ibm.WebSphere.jtaextensions.SynchronizationCallback
我正在使用WebSphere 8的可嵌入EJB容器为我的EJB使用Junit4编写一些单元测试.我在MyeClipse中有一个简单的Java项目,我参考了EJB项目. EJB项目使用Hibernate 3.5进行持久性和Hibernate.cfg.xml中的DataSource Jndi是JDBC/ConnectionName,它在可嵌入容器的属性中定义. . 可嵌入的容器成功启动,可以成功找到EJB,并且还可以成功找到数据源.但是,在EJB方法的任何第一个方法上,以下例外是抛出的: org.hibernate.HibernateException: java.lang.ClassNotFoundException: com.ibm.websphere.jtaextensions.SynchronizationCallback at org.hibernate.transaction.WebSphereExtendedJTATransactionLookup$Transac
48 2023-12-03
编程技术问答社区
@Singleton @Startup @PostConstruct方法保证在EJB可供客户端调用之前返回?
在Java EE 6应用程序上运行WebSphere 8.0的上下文中,我需要执行许多启动任务,然后才能执行任何业务方法.为此,使用@Startup,@Singleton bean似乎是一个有前途的解决方案.但是,对我来说,应用程序生命周期的样子还不清楚. EJB 3.1规格陈述以下内容: 默认情况下,容器负责决定何时 初始化单身豆实例.但是,豆开发人员可以 可选地配置Singleton以急切的初始化.如果是 启动注释出现在Singleton Bean类上,或者 Singleton已通过部署描述被指定为 需要急切的初始化,容器必须初始化 应用程序启动序列期间的Singleton Bean实例. 容器必须先初始化所有此类启动时间单元 任何客户请求都交付给任何企业Bean组件 应用程序. 在最后一句话中,初始化的究竟是什么?容器是否会等待@Startup bean的@PostConstruct方法在使客户端请求可用之前返回? 说到客户端请求,在此上下文中,EJB方法的计划执
2 2023-12-03
编程技术问答社区
'Bean没有一个不接受参数的公共构造函数'错误,尽管明显有一个?
我有一个具有非常简单的" send_email"方法的电子邮件服务EJB.尽管显然有一个不使用参数的公共构造函数,但我仍会收到标题中的错误.以下是确切的错误和类代码.这很令人困惑. 错误: [错误] cntr5007e:websphere.jaxrs.service.emailservice bean Webapiconsole#webapiconsole.war#电子邮件服务bean的类 没有不使用参数的公共构造函数. 有关错误详细信息,请参见此处(不多可见):代码: package websphere.jaxrs.service; import javax.ejb.EJB; import javax.ejb.LocalBean; import javax.ejb.Stateless; import org.apache.commons.mail.Email; import org.apache.commons.mail.EmailException; im
2 2023-12-03
编程技术问答社区
@Singleton bean未能初始化,因为它在';s标记的TransactionAttribute=不受支持
我的EJB3.1 bean初始化遇到困难,并且更具体地与由于感知到的交易回滚而失败,即使我用@TransactionAttribute(NOT_SUPPORTED)标记了bean.这应该意味着任何客户交易在bean方法条目中都暂停了直到退出(何时恢复.这绝对是我想要的交易评估. 代码和错误的"要点"如下(请注意,其中一些是手工曲折以隐藏详细信息,但都是相关和代表性的): @Singleton(name = "MyClass") @ConcurrencyManagement(value = BEAN) @TransactionAttribute(value = NOT_SUPPORTED) @Local(MyInterface.class) public class MyClass implements MyInterface { @PostConstruct public void init() throws MyException { tr
6 2023-12-01
编程技术问答社区
PayaraMicro不在EJB或ApplicationScoped上调用@PreDestroy。
我正在将战争申请从Payaraserver迁移到Payara Micro,以减少RAM使用. 我只是意识到用ctrl+c. 停止实例时未调用@predestroy 我想执行某些操作时正确关闭Payaramicro实例的正确方法. 感谢您的回答! 或Payara服务器中哪些服务停用以使用与Payaramicro一样多的RAM? 我正在使用5.183版,我还尝试了5.192. 解决方案 您使用了哪种EJB?我认为它应该在@Singleton和@Stateless上使用.我不确定Payara Micro的支持. 是如何支持的. 但是,由于Payara Micro支持Java EE Web配置文件,并且您无论如何都使用Web应用程序,因此我建议使用@WebListener通知生命周期事件. 它可以如下实现: import javax.servlet.ServletContextEvent; import javax.servlet.Serv
0 2023-11-27
编程技术问答社区
JBoss 6-Deploy ejb in war packaging
我正在尝试使用新的EJB3.1功能,其中一个人可以在.war文件中部署包装的EJB. 我正在使用Maven 2.2.1打包EJB模块,然后将EJB JAR放入战争模块中(作为依赖关系).最后的战争包含一个简单的Web.xml,没有内容,而Lib目录中的EJB JAR库.但是,尽管该应用程序已正确部署,但容器未识别出注释的EJB(@Stateless).我没有ejb-jar.xml描述符(我相信在EJB3中是可选的). 如果我自己部署EJB JAR(通过将其放在JBOSS的部署目录中),则将其部署为分配的JNDI名称. 我在这里错过了什么吗? 解决方案 我在这个问题上找到了问题.我的web.xml是2.4版本:
6 2023-11-27
编程技术问答社区
当使用JPA2时,如何对EJB进行单元测试?
您将如何进行使用JPA的EJB的单元测试?例如,如果我有一个订单实体和OrdereJB,应该计算出订单的总数(如下所示),我将如何在不触摸数据库的情况下进行单元测试EJB?另外,您将如何定义实体的值,以便您可以断言预期的计算?这是下面的一些示例代码... @Entity public class Order { @Id private long OrderId; private LineItem[] items; } 和orderejb @Stateless public class OrderEJB { EntityManager em; public double calculateOrderTotal(long orderId) { .. } } 如果我无法触摸数据库,您将如何进行计算订购方法测试?我不想实施DAO,因为我试图摆脱这种方法. 感谢您的任何帮助. 解决方案 ordereJB,秩序和lineIte
8 2023-11-07
编程技术问答社区
无法运行arquillian测试
我正在尝试将Arquillian用于某些单元测试,但是我找不到为什么使用Maven部署时它们失败. 这是类测试: package com.ndeveloper.spec.test; import javax.inject.Inject; import junit.framework.Assert; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.ArchivePaths; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.ByteArrayAsset; import org.jboss.shrinkwrap.api.spec.JavaA
6 2023-11-07
编程技术问答社区
用Maven 2和Glassfish 3对EJBs进行单元测试
我一直在尝试设置应用程序,以便我可以整天测试它是EJBS,但我似乎无法摆脱看起来非常简单的问题. 我有Netbeans 6.9中设置的标准Maven Web应用程序.我自动为其中一个EJB生成了一个单元测试,但是每当我运行它时,都会收到错误消息: Testcase: initializationError(com.example.ExampleTest): Caused an ERROR Absent Code attribute in method that is not native or abstract in class file javax/ejb/embeddable/EJBContainer java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/ejb/embeddable/EJBContaine
4 2023-11-07
编程技术问答社区
实体管理器。persist()方法挂起
不确定有人是否遇到了这个问题.我将使用EJB3.1和JPA2.0使用Hibernate实现的JBOSS7.1应用程序服务器.我正在使用后端Oracle 11G数据库.请参阅以下代码.我正在使用由HTTP GET请求驱动的Servlet调用我的EJB. 当我在以下代码中评论context.setRollbackOnly()时,我的网页只会永远挂起,一段时间后我会在堆栈跟踪下(如果我进行调试,则会带我直到persist()方法,然后再也不会到任何地方). 21:56:22,765 warn [com.arjuna.ats.arjuna](交易收割机)Arjuna012117:TransActionReaper :: TX 0:FFFFC0A80005:57A36CD7:57A36CD7:5303D0BF:30 21:56:22,767警告[com.arjuna.ats.arjuna](交易收割者工人2)Arjuna012095:堕胎ID 0:FFFFC0A80005:57A36C
52 2023-10-25
编程技术问答社区
TransactionRolledBackLocalException客户端';%s事务在访问@singleton时中止
注意:在花费的时间远远超过我要找到原因的时间之后,以简短的形式添加此问题.希望我能节省其他人的痛苦. 当将方法委派给EJB用@Singleton注释的EJB时,容器沿着: 的行抛出一个例外 TransactionRolledbackLocalException Client's transaction aborted Singleton Bean没有发生数据访问. servicebeanimpl.java @Stateless @Local public class ServiceBean extends BaseBean{ @EJB private CacheService cacheService; public FooObj getFooFromCache(int id) { FooObj fooObj = (FooObj) cacheService.get(id); if (fooObj == null) { f
24 2023-10-25
编程技术问答社区
当交易属性为 "需要 "时,为什么CMT会在EJB方法的退出时提交?
我一直在发现我已经存在的交易在任何标记为@ejb.transaction type="Required"的EJB的方法中都会投入使用.这可以正确吗? 我的期望是,EJB"要求"交易的意思是:如果已经存在,它将有礼貌地将其保留在完成后,以便在调用>>>之前,可以继续使用它来进行进一步操作()或rollback(). [当然,如果首先没有交易,那么EJB方法将同时调用begin()和commit()/rollback().] 我的期望是错误的,还是我应该寻找配置错误? 补充说我在EJB内使用了Hibernate 3.在调用EJB方法之前,我要获取用户触手可及. EJB在出口上生成了包装器ServerTransaction.commit(),它冬眠钩子并利用机会结束了会话.我遇到的错误是一个冬眠的懒惰加载异常,因为当我尝试访问Hibernate Persisting对象上的Getters时,会话已关闭.因此,从技术上讲,我不是100%确定我观察到的ServerTransact
6 2023-10-25
编程技术问答社区
从WebSphere控制台中删除EJB计时器任务
我有一个EJB应用程序,并使用EJB计时器将某些任务(持久数据库序列ID)放置在其上的日期/时间,并且一旦时间到期,请从计时器中删除任务并调用某些方法. > 我正处于EJB计时器中以及每当计时器暂停时,并且它从计时器中获取每个任务时,都会放置许多任务,并尝试调用某些必须更新与任务ID关联的数据库的方法.我发现在某些数据库移动期间,如何从数据库中删除所有这些任务. 现在,EJB计时器继续重复超时,任务不断在日志中抛出异常.我不知道如何从EJB计时器中删除这些任务,因此它不会尝试使用不再存在的每个任务ID调用方法. 任何帮助将不胜感激! 谢谢! 解决方案 没有能力从管理员控制台中删除计时器,但是您可以使用WAS_HOME/bin/cancelEJBTimers命令将其删除.您可以使用findEJBTimers命令首先查看它们. 其他解决方案 使用cancelEJBTimer.sh /opt/IBM/WebSphere/AppServer/bin下的命
24 2023-10-21
编程技术问答社区