BeanManager在此上下文中不适用

问题描述

我们拥有当前在WebLogic中运行的Java Web应用程序的所有权。现在,我们正在尝试使用OCP将其部署在Tomcat中。

当我们将.war文件拖放到Tomcat / webapps目录中时,该应用程序未启动,并且收到的错误是:

10/06/20 13:33:02.405 [                        main] ERROR  ConversationAwarePrimeResourceHandler[72] = 
javax.naming.NameNotFoundException: Name [BeanManager] is not bound in this Context. Unable to find [BeanManager].
    at org.apache.naming.NamingContext.lookup(NamingContext.java:817)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:159)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:827)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:173)
    at org.apache.naming.SelectorContext.lookup(SelectorContext.java:163)
    at javax.naming.InitialContext.lookup(InitialContext.java:417)
    at pax.XXXNameRemovedXXX.common.web.servlet.ConversationAwarePrimeResourceHandler.getBeanManager(ConversationAwarePrimeResourceHandler.java:60)
    at pax.XXXNameRemovedXXX.common.web.servlet.ConversationAwarePrimeResourceHandler.<init>(ConversationAwarePrimeResourceHandler.java:33)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

错误不是来自Web应用程序,而是来自作为应用程序一部分构建的“自定义” .jar文件。似乎用于生成jar文件代码无法检索BeanManager。

我找到了有关如何针对Web应用程序执行此操作的说明:Application servers and environments supported by Weld

但是,这似乎不适用于生成.jar文件代码。 这段代码缺少meta-inf,WEB-INF等内容

有人可以告诉我如何处理吗?

解决方法

通过将应用程序从spring转换为spring-boot,然后使用嵌入式tomcat来完成任务。 它是由另一位开发人员完成的,因此我不清楚该怎么做,但至少我可以结束这个话题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...