4

ICEFaces 3.0.1이 포함 된 JSF-App을 개발했습니다. Tomcat과 Glassfish를 사용하면 앱이 정상적으로 작동합니다. 이제 WebSphere Application Server 8.5.0.0에서 테스트하려고했습니다. 응용 프로그램이 시작되지만 일부 작업을 수행하면 충돌이 발생합니다.Websphere 8.5 : 클래스 org.apache.commons.logging.impl.Jdk14Logger가 로그를 구현하지 않습니다.

나는 다음과 같은 libs와 사용하고 있습니다 :

antlr-2.7.6.jar 
commons-collections-3.1.jar 
commons-lang-2.5.jar 
dom4j-1.6.1.jar 
icefaces-ace.jar 
icefaces-compat.jar 
icefaces.jar 
icepush.jar 
iText-5.0.4.jar 
jxl.jar 
slf4j-api-1.6.1.jar 
hibernate3.jar 
javassist-3.9.0.GA.jar 
poi-3.8-20120326.jar 
xpp3-1.1.4c.jar 
slf4j-simple-1.7.2.jar 
ojdbc6.jar 
commons-logging-1.1.jar 
hibernate-jpa-2.0-api-1.0.0.Final.jar 
javax.faces.jar 
jta-1.1.jar 

스택 트레이스 :

나는이 문제를 해결할 수
[11/22/12 18:57:38:284 CET] 00000063 ExtendedExcep W queued exception 
           javax.faces.FacesException: invalid property: md 
    at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:84) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1214) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456) 
    at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 
    at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1027) 
    at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3703) 
    at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304) 
    at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:962) 
    at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) 
    at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195) 
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458) 
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:522) 
    at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:311) 
    at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:87) 
    at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 
    at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
    at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 
    at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
    at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
    at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
    at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
    at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1783) 
Caused by: javax.validation.ValidationException: invalid property: md 
    at org.apache.bval.jsr303.util.PathNavigation.navigateAndReturn(PathNavigation.java:105) 
    at org.apache.bval.jsr303.util.PathNavigation.navigate(PathNavigation.java:117) 
    at org.apache.bval.jsr303.ClassValidator.validateValueImpl(ClassValidator.java:718) 
    at org.apache.bval.jsr303.ClassValidator.validateValue(ClassValidator.java:239) 
    at org.apache.bval.jsr303.ClassValidator.validateValue(ClassValidator.java:231) 
    at javax.faces.validator.BeanValidator.validate(BeanValidator.java:306) 
    at javax.faces.component.UIInput.validateValue(UIInput.java:1149) 
    at javax.faces.component.UIInput.validate(UIInput.java:967) 
    at javax.faces.component.UIInput.executeValidate(UIInput.java:1233) 
    at javax.faces.component.UIInput.processValidators(UIInput.java:698) 
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) 
    at com.icesoft.faces.component.paneltabset.PanelTabSet.applyPhase(PanelTabSet.java:155) 
    at com.icesoft.faces.component.paneltabset.PanelTabSet.applyPhase(PanelTabSet.java:127) 
    at com.icesoft.faces.component.paneltabset.PanelTabSet.processValidators(PanelTabSet.java:199) 
    at javax.faces.component.UIForm.processValidators(UIForm.java:253) 
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) 
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) 
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) 
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) 
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214) 
    at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172) 
    at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76) 
    ... 25 more 
Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Jdk14Logger does not implement Log 
    at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:532) 
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272) 
    at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:246) 
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:395) 
    at org.apache.commons.beanutils.ConvertUtilsBean.<init>(ConvertUtilsBean.java:157) 
    at org.apache.commons.beanutils.BeanUtilsBean.<init>(BeanUtilsBean.java:117) 
    at org.apache.commons.beanutils.BeanUtilsBean$1.initialValue(BeanUtilsBean.java:68) 
    at org.apache.commons.beanutils.ContextClassLoaderLocal.get(ContextClassLoaderLocal.java:153) 
    at org.apache.commons.beanutils.BeanUtilsBean.getInstance(BeanUtilsBean.java:80) 
    at org.apache.commons.beanutils.PropertyUtilsBean.getInstance(PropertyUtilsBean.java:114) 
    at org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptors(PropertyUtils.java:480) 
    at org.apache.bval.util.PropertyAccess.getPropertyReadMethod(PropertyAccess.java:126) 
    at org.apache.bval.util.PropertyAccess.getTypeInner(PropertyAccess.java:113) 
    at org.apache.bval.util.PropertyAccess.isKnown(PropertyAccess.java:101) 
    at org.apache.bval.jsr303.util.ValidationContextTraversal.handleProperty(ValidationContextTraversal.java:130) 
    at org.apache.bval.jsr303.util.PathNavigation$PathPosition.handleProperty(PathNavigation.java:278) 
    at org.apache.bval.jsr303.util.PathNavigation.parse(PathNavigation.java:143) 
    at org.apache.bval.jsr303.util.PathNavigation.navigateAndReturn(PathNavigation.java:101) 
    ... 46 more 
Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Jdk14Logger does not implement Log 
    at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:416) 
    at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:525) 
    ... 63 more 
Caused by: org.apache.commons.logging.LogConfigurationException: Class org.apache.commons.logging.impl.Jdk14Logger does not implement Log 
    at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:412) 
    ... 64 more 

?

+4

WebSphere에는 자체 commons-logging jars가 있습니다. 아마도 상위 - 마지막 클래스 로딩 정책을 설정 했으므로 이제이 두 가지 구현이 충돌합니다. commons-logging-1.1.jar을 삭제하면 문제가 해결됩니다. jta-1.1.jar도 비슷한 문제를 일으킬 것입니다. –

답변

2

commons-logging-1.1.jar를 삭제해야하며, maven을 사용할 때는이 종속성을 "제공된"범위로 설정해야합니다.