Jakarta ee &引用;加载应用程序时出现异常";没有堆栈跟踪

Jakarta ee &引用;加载应用程序时出现异常";没有堆栈跟踪,jakarta-ee,deployment,glassfish,nullpointerexception,jboss-weld,Jakarta Ee,Deployment,Glassfish,Nullpointerexception,Jboss Weld,我正在将我的应用程序从GlassFish 3.0.1迁移到GlassFish 3.1.1。部署失败,并显示以下错误消息: SEVERE: Exception while loading the app SEVERE: Exception while shutting down application container SEVERE: Exception while shutting down application container : java.lang.NullPointerExcept

我正在将我的应用程序从GlassFish 3.0.1迁移到GlassFish 3.1.1。部署失败,并显示以下错误消息:

SEVERE: Exception while loading the app
SEVERE: Exception while shutting down application container
SEVERE: Exception while shutting down application container : java.lang.NullPointerException
SEVERE: java.lang.RuntimeException: Error occurred during deployment: Exception while shutting down application container : java.lang.NullPointerException. Please see server.log for more details. 
没有堆栈跟踪。我将根日志级别设置为FINEST,第一条严重消息出现在焊接消息之后:

//...
FINE: WELD-000105 Enabled interceptor types for Manager
Enabled alternatives: [] []
Registered contexts: [interface javax.enterprise.context.SessionScoped, interface javax.enterprise.context.RequestScoped, interface javax.inject.Singleton, interface javax.enterprise.context.Dependent, interface javax.enterprise.context.ApplicationScoped, interface javax.enterprise.context.ConversationScoped]
Registered beans: 0
Specialized beans: 0
: []
在以下几条消息之前(针对几个不同的类):


是什么导致了这个错误?这些PWC4451消息是否表明某些库没有被加载?

经过三个小时的调试,我在JBoss 6中部署应用程序时解决了这样一个问题

似乎有几个来自Weld的错误消息没有在Glassfish下正确记录。在我的例子中,我用@Stateless@requestscope注释了一个EJB(这是非法的,必须是@Statefull)。 对于Glassfish,我只能看到“加载应用程序时出错”,而在JBoss6中,我得到了正确的错误消息,指出了错误代码


我建议您尝试在JBoss 6上部署,剥离所有阻止Weld部署程序扫描应用程序和验证CDI内容的部分(例如,具有特定JNDI路径的@Resource)。

这是由于@ViewScoped bean没有实现可序列化。显然,我们正在使用的一个旧版本的Weld并没有发现钝化作用域bean不可序列化这一点令人反感,但这一版本因为它而悄无声息地失败了。哦,希望这能节省一些时间。

在我的例子中,问题是我的beans.xml由空的“beans”元素组成,该元素过去可以工作,但显然不再工作了。当我用一个完全空的0字节beans.xml替换它时,它工作了。

我在添加一个在
Glassfish 3.1.2.2中无法序列化的拦截器时遇到了同样的问题。刚刚得到一个
NullPointerException
,没有任何进一步的解释


当我使拦截器实现可序列化时,它工作得很好。
我遇到的有关此问题的原因和解决方案:
-目标未更新(请确保执行maven清理,目标文件夹可能已锁定,请尝试手动删除它并重建您的ear(此问题出现过几次)
-JDBC池的问题:刷新它们
-EJB的构造函数问题(请注意,创建bean的是容器):容器需要能够启动它们。因此,必须存在没有参数的默认构造函数

如果这不起作用: Teop->比较->最新的工作版本,并考虑WebServices中的每一个EJB bean或DTO可能是错误的原因。请注释您的更改并重新部署以定位您的问题。


不管怎么说,这都是一个严重的错误:(祝你好运!

就我而言,本着拦截器的精神,我的很容易找到,因为我在那里玩

我在我的拦截器上添加了无辜的@Interceptor,尽管我正在将它与注释一起使用

我的glassfish版本是3.1.2.2


此页面表示它是可选的。

这看起来好像没有任何用处。如果任何开发工具程序员看到这一点,请记住:良好的错误消息是一项功能!这实际上被标记为Glassfish问题,应该在Glassfish 4.0中根据问题进行修复。请看,很遗憾,这现在对您和我都没有帮助。感谢您的支持ggestion,我将研究如何在JBoss上运行我的应用程序。你知道有没有向Seam/GlassFish的人报告过这个错误?这解决了我的问题!谢谢……在我尝试之前,我会花很长时间:)
FINE: PWC4451: File cannot be read /opt/sun/glassfish-3.1.1/glassfish/domains/domain1/applications/QmsWeb/WEB-INF/classes/org/jboss/seam/transaction/SeamTransaction.class
FINE: PWC4451: File cannot be read /opt/sun/glassfish-3.1.1/glassfish/domains/domain1/applications/QmsWeb/WEB-INF/classes/org/jboss/seam/transaction/SeamTransaction.class
FINE: PWC4451: File cannot be read /opt/sun/glassfish-3.1.1/glassfish/domains/domain1/applications/QmsWeb/WEB-INF/classes/net/sf/ehcache/config/TerracottaConfiguration$ValueMode.class
//...