草庐IT

java - Maven EJB 打包依赖库

我面临一个问题,即如何使用简单的WAR和EJB3模块为JBoss7应用服务器正确打包我的企业(EAR)应用程序。问题是,EJB模块正在使用XML-RPC库(来自Apache),并且在部署EAR期间我仍然得到NoDefClassFound(来自这个xmlrpc库的类)。问题是,maven-ejb-plugin在最终的EJBjar中不打包依赖项,但maven-ear-plugin打包它位于EAR目录的根目录中。部署EAR时,在内部EJB模块上调用INSTALL,但它没有找到xmlrpclib类(它不是与EJBjar一起打包,而是与EAR一起打包,并且在list中没有任何条目)。EJBpom

java - 未注入(inject) Arquillian 的显式本地 EJB

我使用Arquillian来测试具有显式本地和远程接口(interface)的无状态sessionbean。但在测试中,Arquillian不会在具有本地接口(interface)类型的字段中“注入(inject)”任何内容,但它适用于远程接口(interface)。@StatelesspublicclassTestServiceImplimplementsTestServiceLocal,TestServiceRemote{publicStringgreet(){return"hallo";}}远程接口(interface):@RemotepublicinterfaceTestSer

java - 为什么 EJB 是线程安全的而 servlet 不是?

根据我的理解,servlet容器创建有限的servlet实例和每个servlet实例的多个线程,并重用这些线程和实例。因为一个线程有多个实例,所以它们不是“线程安全的”(尽管我知道用线程安全对它们进行编码并不困难)。另一方面,EJB容器不创建EJB线程,而是仅重用EJB对象(使用池)。由于一个EJB实例没有多线程,所以不存在线程安全问题。我的问题:为什么会有不同的行为?让EJB作为Servlet(线程不安全)工作不是一个好主意吗?我确定我遗漏了一些东西并且想了解那个遗漏的部分。 最佳答案 对您的问题的最简短回答当然是让EJB像Ser

java - EJB 和线程

据我所知,从EJB中生成线程是非法的,因为它可能会干扰EJB的生命周期。但是,使用JDK中的预定义Java类是否违法,这些类在EJB(特别是MDB)中内部产生和处理线程(例如Executor)? 最佳答案 你“不能”(不应该)使用线程、线程池、执行器……所有这些。使用应用服务器的重点是只编写业务逻辑并让应用服务器完成繁重的工作。如果您真的非常需要自己处理线程,请使用EJB3.1“单例”服务来管理线程。但是,正如其他人所提到的,最好将其留给应用服务器。在应用服务器中进行并行处理的一种方法是使用MDB(听起来您已经在使用它),尽管根据并

java - 使用 "crontab syntax"安排 EJB 任务

我正在尝试找出解决以下问题的可能性。a)我想要一个使用“crontab语法”来安排任务的数据库表,结构应该是这样的:|-Id-|---CrontabSyntax---|---------Task----------||1|30*****|MyClass.TaskA(args[])||2|01**1-5*|MyClass.TaskB(args[])|||||上表将随时被外部应用程序修改。添加或删除的任务应立即影响调度程序。b)调度程序本身应该驻留在Java应用程序服务器上。它应该不断地与数据库表中的Activity计划任务同步。每当发生计划事件时,它应该触发/调用EJB,并将“任务”中的

java - 在 wildlfy9 中,如何在独立模式下使用两个节点进行有状态的 ejb session 复制(集群)

我想用ear项目做集群。我找到了一种使用standalone-ha.xml配置在集群中独立运行的解决方案。我按照下面的文章。它工作正常。Clusteringindomainmodewithwildfly9但我想运行ERP项目,它有ear以及有状态的ejb。所以我在独立模式下运行集群。我有两台机器ip不一样例如1.10.10.10.10节点120.20.20.20节点2两台机器都有wildfly9,出于测试目的,我创建了一个带有Web组件的示例有状态ejb项目。我运行服务器的命令是:standalone.bat-cstandalone-ha.xml-b10.10.10.10-u230.0

java - 带有客户端 Artifact 的 ejb - 运行时依赖性?

我们公司在两个Artifact中创建一个ejb。implArtifact包含实现,客户端Artifact包含所有接口(interface)。这意味着implArtifact对客户端Artifact具有编译依赖性。现在在运行时,客户端Artifact需要implArtifact-否则容器无法注入(inject)所需的对象。这意味着耳朵需要包含所有客户端Artifact的implArtifact。这是否意味着客户端Artifact应该对implArtifact具有运行时依赖性?还是应该避免这些“循环”依赖,即使一个方向是编译,另一个是运行时? 最佳答案

java - 在 2 节点 wildfly 集群中调用远程 ejb

我试图在具有节点node1和node2的集群的每个节点上调用远程ejb,但我总是得到node1。在两个节点中将EJB和客户端代码部署为EAR文件。应用程序正在Wildfly9ApplicationServer上运行。从node1调用客户端代码。EJB代码:@RemotepublicinterfaceSLSBRemote{publicvoidtest();}@Stateless(mappedName="SLSBEJB")publicclassSLSBEJBimplementsSLSBRemote{@Overridepublicvoidtest(){try{StringnodeName=S

java - 使用 : JAX-RS API, ServiceLocator 和远程 EJB 组织我的项目的选项

我正在尝试找出我的API项目架构的选项。我想使用JAX-RS1.0版创建一个API。此API使用来自更大、更旧且更复杂的应用程序的远程EJB(EJB3.0)。我正在使用Java6。到目前为止,我可以做到这一点并且可以正常工作。但我对解决方案不满意。查看我的包裹配置。我的担忧在代码后描述:/api//com.organization.api.v1.rs->RestServiceswiththeJAX-RSannotations/com.organization.api.v1.services->ServiceclassesusedbyRestServices.Basically,they

java - 库中的 EJB - 重用 EJB

假设我想创建一个我将在未来项目中使用的库,但我还想在该库中包含引用其他EJB等的EJB。该库还将包含简单的Java类。最好的方法是什么?在这种情况下如何定义依赖关系?我想我会用注释来定义它们。如果库的用户想要配置其他依赖项,他将能够通过在他的项目的ejb-jar.xml中覆盖它们来实现。过去有没有人做过这样的事情?在Eclipse中开发时,您将如何处理?基本上我的问题是,据我所知,如果我只是创建一个ejb-jar,我将把它包含在我的所有项目中,ejb容器将实例化我的e.g.部署时的MDB,即使我不需要库中包含的所有MDB,而只需要其中的一部分。是否有一种解决方案不将MDB定义为带注释的