javax.inject.Singleton 与 javax.ejb.Singleton 的区别
我很困惑. javax.inject.Singleton和javax.ejb.Singleton之间的确切区别是什么? 解决方案 我找到了一个合理的解释在这里 默认情况下,javax.ejb.Singleton会话bean是交易的(EJB 3.1规范的第13.3.7节),要求为每个业务方法调用(第4.8.5.4和4.8.5.5节)收购独家锁. 相比之下,A javax.inject.Singleton不是交易的,并且不支持容器管理的并发性(主要结果是容器没有实施锁定方案). [...] 如果您不需要EJB功能,请坚持使用@ApplicationScoped(javax.inject.Singleton不是由CDI定义的,因此其语义不受该规范的控制). 要减少未来的混乱,我使用此小型单元测试(需要更换第一级软件包名称): import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.no
42 2024-04-22
编程技术问答社区
企业应用程序build-impl.xml出现错误
我正在使用glassfish-4.0,Netbeans-8.我开始尝试一个示例企业应用程序.我尝试了几次相同的教程,以尝试到达应用程序中的问题以及何时在应用程序中注入.令我惊讶的是,这是从一开始.一旦我在Netbeans中创建新应用程序: project => j2ee => Enterprise Application =>输入项目名称=>选择Glassfish和JDK-7并单击完成.我尝试按原样运行此应用程序,并在此行上的build-impl.xml文件中丢弃此错误(这是在ContactProject-Ejb项目中): 934 虽然类似的错误在contactproject文件中抛出
14 2024-04-05
编程技术问答社区
Gradle。无法找到providedCompile()方法
如何 this " http://www.adam-bien.com/roller/abien/entry/the_only_one_one_deveryency_you" rel =" noreferrer"> this 构建可以使用providedCompile? 的构建文件 thufir@doge:~/NetBeansProjects/gradleEAR$ thufir@doge:~/NetBeansProjects/gradleEAR$ gradle clean FAILURE: Build failed with an exception. * Where: Build file '/home/thufir/NetBeansProjects/gradleEAR/build.gradle' line: 40 * What went wrong: A problem occurred evaluating root project 'gradleEAR'. > Coul
20 2024-04-04
编程技术问答社区
将WAS从6.0升级到7.0后,使用Ant创建EJB时出现错误
蚂蚁任务在标签处断开.例外消息是: [wsejbdeploy] Error executing deployment: java.lang.ClassNotFoundException. Error is com.ibm.etools.ejbdeploy.batch.plugin.BatchExtension. [wsejbdeploy] java.lang.ClassNotFoundException: com.ibm.etools.ejbdeploy.batch.plugin.BatchExtension [wsejbdeploy] at java.lang.Class.forName(Class.java:136) 除此之外,ivy.xml报告了问题,但是当我检查它时,消息没有意义( a)我为构建所拥有的其他文件与升级的蚂蚁冲突(在RSA 7.0中,我的ANT 1.6.5,RSA 8.0带有ANT 1.7.1).其他文件是: 蚂蚁任
28 2024-04-04
编程技术问答社区
RestEasy-参数绑定-无效和错误-EJB
可以说我定义了一个带有参数的pojo,该参数传递给了一个rest调用 class MyVO { @NotNull @PathParam("name") private String name; @NotNull @PathParam("age") private Integer age; // getters and setters } public class RESTclass { public postData( @Form MyVO vo ) { } } 它会自动绑定myvo中的对象.但是我在哪里得到验证错误? 它会触发绑定期间的验证吗?如果没有,如何触发验证? 春天做得很好.它具有可以注入的BindingResult参数. 这里的等效是什么? 有什么想法吗? 解决方案 3.0.1.final 之前的Resteasy版本 对于Bean验证1.0,ResteAsy拥有一
18 2024-03-31
编程技术问答社区
用EJB服务调用进行验证,是否可以用JSF验证器或JSR303 bean验证?
我想使用选择来验证我的用户名.如果已经是用户名 存在于数据库中,验证失败. 我找到了类似primefaces的一些注释: @Size(min=2,max=5) private String name; 我没有找到这样的东西的注释解决方案: try { dao.findUserByUserName(userName); message = new FacesMessage ("Invalid username!", "Username Validation Error"); message.setDetail("Username already exists!"); message.setSeverity(FacesMessage.SEVERITY_ERROR); throw new ValidatorException(message); } catch (NoSuchUserException e) {} 我必
14 2024-03-29
编程技术问答社区
如何处理JSF中的动态角色或用户名变化?
我有一个带有EJB 3后端的Glassfish 2.1上运行的JSF应用程序.对于身份验证,我使用自定义领域.用户使用他在注册中指定的电子邮件地址和密码进行身份验证.一切都很好. 现在我有两个相关问题: 1)用户可以编辑他的个人资料,并且自然而然地可以更改他的电子邮件地址.不幸的是,当我使用externalContext.getUserPrincipal().getName()基于当前用户的身份执行操作时,我将收到以前的电子邮件 - 登录用户.目前,我通过强迫用户更改电子邮件地址后重新验证来处理这一点,但是还有另一个更优雅的可能性吗? 2)用户角色相同.例如.我有用户角色成员和premium_member.成员在当前会议期间可能会成为Premium_member.不幸的是,该角色似乎仅在登录时确定. JSF和EJB是否有可能识别新用户角色而无需重新认证? 解决方案 考虑使用JSF使用 seam 与JSF.在那里,您可以更改登录的用户凭据而无需重新登录.
12 2024-03-20
编程技术问答社区
关于角色和认证的ejb安全问题
我会非常感激的是,有人可以为我提供以下问题: @RolesAllowed和@declareroles注释之间有什么区别? 我开发了一个登录功能,以检查数据库中信息的用户名和密码.但是,我想问一下如何将角色分配给身份验证的用户以与上述注释一起使用. 解决方案 @RolesAllowed和@declareroles注释之间有什么区别? @RolesAllowed注释用于指定实际访问业务方法的角色列表. EJB容器在运行时的行为受此注释的存在影响,因为EJB容器会积极验证呼叫者是否存在允许的角色.同样,可以在TYPE s和METHOD上定义此注释,从而使您可以在类或方法的级别上定义允许的角色列表.您可以在单个方法的级别上覆盖允许的所有方法允许的角色列表. 另一方面,@DeclareRoles注释仅用于声明角色列表;它等效于ejb-jar.xml文件中的security-role-ref元素. EJB容器不需要了解这些角色来实施EJB业务方法的访问控制检查;相反,
30 2024-03-20
编程技术问答社区
JBOSS-LOCAL-USER: javax.security.sasl.SaslException: 读取服务器挑战失败
当我想从其他服务器上访问远程Wildfly服务器上的EJB时,我会出现以下错误. Error: Authentication failed: all available authentication mechanisms failed: JBOSS-LOCAL-USER: javax.security.sasl.SaslException: Failed to read server challenge [Caused by java.io.FileNotFoundException: /../wildfly/standalone-/tmp/auth/X.challenge (No such file or directory)] DIGEST-MD5: Server rejected authentication 如果我在服务器中访问EJB,则不会遇到任何验证错误.我使用以下来访问服务器; http-remoting://server1:8080 基本上
18 2024-03-19
编程技术问答社区
EJB @Asynchronous-Transaction在执行几分钟后就不活跃了
我的Singleton Session Bean中有一个异步方法,在执行几分钟后,在最终确定了另一项交易的方法后,将其抛出以下例外: 由:org.jboss.util.nestedsqlexception:交易不活跃:tx = transactionimple 我已经尝试添加此阳极 - @transactionTimeout-但行不通. 有什么想法吗? 谢谢. 解决方案 1.配置Transaction-jboss-beans.xml中的默认超时: 100 2.使用BMT手动设置交易的超时: userTransaction.setTransactionTimeout(100); 3.在XML定义中的session bean的方法级别的重叠级别: //--
8 2024-03-18
编程技术问答社区
在@Asynchronous bean内的Java注入
我有2个使用注入来"传递"从HttpRequest提取的userdata信息的豆.如果我从workerbean中删除@Asynchronous,那么它的所有工作都可以访问userInfo,那就是注入. 但是,如果我使用@Asynchronous在workerbean上,则注入停止工作. 如果必须是异步的,则可以手动创建/将UserInfo创建/将UserInfo传递到WorkerBean的最佳方法是什么? // resource class @Stateless class MainRs { @Context protected HttpServletRequest request; @Inject protected UserData userData; @EJB WorkerBean job; @Path("/batch/job1") public function startJob() { /
10 2024-03-18
编程技术问答社区
有什么方法可以知道EJB异步进程的进度吗?
我正在尝试从EJB异步过程中获得进度的百分比.这可能吗? 有人知道我该怎么做? 解决方案 要了解异步过程的进度总是很棘手的,尤其是如果您不知道它们是否真的开始. 我发现的最好的方法是编写另一个仅获得进度的功能,因此,如果您对每个调用都有一些唯一的ID,则使用当前过程更新hashmap.您可能需要查看并发hashmap( http://download-llnw.oracle.com/javase/1.5.0/docs/api/java/java/util/concurrent/concurrent/concurrenthashmap.html ) 然后,此其他查找功能将仅获取唯一的ID,然后将进度返回给客户端. 如果尚未启动,您也可以返回,理想情况下,您可能还需要返回处理中出现的任何错误消息. 然后,当它完成后,您返回了错误消息或成功,然后将其从hashmap中删除,客户端获得了信息,并且该信息不会更改,因此没有任何意义. 更新: 在您的
10 2024-03-18
编程技术问答社区
使用EJB异步方法的正确方法
我有两个任务需要执行task1和task2,这是同一业务流程的一部分. task1完成后,我必须对最终用户做出回应,以便必须将响应时间最小化. 我当前的方法是执行task1,并且在task1完成后立即调用task2方法异步. task2很复杂,它的响应时间超出了我的控制,因为它具有一些外部依赖性. @Stateless public class SessionBean1 { @Inject SessionBean2 sessionBean2; public void doTask1(){ // task one stuff sessionBean2.doTask2(); } } @Stateless public class SessionBean2 { @Asynchronous public void doTask2(){ // do task2 stuff
12 2024-03-18
编程技术问答社区
EJB @Asynchronous在同一类中不起作用
我有以下情况: 我希望" methodb"并行执行10次.但是,只有当从另一个bean调用" methodb"时才发生. 为什么当从同一类中的另一种方法调用该方法时,注释" @asynchronous"不起作用? 谢谢. 解决方案 它仅适用于通过客户端代理来调用方法,例如@Local或@Remote接口.这在EJB 3.1规格(第4.5-4.5.1节)中进行了描述: 会话bean可以用异步 client invocation语义露出方法 ... @asynchronous注释用于指定哪些业务方法是异步的. ... 异步方法调用语义仅适用于无接口,本地业务和远程业务客户视图.
12 2024-03-18
编程技术问答社区
EJB @Asynchronous在同一类中不起作用
我有以下情况: 我希望" methodb"并行执行10次.但是,只有当从另一个bean调用" methodb"时才发生. 为什么当从同一类中的另一种方法调用该方法时,注释" @asynchronous"不起作用? 谢谢. 解决方案 它仅适用于通过客户端代理来调用方法,例如@Local或@Remote接口.这在EJB 3.1规格(第4.5-4.5.1节)中进行了描述: 会话bean可以用异步 client invocation语义露出方法 ... @asynchronous注释用于指定哪些业务方法是异步的. ... 异步方法调用语义仅适用于无接口,本地业务和远程业务客户视图.
24 2024-03-18
编程技术问答社区
EJB @Asynchronous在JSF中检索实时插入的行,似乎是线程锁定的。
我正在尝试实现以下内容: EJB3 Singleton @Singleton @Startup public class SomeSingleton implements SomeSingletonLocal { // Entity Manager injection private EntityManager _entity_manager; @Override @Asynchronous public void createScenario(){ method1(); method2(); // ... } public void method1(){ // Persist an Event in a Database. } public void method2(){ // Persist an Event i
10 2024-03-18
编程技术问答社区
模块通过EJB暴露功能。如何处理模块间的Hibernate懒惰加载?
假设应用程序被破坏为模块,每个模块通过EJB揭示功能.如果模块A在模块B中调用EJB方法,该方法返回通过Hibernate检索的对象,则模块A将无法调用该对象的懒惰加载方法,因为会话不再存在.如何处理这种情况? 解决方案 我提出了这个最终决定.还没有尝试过,但我认为它会起作用.问题是 如果模块A呼叫模块B中的EJB方法,该方法返回通过Hibernate检索的对象,则模块A将无法调用该对象的懒惰加载方法,因为会话不再存在. 因此,为了克服这一点,模块B将仅返回对象的主要键,而模块A将通过Hibernate检索对象.这样,模块A将能够调用对象的懒惰加载方法. 其他解决方案 别无选择,只能在从系统B返回该物体之前完全保湿该对象.Hibernate不会跨越JVM,也不需要它.如果对象太大,那么您可能需要介绍两个(或多个)调用以返回摘要和详细信息.
22 2024-03-03
编程技术问答社区
EJB如何能将一个漫长的、CPU密集型的过程并行化?
该应用程序具有一个CPU密集的长进程,当时客户端请求时,该应用程序当前在一台服务器(EJB方法)上运行. 从理论上讲(从概念的角度来看)可以在n个块中拆分该过程并并行执行,只要可以收集所有并行作业的输出,然后将其连接在一起,然后再将其发送给客户端.开始过程.我想使用此并行化来优化性能. 如何与EJB实现此并行化?我知道我们不应该在EJB方法中创建线程.相反,我们应该发布消息(每项工作一项),以通过消息驱动的豆(MDB)消费.但是,这将不再是同步的呼叫.在这种情况下,同步似乎是必需的,因为我需要在将其发送回客户之前收集所有作业的输出. 有解决方案吗? 解决方案 这个特定的问题已经多次出现,我总结说有几种可能的解决方案,我只建议其中1个. 使用commonj api的工人.它允许在Java EE容器中托管线程,并专门设计用于适合您的用例.如果您使用的是WebSphere或WebLogic,则这些API已在您的服务器中可用.对于其他 workmanager信息
12 2024-03-03
编程技术问答社区
我如何解决这个问题。当试图在Jenkins上构建一个Java Web应用程序时,Ant无法 "找到文件"?
我正在尝试使用Netbeans多端口的Web应用程序项目来建立一个自动构建系统.该NetBeans项目包含一个EJB项目(用于Web应用程序的业务层)和战争项目(用于应用程序的Web层).我目前坚持要蚂蚁编译该项目. 我正在使用Windows 8在Netbeans IDE 8.0中开发.詹金斯也在Windows 8上运行. 我目前正在寻找一个了解如何与Jenkins和Ant. 到目前为止我所做的事情: 我已经设置了一个Netbeans项目(如上所述) 我已经为项目设置了一个git存储库 我已经设置了Jenkins CI 我能够与Jenkins CI 从GIT存储库中获得该项目 我能够让詹金斯使用蚂蚁清洁其检索的项目 从git存储库 我被卡住的地方: 成功执行清洁命令后,我想使 debug 命令工作.为此,该项目需要编译.这是出错的地方. i在詹金斯(Jenkins)中的蚂蚁调用的属性字段中输入以下属性: libs.CopyLibs.cl
24 2024-02-27
编程技术问答社区
为什么我的EAR项目不能看到JPA项目中的EJB和实体注释?
我正在使用IBM Rad 7(又名Eclipse 3.4)和WebSphere 7. 我有一个带有基本EJB设置的工作区;项目遗产,Testejb,testjpa,testWeb. 我可以在TESTEJB项目中注释EJB(" @Stateless entityService"),并且效果很好.但是,如果我将EJB(" @stateless entitydao")放在testjpa项目中,则不会在EntityService中注射.如果我将EntityDao移至Testejb项目,则可以正常工作. 另外,如果我注释班级一个实体("@entity merentity"),它不被称为容器的实体(我得到了一个"未识别的实体" ..."已知实体类型:[]"错误" ).但是,如果我在testejb的persistence.xml中添加我的domain.myentity标签,则可以正常工作. 问题:为什么Testejb项目不能识别testjpa项目中的注释类? 注意:Ecl
8 2024-02-26
编程技术问答社区