我是Java EE入门新手,我正在尝试在NetBeans中使用glassfish和Derby部署示例应用程序,但我遇到了这个错误:
Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.2.0.v20110202-r8913):
org.eclipse.persistence.exceptions.ValidationExceptionException Description:
Cannot acquire data source [jdbc/jpaintro].Internal Exception:
javax.naming.NamingException: Lookup failed for 'jdbc/jpaintro' in SerialContext
[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory,
java.naming.factory.url.pkgs=com.sun.enterprise.naming,
java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl}
[Root exception is javax.naming.NamingException:
Failed to look up ConnectorDescriptor from JNDI
[Root exception is com.sun.appserv.connectors.internal.api.ConnectorRuntimeException:
Error in creating active RAR]]
我有一个具有两个属性的实体Customer:FirstName和LastName,我已经成功生成了JPA控制器并且选中了JTA选项(使用NetBeans)。这是我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
<persistence-unit name="jtaAppPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/monDB</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
</properties>
</persistence-unit>
</persistence>
我正在尝试使用此Main类文件测试代码:
public class jtaMain {
public static void main(String[] args) throws NamingException, NotSupportedException, SystemException, RollbackFailureException, Exception {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("foo");
UserTransaction ut = (UserTransaction) new InitialContext().lookup("java:comp/UserTransaction");
CustomerJpaController cjc = new CustomerJpaController(ut,emf);
Customer c = new Customer();
c.setFirstName("fname");
c.setLastName("lname");
cjc.create(c);
}
}
那我错过了什么?要知道在persistence.xml中使用Resource_Local是完美的,但我不能让它与JTA一起工作:(