Tag: ejb 3.0

无法部署EAR文件

我正在开发struts2框架中的web模块和eclipse中的ejb模块,hibernate作为ORM框架。 每当我修改我的ejb模块时,我都必须将它打包到jar中并将其包含在我的web模块/ WEB-INF / lib文件夹中,以便运行我的整个应用程序。 虽然应用程序以这种方式运行良好,但它确实非常耗时。 所以我试着在EAR模块中映射它们。 但是当我尝试运行EAR模块时。 它给出了以下例外 2016-12-24 13:23:43,992 ERROR [org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler] (default task-4) Exception occurred during processing request: WFLYEJB0442: Unexpected Error: javax.ejb.EJBException: WFLYEJB0442: Unexpected Error at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:184) at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277) at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:327) at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:47) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) at org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340) Caused by: […]

实体表未使用JPA 2.1创建

我在Netbeans中使用JPA 2.1来创建我的实体。 如果我的数据库没有表,那么它应该从实体创建表。 当我部署并运行我的企业应用程序时,userEntity表不会出现在我的mySQL数据库中。 有什么帮助吗? 🙂 以下是我的代码。 persistence.xml中 jdbc/commonInfraDatasource false userEntity.java package entity; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class userEntity implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long systemUserId; private String userName; private String password; private String email; private int activateStatus; private String accessGroup; private int lockOutStatus; […]

缺少/不可用依赖项的服务

知道为什么我收到这个错误: JBAS014775: New missing/unsatisfied dependencies: service jboss.jdbc-driver.mysql (missing) dependents: [service jboss.data-source.jboss/datasources/UserDS] ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads – 1) `{“JBAS014653: Composite operation failed and was rolled back. Steps that failed:” => {“Operation step-2” => {“JBAS014771: Services with missing/unavailable dependencies” => [“jboss.data-source.jboss/datasources/UserDSjboss.jdbc-driver.com_mysql_jdbcMissing[jboss.data-source.jboss/datasources/UserDSjboss.jdbc-driver.com_mysql_jdbc]”]}}}` persistence.xml中 java:jboss/datasources/UserDS mydatasource-ds.xml中 jdbc:mysql://localhost:3306/test mysql root root module.xml

EJB 3.x中@Schedule方法的动态参数

我是J2EE6中@Schedule注释的新手 我想使用带有Glassfish 3.1的EJB 3.x运行一个作业。 javax.ejb.Schedule对我们来说似乎是一个不错的选择,因此我们可以将自定义时间视为: @Singleton public class CustomTimer { @EJB SettingsFacade settingsFacade; @Schedule(second=”someSecondParameter”, minute=”someMinuteParameter”,hour=”someHourParameter”, persistent=false) public void executeTimer(){ //Code executing something against database using the settingsFacade } } 在这里,我们希望从数据库中获取参数,因此它们每个月都会更改。 任何干净的解决方案?

无法通过classLoader.getResourceAsStream()从WEB-INF文件夹中检索图像

中午我试图让我的应用程序通过javamail发送html +图像,我只设法发送html,但与图像我有一些问题。 我决定创建一个多部分消息,一切顺利,但后来我使用类加载器从WEB-INF / resources / images检索.png文件我得到一个NullPointerExcetion,我不知道为什么会这样? 这是我的EJB(3.0)的样子。 我很欣赏这一个我没有太多经验的ClassLoader类(不太了解它)。 @Stateless(name = “ejbs/EmailServiceEJB”) public class EmailServiceEJB implements IEmailServiceEJB { @Resource(name = “mail/myMailSession”) private Session mailSession; public void sendAccountActivationLinkToBuyer(String destinationEmail, String name) { // Destination of the email String to = destinationEmail; String from = “dontreply2thismessage@gmail.com”; try { Message message = new MimeMessage(mailSession); // From: is our […]

具有空值的JPA复合主键

我有一个包含oracle数据库中客户数据的表。 这是一个简化的定义: CUSTOMER (CUSTOMER_ID NUMBER NOT NULL, SOURCE_SYSTEM VARCHAR2(30), FULL_NAME VARCHAR2(360), PHONE_NUMBER VARCHAR2(240) ) 该表的主键是(CUSTOMER_ID, SOURCE_SYSTEM) 。 该表有许多行, SOURCE_SYSTEM为null。 在数据库级别,没有问题,但是当我尝试通过JPA实体访问任何这些行时,它会导致许多问题: 1:使用em.find()获取具有空SOURCE_SYSTEM的行总是会返回null。 2:如果表中不存在记录,则使用em.merge()来插入具有空SOURCE_SYSTEM的行成功,但在后续更新时失败,因为合并ALWAYS会导致运行插入。 3:使用em.createQuery()显式查询具有null的行会导致以下exception: Exception [EclipseLink-6044] (Eclipse Persistence Services – 2.3.1.v20111018-r10243): org.eclipse.persistence.exceptions.QueryException Exception Description: The primary key read from the row [ArrayRecord( CUSTOMER.CUSTOMER_ID => 1 CUSTOMER.FULL_NAME => GUY PERSON CUSTOMER.PHONE_NUMBER => 555-555-1234 CUSTOMER.SOURCE_SYSTEM => null)] during […]

为什么要使用有状态会话bean?

我正在学习EJB3,我只是好奇使用SFSB的方便吗? 当SFSB轻易解决一些复杂的问题时,我找不到任何好的例子。 实际上我看到SLSB可以用作网络服务,这很方便。 但我不知道何时使用SFSB。 我只看到它的问题,因为我们应该学习一些关于它的东西,我们应该编写一个由注释组成的代码,然后我们应该使用恼人的查找…而且我们得不到任何好的回报。 例如,我们不能使用SLSB中的SFSB,因为有状态对象只能用于有状态上下文。 我们不能在servlet中使用DI,而是应该使用JNDI查找手动创建SFSB实例,然后将其放入HttpSession对象中。 它不能是网络服务。 我在SFSB中看到的唯一好处是事务管理。 但我认为这种情况很少见,因为我们真的需要一个交易,而且我们不需要DB。 我可以想象,当我们将数据存储在XML文件中并使用SFSB中的事务管理来管理非关系数据库时,它确实非常有用。 我几乎可以肯定我完全错了,所以给我一些非常好的SFSB用法示例。

带有Spring的EJB3

我已经明白,如果我在Spring上下文中使用EJB,我会得到所有相同的好处,就像我在“纯”EJB3环境中使用它一样,这是真的吗? 我用谷歌搜索,但找不到明确,明确的答案。 例如,假设我有一个会话bean来更新数据库中的某些表,并引发系统exception。 在“纯”EJB3环境中,事务将回滚。 如果我使用Spring @Autowire这个bean,那么Spring会像EJB3容器一样处理事务处理吗? 或者是什么? 它可能需要一些特定的配置还是完全“自动”?

将EJB3注入基于注释的JSF2 Backing bean导致javax.naming.NameNotFoundException:

我已经看到其他线程有类似的问题,但无法解决与我的问题的直接链接。 希望我不是在重复一个问题。我的问题是: 我使用带有JSF2的Webpsphere 7作为共享隔离库。 当我尝试将EJB3注入带注释的JSF2支持bean时,我得到了这个错误 Caused by: javax.naming.NameNotFoundException: Name comp/env/helloworld.HelloBean not found in context “java:”. 但是如果我们使用face.xml配置JSF2而不使用注释,它可以正常工作。 但是,如果没有EJB3注入,我们可以将应用程序与JSF2注释一起使用,并且只有在我们尝试注入ejb3时才会看到任何问题。 下面是一个简单的试用应用程序的代码 服务界面: package au.com.test; import javax.ejb.Local; @Local public interface SampleService { public String getServiceName(); } 服务实施: package au.com.test; import javax.ejb.Stateless; import javax.ejb.TransactionAttribute; import javax.ejb.TransactionAttributeType; @Stateless @TransactionAttribute (TransactionAttributeType.NOT_SUPPORTED) public class SampleSession implements SampleService { @Override public String getServiceName() { […]

在EJB 3中使用客户端jar和设计模式

我是EJB 3的新手,并且对谷歌没有提供满意答案的一些疑惑感到困惑。 我正在尝试使用一些基类和一些实用程序方法创建一个框架,我的其他应用程序可以使用它们。 所有应用程序都将部署在同一台服务器上。 当我试图在eclipse中创建一个新的EJB 3.0项目时,它会询问我是否也要创建一个客户端jar。 这个客户端jar有什么用途? 我的ejbmodule是作为EAR文件的一部分添加的。 所以我真的需要这个客户端jar吗? 我是否需要创建本地和远程接口? 或者只是远程接口会做什么? 我决定将所有接口保存在一个名为projCommon的项目和projApps中的bean定义中。 bean类实现的远程接口在projCommon中。 所以projApps依赖于projCommon。 我计划使用projCommon中定义的委托方法来调用bean类。 这意味着projCommon也依赖于projApps,rt? 并导致循环依赖。 EJB是如何直接注入的? 如果你能对我的怀疑提供解释,那将非常有帮助。