我在 jboss-7.1.1\standalone\configuration\standalone.xml 中创建了数据源
<datasource jta="true" jndi-name="java:jboss/datasources/POSPool" pool-name="POSPool" enabled="true" use-java-context="true" use-ccm="true">
<connection-url>Connection url here</connection-url>
<driver>oracle</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>FailingConnectionOnly</flush-strategy>
</pool>
<security>
<user-name>username</user-name>
<password>password</password>
</security>
</datasource>
<drivers>
<driver name="oracle" module="com.oracle.ojdbc6">
<xa-datasource-class>oracle.jdbc.OracleDriver</xa-datasource-class>
</driver>
</drivers>
presistance.xml 是:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" 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">
<persistence-unit name="Khadamate-Services-JPAPU" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/datasources/POSPool</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
</properties>
</persistence-unit>
</persistence>
我试图获取实体管理器,但它给出了一个异常 java.lang.NullPointerException:
HashMap<String, String> properties = new HashMap<String, String>();
properties.put("ConnectionDriverName", "oracle.jdbc.OracleDriver");
entityManagerFactory = Persistence.createEntityManagerFactory("Khadamate-Services-JPAPU", properties);
堆栈跟踪:
06:40:03,810 INFO [stdout] (http--0.0.0.0-8888-5) Caused by: javax.servlet.ServletException: java.lang.NullPointerException
06:40:03,816 INFO [stdout] (http--0.0.0.0-8888-5) at org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
06:40:03,837 INFO [stdout] (http--0.0.0.0-8888-5) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
06:40:03,845 INFO [stdout] (http--0.0.0.0-8888-5) at com.liferay.portal.struts.PortletRequestProcessor.processActionPerform(PortletRequestProcessor.java:441)
06:40:03,865 INFO [stdout] (http--0.0.0.0-8888-5) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
06:40:03,873 INFO [stdout] (http--0.0.0.0-8888-5) at com.liferay.portal.struts.PortletRequestProcessor.process(PortletRequestProcessor.java:224)
06:40:03,881 INFO [stdout] (http--0.0.0.0-8888-5) at com.liferay.portlet.StrutsPortlet.include(StrutsPortlet.java:274)
06:40:03,900 INFO [stdout] (http--0.0.0.0-8888-5) ... 196 more
06:40:03,906 INFO [stdout] (http--0.0.0.0-8888-5) Caused by: java.lang.NullPointerException
06:40:03,913 INFO [stdout] (http--0.0.0.0-8888-5) at org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.getStatus(JtaStatusHelper.java:73)
06:40:03,928 INFO [stdout] (http--0.0.0.0-8888-5) at org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.isActive(JtaStatusHelper.java:115)
06:40:03,936 INFO [stdout] (http--0.0.0.0-8888-5) at org.hibernate.engine.transaction.internal.jta.CMTTransaction.join(CMTTransaction.java:149)
06:40:03,945 INFO [stdout] (http--0.0.0.0-8888-5) at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:1207)
06:40:03,955 INFO [stdout] (http--0.0.0.0-8888-5) at org.hibernate.ejb.AbstractEntityManagerImpl.postInit(AbstractEntityManagerImpl.java:176)
06:40:03,965 INFO [stdout] (http--0.0.0.0-8888-5) at org.hibernate.ejb.EntityManagerImpl.<init>(EntityManagerImpl.java:89)
06:40:03,973 INFO [stdout] (http--0.0.0.0-8888-5) at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:125)
06:40:03,982 INFO [stdout] (http--0.0.0.0-8888-5) at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:120)
06:40:03,992 INFO [stdout] (http--0.0.0.0-8888-5) at com.khdt.eservices.core.fdBusinessService.getEntityManager(fdBusinessService.java:30)
06:40:04,001 INFO [stdout] (http--0.0.0.0-8888-5) at com.khdt.eservices.core.fdBusinessService.getTopRankedServices(fdBusinessService.java:48)
06:40:04,014 INFO [stdout] (http--0.0.0.0-8888-5) at com.khdt.rankedServices.action.RankedServicesViewAction.render(RankedServicesViewAction.java:45)
06:40:04,034 INFO [stdout] (http--0.0.0.0-8888-5) at com.liferay.portal.struts.PortletAction.execute(PortletAction.java:111)
06:40:04,042 INFO [stdout] (http--0.0.0.0-8888-5) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
06:40:04,051 INFO [stdout] (http--0.0.0.0-8888-5) ... 200 more