小编Ben*_*ler的帖子

即使BeanManager知道EJB,为什么还有WELD-001408

当试图部署耳朵时,我们得到了臭名昭着的WELD-001408(见下面的stacktrace).

问题:似乎WELD无法通过@Inject将EJB注入到lib/shared.jar中的CDI托管bean(!= @ManagedBean)中. 为什么是这样?有没有一个标准说这不应该工作?

更新 我在相关位置也有一个ejb-jar.xml ...

UPDATE2: 我在github上创建了一个最小的versin

首先是设置 - 我的研究/调查结果以及最后的更详细的问题:

我们目前正在使用Glassfish 4.1 => Weld 2.2.2.Final,但错误是相同的,使用Payara 4.1.1.154 => Weld 2.2.16.Final,也是Java EE 7

耳朵的布局

sample.ear
??? a-ejb.jar (contains AEjb.java + beans.xml + ejb-jar.xml)
??? b-ejb.jar (contains AnotherCdiIManagedBeanPojo.java + DummyEjb.java + beans.xml)
??? lib
|   ??? shared.jar (contains ACdiManagedBeanPojo.java, AnotherCdiDependency.java + beans.xml)
??? META-INF
    ??? application.xml (...)
Run Code Online (Sandbox Code Playgroud)

在shared.jar中有

public class ACdiManagedBeanPojo {
    @Inject
    private AEjb aEjb;

    @Inject
    private AnotherCdiDependency anotherCdiDependency;        
}
Run Code Online (Sandbox Code Playgroud)

AEjb是驻留在a-ejb.jar中的EJB

@javax.ejb.Singleton
@javax.ejb.LocalBean
@javax.enterprise.context.ApplicationScoped
public class AEjb …
Run Code Online (Sandbox Code Playgroud)

ejb java-ee cdi weld glassfish-4

9
推荐指数
1
解决办法
2398
查看次数

Angular 4 + zonejs:路由在未捕获的错误后停止工作

如果在路由期间组件(构造函数或ngOnInit)中存在未被捕获的错误,则导航将不再起作用.

即使有一个全局的ErrorHandler和一个用于RouterModule的ErrorHandler,也会发生这种情况,同时添加了一个ZoneListener - 请参阅app.module.ts

这里最小的例子:https: //embed.plnkr.co/L19S3hKWyqgKUIT1EJlI/preview

确保打开控制台.单击"示例组件"后,由于ExampleFormComponent中的强制错误,会出现一些堆栈跟踪.之后,您无法导航回"主页".

如何处理意外的,未被捕获的错误,以确保它们不会破坏整个应用程序?

javascript navigation error-handling zonejs angular

7
推荐指数
1
解决办法
1148
查看次数

从负载平衡的服务器记录

如果这听起来像一个基本问题,请原谅我,但我是网络开发的新手.

我们跨多个服务器负载均衡.应用程序配置为使用log4j进行日志记录.它们每个都写入各自服务器上的日志文件.这意味着研究问题意味着从所有这些服务器获取日志,这是繁琐的,并且意味着通过Ops控制负载平衡,并引入延迟.

这是Web应用程序日志记录的标准吗?或者是否有简单的解决方案来在一个地方整合日志记录?什么是使开发人员可以轻松获取日志的标准做法?

logging log4j

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

Struts2中的错误处理

我对如何在Struts2中进行错误处理感到困惑.我希望制作一次中央页面,如果发生错误,用户将被定向.此外,当发生错误我希望记录它,因为我使用log4j我会记录它log.error(e.getMessage(), e);

但是,在我的动作类中,如果我发现错误(将所有代码放在try/catch中),则中心/常见错误页面不会出现.所以我决定不捕获错误,如果我没有发现错误,那么中央错误页面就出现了.但是现在如何将错误消息/ stacktrack放入日志?

阅读此链接后, 我执行了以下操作:

   <global-results>
                   <result name="Exception" type="chain">
                      <param name="actionName">ErrorPage</param>
                     <param name="namespace">/error</param>

                   </result>
            </global-results>

            <global-exception-mappings>
                <exception-mapping exception="java.lang.Exception" result="Exception"/>
            </global-exception-mappings>
            <action name="selectionPage" class="reports.ReportSelection">
                <result>/reports/SelectionPage.jsp</result>
            </action>

    </package>
    <package name="secure"  namespace="/error">
        <action name="ErrorPage" class="com.myErrorClass">
            <result>errorpage.jsp</result>
        </action>
    </package>
Run Code Online (Sandbox Code Playgroud)

根据上面的配置,最初在reports.ReportSelection中引发错误(但我没有在那里捕获它)所以最后控件来到com.myErrorClass.我可以在这个类中记录错误,但我的问题是,日志消息是否仍然可用...因为它最初是在reports.ReportSelection中抛出的?

java struts2

2
推荐指数
1
解决办法
5274
查看次数