小编Jul*_*oHM的帖子

CDI Inject在maven-embedded-glassfish-plugin上失败 - org.jboss.weld.exceptions.DeploymentException:WELD-001408类型不满意的依赖项

我们有一个webapp,目前正在使用Java EE 7,JSF 2.2和Glassfish 4.0开发.有两个特定的托管bean,它们具有循环依赖性.

UsuarioController

@Named
@SessionScoped
public class UsuarioController implements Serializable {

    /** snipet **/

    @Inject
    private EnderecoController enderecoController;

    /** snipet **/
}
Run Code Online (Sandbox Code Playgroud)

EnderecoController

@Named
@ViewScoped
public class EnderecoController {

    /** snipet **/

    @Inject
    private UsuarioController esuarioController;

    /** snipet **/
}
Run Code Online (Sandbox Code Playgroud)

当webapp打包并部署到普通的glassfish 4.0安装时,它可以正常工作.

但是,在开发过程中,我们使用maven-embedded-glassfish在IDE内部进行本地测试.应用程序部署失败,出现以下异常.

SEVERE: Exception while loading the app : CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [EnderecoController] with qualifiers [@Default] at injection point [[BackedAnnotatedField] @Inject private net.jhm.exemplo.view.UsuarioController.enderecoController]
org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [EnderecoController] …
Run Code Online (Sandbox Code Playgroud)

java-ee cdi

10
推荐指数
1
解决办法
1万
查看次数

LogWatch报告的可能^ null $漏洞是什么?

LogWatch是一个很好的工具,它提供有关linux日志文件的每日报告.它包括几个信息摘要,如流量,登录用户,使用sudo的用户,相关内核消息,探测服务器的IP,探测你的apache的搜索引擎等等......

一个部分包括使用已知漏洞尝试破解您的服务器的IP地址.它们并不一定成功,但无论如何它们都被列在报告中以获取知识.这就是它的样子.

Attempts to use known hacks by 4 hosts were logged 4 time(s) from:
   187.13.156.179: 1 Time(s)
      ^null$ 1 Time(s) 
   187.60.121.62: 1 Time(s)
      ^null$ 1 Time(s) 
   189.123.240.18: 1 Time(s)
      ^null$ 1 Time(s) 
   189.70.214.124: 1 Time(s)
      ^null$ 1 Time(s) 
Run Code Online (Sandbox Code Playgroud)

我的问题是这次^null$袭击究竟是什么?我试过谷歌搜索,但似乎没有任何相关性.

linux security exploit

9
推荐指数
2
解决办法
3766
查看次数

如何拦截JTA事务事件并获取对与事务关联的当前EntityManager的引用

简而言之:我们开发和维护一个可以在其他项目中使用JavaEE7/CDI/JPA的库.应用程序将在Glassfish-4.0下运行,并使用Hibernate的JPA实现来实现底层PostgreSQL持久性.这是将Spring/Struts/Hibernate中编写的旧应用程序重写为JavaEE7/CDI/JTA新世界的长期迁移工作的一部分.

问题:出于审计目的,我们的库需要拦截所有数据库事务,并在执行用户语句之前包含自定义SQL语句.此时,需要将当前用户名和IP地址插入临时数据库变量(供应商特定功能),以便数据库触发器可以读取它们以创建任何行修改的审计跟踪.这篇特别的帖子对提供替代方案非常有帮助,而且我们的团队因先前建立的遗产而走上了触发之路.

但是:我们 JTA如何处理交易事件深感失望.有许多方法可以拦截交易,但这种特殊情况似乎是不可能的.在旧架构中,使用Spring的事务管理器,我们只使用了一个实现Interceptor.afterTransactionBegin(...)Hibernate Interceptor.阅读官方JTA-1.2规范,我们发现它确实支持Synchronization.beforeCompletionSynchronization.afterCompletion.经过几个小时的调试会议后,我们清楚地注意到Hibernate的JTA实现正在使用这些工具.但是JTA似乎缺少像beforeBeginafterBegin(IMHO似乎缺乏常识)之类的事件.而且由于没有设施来拦截它们,Hibernate完全符合JTA,它根本不会.期.

无论我们做什么,我们都找不到办法.例如,我们尝试拦截@Transactional注释并在容器的JTA impl完成其工作以打开事务之后运行我们的代码.但是我们缺乏动态获取与该特定事务关联的EntityManager的能力.请记住:这是一个库,而不是Web应用程序本身.它不能对应用程序声明和使用哪些持久性单元做出任何假设.而且,据我们所知,我们需要知道将哪个特定的持久单元名称注入到我们的代码中.我们正在努力为其他temas提供尽可能透明的审计工具.

所以我们谦卑地寻求帮助.如果有人有解决方案,解决方法,无论什么意见,我们都会很高兴听到它.

java postgresql spring hibernate jpa

6
推荐指数
1
解决办法
1555
查看次数

标签 统计

cdi ×1

exploit ×1

hibernate ×1

java ×1

java-ee ×1

jpa ×1

linux ×1

postgresql ×1

security ×1

spring ×1