【发布时间】: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-b17与1.8.0_66-b17在您的工作机器上。您也可以考虑使用当前稳定的 Weld 版本(我强烈推荐这个)。 -
@G.Demecki 它有效!现在我正在使用 Weld 的最后一个稳定版本(今天,
2.3.1.Final)。谢谢。 -
很高兴能帮上忙 :)