2012-04-20 238 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中,但沒有解決問題。似乎沒有太多的網絡上如何讓這個工作。有任何想法嗎 ?

請注意,我不能改變WebSphere中的類裝入政策,因爲這會從工作

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

你有類路徑上的log4j.xml或log4j.properties嗎? – Victor 2012-05-17 18:18:07

回答

1

log4jopenjpa.Log屬性值不能一起工作停止我的應用程序內置在IBM PersistenceProviderImpl因爲內置在JPA提供程序中,您的應用程序JAR沒有類加載器可見性,並且沒有類加載器配置選項可使其工作。唯一的選擇是自己下載OpenJPA和configure it as a third-party persistence provider

+0

感謝bkail,我現在試圖使用EclipseLink .....乾杯 – stack 2012-04-23 12:05:19

+0

是的,非OpenJPA提供者將是另一種選擇。 – 2012-04-23 14:49:18