2012-04-20 3 views
0

남자 나는 이것으로 고민하고있다. 내가 systemout에서 로깅을 리디렉션하려고합니다. 위의 파일 : 성공하지와의 log4j rollingappender 파일 는 아래 내가 최대한 빨리이 추가로 다음과 같은 오류가 내 persistent.xmlOpenJPA Webspere 7 Log4j 구성

<?xml version="1.0" encoding="UTF-8"?> 
<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> 
    <persistence-unit name="R_TEST" transaction-type="RESOURCE_LOCAL"> 
     <provider> 
    com.ibm.websphere.persistence.PersistenceProviderImpl 
     </provider> 
     <non-jta-data-source>jdbc/TESTDB</non-jta-data-source> 
     <class>com.ra.WSProcess</class> 
    <property name="openjpa.jdbc.Schema" value="TEST" /> 
      <property name="openjpa.Log" value="log4j"/>  
     </properties> 
    </persistence-unit> 

의 샘플입니다. 나는이 두 파일 (commons-logging-1.1.jar, log4j-1.2.6.jar)을 WEB_INF/lib에 복사하려고 시도했지만 문제가 없었다. 웹에서이 작업을 수행하는 방법에 대한 정보가 부족한 것 같습니다. 어떤 아이디어?

java.lang.NoClassDefFoundError 
    java.lang.NoClassDefFoundError: org.apache.log4j.Priority 
     at java.lang.J9VMInternals.verifyImpl(Native Method) 
     at java.lang.J9VMInternals.verify(J9VMInternals.java:72) 
     at java.lang.J9VMInternals.initialize(J9VMInternals.java:134) 
     at org.apache.openjpa.lib.log.Log4JLogFactory.newLogAdapter(Log4JLogFactory.java:33) 
     at org.apache.openjpa.lib.log.LogFactoryAdapter.getLog(LogFactoryAdapter.java:40) 
     at org.apache.openjpa.lib.conf.ConfigurationImpl.getLog(ConfigurationImpl.java:223) 
     at org.apache.openjpa.conf.OpenJPAConfigurationImpl.getConfigurationLog(OpenJPAConfigurationImpl.java:1445) 
     at org.apache.openjpa.persistence.PersistenceProductDerivation$ConfigurationProviderImpl.setInto(PersistenceProductDerivation.java:479) 
     at com.ibm.ws.persistence.jdbc.kernel.WsJpaJDBCBrokerFactory.newInstance(WsJpaJDBCBrokerFactory.java:121) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
     at java.lang.reflect.Method.invoke(Method.java:599) 
     at org.apache.openjpa.kernel.Bootstrap.invokeFactory(Bootstrap.java:124) 
     at org.apache.openjpa.kernel.Bootstrap.newBrokerFactory(Bootstrap.java:62) 
     at org.apache.openjpa.persistence.PersistenceProviderImpl.getBrokerFactory(PersistenceProviderImpl.java:102) 
     at org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:81) 
     at com.ibm.websphere.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:71) 
     at com.ibm.websphere.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:41) 
     at org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:109) 
     at org.apache.openjpa.persistence.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:53) 
     at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:110) 
     at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83) 
     at com.ra.WSProcess.EntityManagerHelper.<clinit>(EntityManagerHelper.java:20) 
     at java.lang.J9VMInternals.initializeImpl(Native Method) 
     at java.lang.J9VMInternals.initialize(J9VMInternals.java:200) 
     at com.ra.WSProcess.process(WSProcess.java:129) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
     at java.lang.reflect.Method.invoke(Method.java:599) 
     at org.apache.axis2.jaxws.server.dispatcher.JavaDispatcher.invokeTargetOperation(JavaDispatcher.java:76) 
     at org.apache.axis2.jaxws.server.dispatcher.JavaBeanDispatcher.invoke(JavaBeanDispatcher.java:96) 
     at org.apache.axis2.jaxws.server.EndpointController.invoke(EndpointController.java:108) 
     at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:159) 
     at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:182) 
     at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275) 
     at com.ibm.ws.websvcs.transport.http.WASAxis2Servlet.doPost(WASAxis2Servlet.java:1330) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:738) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175) 
     at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91) 
     at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:859) 
     at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557) 
     at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384) 
     at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83) 
     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:202) 
     at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766) 
     at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:896) 
     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527) 
    Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Priority 
     at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:402) 
     at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:347) 
+0

classpath에 log4j.xml 또는 log4j.properties가 있습니까? – Victor

답변

1

log4jopenjpa.Log 속성 값이 작동하지 않을 수 있습니다 작업에서 내 응용 프로그램을 중지하는 것처럼 내가 웹 스피어에서 클래스 로딩 정책을 변경할 수 있습니다 내장 된 IBM PersistenceProviderImpl 내장 때문에 JPA 프로 바이더에는, 어플리케이션 JAR에 대한 클래스 로더 가시성이 없기 때문에, 클래스 로더 설정 옵션은 그 작업을 실시 할 수 없습니다. 유일한 옵션은 OpenJPA와 configure it as a third-party persistence provider을 다운로드하는 것입니다.

+0

감사합니다 bkail, 지금 EclipseLink ..... 건배를 사용하려고합니다 – stack

+0

예, OpenJPA가 아닌 공급자는 다른 옵션입니다. –