繁体   English   中英

两个servlet在tomcat上共享相同的jar吗?

[英]Does two servlets share the same jars on tomcat?

看来我在Tomcat中发生了jar冲突。

事实:

  • 在开发模式下运行良好的GWT应用程序。
  • 同一应用在独立服务器上以编译模式运行良好。
  • 在运行其他应用程序的测试服务器上调用该应用程序时,该应用程序会启动异常:

     Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.Log4jFactory (Caused by java.lang.ClassNotFoundException: org.apache.commons.logging.impl.Log4jFactory) at org.apache.commons.logging.LogFactory.createFactory(LogFactory.java:1276) at org.apache.commons.logging.LogFactory$2.run(LogFactory.java:1065) 

我当时以为Tomcat正在为每个servlet隔离Jar,似乎没有,我错了...

app1正在使用:

commons-beanutils-1.8.3.jar
commons-collections-3.2.1.jar
commons-configuration-1.10.jar
commons-dbcp-1.2.2.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
commons-pool-1.5.3.jar
gwt-servlet.jar
hibernate-validator-4.1.0.Final.jar
hibernate-validator-4.1.0.Final-sources.jar
json-simple-1.1.1.jar
log4j-1.2.16.jar
postgresql-9.1-901-1.jdbc4.jar
reds_da-1.0.0.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar

app2正在使用:

activation-1.1.jar
avalon-framework-4.1.4.jar
commons-beanutils-1.8.0.jar
commons-codec-1.4.jar
commons-collections-3.2.1.jar
commons-configuration-1.0-dev-3.20030607.194155.jar
commons-dbcp-1.2.2.jar
commons-digester-2.0.jar
commons-fileupload-1.0.jar
commons-grant-1.0-beta-4.jar
commons-httpclient-2.0-beta1.jar
commons-io-2.0.1.jar
commons-jelly-20030902.160215.jar
commons-jelly-tags-antlr-20030211.143720.jar
commons-jelly-tags-jsl-20030211.143151.jar
commons-jelly-tags-log-20030211.142821.jar
commons-jelly-tags-velocity-20030303.205659.jar
commons-jelly-tags-xml-20030211.142705.jar
commons-jxpath-1.3.jar
commons-lang-2.6.jar
commons-logging-1.0.4.jar
commons-logging-api-1.0.4.jar
commons-pool-1.5.3.jar
commons-validator-1.3.1.jar
core-2.0.jar
cryptix-3.2.0.jar
cssparser-0.9.5.jar
dom4j-1.6.1.jar
ecj-3.7.2.jar
ecs-1.4.2.jar
excalibur-component-2.1.jar
excalibur-instrument-api-2.1.jar
excalibur-instrument-mgr-api-2.1.jar
excalibur-instrument-mgr-impl-2.1.jar
excalibur-logger-2.1.jar
excalibur-pool-api-2.1.jar
excalibur-pool-impl-2.1.jar
excalibur-pool-instrumented-2.1.jar
freemarker-2.3.8.jar
htmlunit-2.9.jar
htmlunit-core-js-2.9.jar
httpclient-4.1.2.jar
httpcore-4.1.2.jar
httpmime-4.1.2.jar
itext-2.1.5.jar
javase-2.0.jar
javax.mail-api-1.5.1.jar
jcs-1.3.jar
jericho-html-3.3.jar
jndi-1.2.1.jar
json-20090211.jar
jsoup-1.6.1.jar
junitperf-1.8.jar
jython-2.1.jar
log4j-1.2.13.jar
logkit-1.0.1.jar
mail-1.4.jar
mailapi-1.5.1.jar
nekohtml-1.9.15.jar
odfdom-java-0.8.7.jar
oro-2.0.7.jar
poi-3.1-FINAL.jar
poi-contrib-3.1-FINAL.jar
poi-scratchpad-3.1-FINAL.jar
postgresql-9.1-901-1.jdbc4.jar
qrgen-1.3.jar
reds_da-1.0-SNAPSHOT.jar
sac-1.3.jar
serializer-2.7.1.jar
smtp-1.5.1.jar
stratum-1.0-b3.jar
torque-3.3.jar
turbine-2.3.3.jar
util-1.4-SNAPSHOT.jar
velocity-1.3.1.jar
velocity-dvsl-0.45.jar
village-3.3.jar
xalan-2.7.1.jar
xercesImpl-2.9.1.jar
xml-apis-1.0.b2.jar
xmlParserAPIs-2.0.2.jar
xmlpull-1.1.3.1.jar
xmlrpc-2.0.jar
xom-1.1.jar
xpp3_min-1.1.4c.jar
xstream-1.4.5.jar

显然,似乎

commons-configuration-1.10.jar
log4j-1.2.16.jar
commons-logging-1.1.1.jar

正在发生冲突。

dev mode ,从gwt-dev.jar中选择了Log4jFactory类,这就是为什么它可以正常工作,但是在tomcat服务器上却没有的原因。

可能是服务器上的冲突罐子。 只需从战争中删除gwt-dev.jar ,因为它仅用于dev mode

在此处输入图片说明

我希望JAR之间存在冲突,在进一步调查后,我对问题的描述有所不同:

GWT应用程序的部署问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM