【问题标题】:Tomcat with CDI: same project and different results at deploy带有 CDI 的 Tomcat:部署时相同的项目和不同的结果
【发布时间】:2015-11-13 00:22:01
【问题描述】:

我在使用 JSF (CDI/Weld) 启动 Tomcat 时遇到了一些问题。最大的问题是,在工作中,同样的项目开始了,但是在家里却没有初始化。

今天我复制了工作日志(使用 Java 8 的 Linux)与我在家里的日志(使用 Java 8 的 Windows)进行比较,它是:console log at home and at work请注意,在“Home Log”的第 210 行,Tomcat 在 /docs 文件夹中部署了一些应用程序,但是在“Work Log”中他放入了 /host-manager。

我正在使用 Maven 和 Git 来促进档案的重用,因此,基本上,它在我的工作站上是同一个项目(两个项目都是最后一次提交)。

  • JSF 版本2.3.0-m04
  • 焊接版3.0.0.Alpha1
  • Omnifaces 版本2.1
  • Apache Tomcat 版本8.0.28

这是我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
version="2.5">
  <display-name>sgcp</display-name>
  <welcome-file-list>
    <welcome-file>login.xhtml</welcome-file>
  </welcome-file-list>
  <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

context.xml

<Context>
    <Manager pathname="" />
    <Resource name="BeanManager" 
        auth="Container"
        type="javax.enterprise.inject.spi.BeanManager"
        factory="org.jboss.weld.resources.ManagerObjectFactory" />
</Context>

和文件夹结构

【问题讨论】:

  • 您确定您的两个工作站都具有完全相同的设置吗?我的意思是:源代码、libs 版本、jdk 版本、tomcat、maven 等?您也可以尝试清除本地 maven 存储库(主目录中的m2)。
  • 是的。如您所见,在两个日志(第 4、8、18、22*、58、74 行)中,它们具有相同的设置。我试试看。
  • 事实上,几乎所有东西都是一样的——但请注意,您的 JVM 略有不同:1.8.0_65-b171.8.0_66-b17 在您的工作机器上。您也可以考虑使用当前稳定的 Weld 版本(我强烈推荐这个)。
  • @G.Demecki 它有效!现在我正在使用 Weld 的最后一个稳定版本(今天,2.3.1.Final)。谢谢。
  • 很高兴能帮上忙 :)

标签: tomcat cdi


【解决方案1】:

简单总结一下 cmets 中的讨论:原来问题是由非常不稳定的 Weld 版本引起的。

顺便说一句:我个人不建议使用不稳定的 Weld 版本。因为稳定版本已经有足够多的错误了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多