我在spring事务中遇到了一个奇怪的问题.我的应用程序使用Spring和EJB.EJB还调用带有注释的Spring服务类@Transaction.我使用Spring JtaTransactionManager进行事务管理.该应用程序打包为一个EAR文件,并部署在jboss5.0上,它工作正常.但是当我指示jboss为每个EAR应用程序使用单独的类加载器时,spring初始化会产生错误.
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'transactionManager' defined in ServletContext resource
[/WEB-INF/applicationContext.xml]: Invocation of init method failed;
nested exception is java.lang.IllegalStateException: No JTA UserTransaction
available - specify either 'userTransaction' or 'userTransactionName' or
'transactionManager' or 'transactionManagerName'
Run Code Online (Sandbox Code Playgroud)
为什么Spring的初始化不成功?
谢谢
我有一个问题 - 命令"gradle eclipse"生成必要的Eclipse WTP文件.我可以将项目导入Eclipse,但是当我部署到Glassfish时,它不会将任何内容复制到Glassfish的eclipseApp目录中.
我确认该项目是动态Web Facet但它仍然无效.
任何帮助将不胜感激.
谢谢
我发现了一个灵活的安全框架Apache Shiro.我使用Shiro成功实现了身份验证和授权.
该框架的一个吸引人的特性是基于实例的安全性.我刚从Shiro网站上复制了一些例子.
以下权限存储在数据库中.
printer:query:lp7200
printer:print:epsoncolor
Run Code Online (Sandbox Code Playgroud)
以下代码检查对于给定的打印机实例,当前经过身份验证的用户是否具有权限.
if ( SecurityUtils.getSubject().isPermitted("printer:query:lp7200") {
// Return the current jobs on printer lp7200
}
Run Code Online (Sandbox Code Playgroud)
我的问题是"这是权限存储在数据库中的方式吗?" 有没有更好的方法来存储基于实例的权限?
请告诉我.
谢谢
我想对FindBugs使用相同的配置,无论它是从eclipse还是ant build执行.
使用ant FindBugs任务,可以指定FindBugs应分析哪些类.但是,FindBugs eclipse插件没有这样的选择.它会考虑构建路径中的所有类.
例如,对于基于maven的项目,eclipse构建路径包含应用程序类和测试类.我希望FindBugs eclipse插件不分析测试类.可能吗?
有没有办法自定义FindBugs eclipse插件来指示要分析的类?
提前致谢.
我已经定义了一个会话bean基类.此类是抽象的,包含受保护的最终方法.会话实现类扩展了抽象类并定义了其他方法.在部署期间,Glassfish 3.1.2服务器生成一个异常,说明该方法被覆盖.
abstract class AbstractSessionBean {
@PersistenceContext(unitName="primary")
private EntityManager em;
protected final EntityManager getEntityManager() {
return em;
}
}
@Startup
@Stateless
class RegistrationSessionBean extends AbstractSessionBean {
public void loadRegistration() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
在部署期间,glassfish服务器抛出异常.如果我使AbstractSessionBean的方法非final,则部署成功.
这是否意味着会话bean不能拥有最终方法?或者此行为仅适用于Glassfish 3.1.2.
异常消息是:
[#|2013-08-26T17:45:48.542+0530|SEVERE|glassfish3.1.2|javax.enterprise.system.tools.admin.org.glassfish.deployment.admin|_ThreadID=47;_ThreadName=Thread-2;|Exception while loading the app : EJB Container initialization error
java.lang.RuntimeException: Could not invoke defineClass!
at com.sun.ejb.containers.EjbOptionalIntfGenerator.makeClass(EjbOptionalIntfGenerator.java:448)
at com.sun.ejb.containers.EjbOptionalIntfGenerator.access$200(EjbOptionalIntfGenerator.java:64)
at com.sun.ejb.containers.EjbOptionalIntfGenerator$1.run(EjbOptionalIntfGenerator.java:99)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.ejb.containers.EjbOptionalIntfGenerator.loadClass(EjbOptionalIntfGenerator.java:96)
at com.sun.ejb.containers.BaseContainer.instantiateOptionalEJBLocalBusinessObjectImpl(BaseContainer.java:3886)
at com.sun.ejb.containers.StatelessSessionContainer.initializeHome(StatelessSessionContainer.java:253)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:167)
at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:230)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:305)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:108)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:186)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:264)
at …Run Code Online (Sandbox Code Playgroud) 在ejb-jar.xml文件中声明的EJB拦截器与beans.xml文件中声明的CDI拦截器之间是否有任何区别?
两个拦截器都使用注释@Interceptors声明.如果CDI拦截器也适用于EJB,那么为什么存在EJB拦截器?