2013-06-10 2 views
0

Попытка создать простое приложение crud с JPA 2.0 и Eclipselink работает JAVA EE 6. В настоящее время я использую netbeans и использую проект JSF для Интернета. Я создал класс книги и попытался вставить данные из основного класса. Однако, когда я запускаю проект, я "получаю ошибкиJPA - No Datasource

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="JavaWebPU" transaction-type="JTA"> 
>  <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
>  <jta-data-source>openx</jta-data-source> 
>  <exclude-unlisted-classes>false</exclude-unlisted-classes> 
>  <properties> 
>  <property name="eclipselink.ddl-generation" value="create-tables"/> 
>  </properties> </persistence-unit> </persistence> 

Я также проверил GlassFish консоль администратора и определили базу данных и пул соединений

Выход:

Jun 10, 2013 3:52:59 PM org.hibernate.validator.internal.util.Version <clinit> 
INFO: HV000001: Hibernate Validator 4.3.0.Final 
[EL Info]: 2013-06-10 15:52:59.691--ServerSession(4911604)--EclipseLink, version: Eclipse Persistence Services - 2.3.2.v20111125-r10461 
Jun 10, 2013 3:53:03 PM com.sun.enterprise.connectors.ActiveRAFactory createActiveResourceAdapter 
SEVERE: RAR6001 : Class Not found : com.sun.gjc.spi.ResourceAdapterImpl 
Jun 10, 2013 3:53:03 PM com.sun.enterprise.connectors.ActiveRAFactory createActiveResourceAdapter 
SEVERE: 
com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR 
[EL Severe]: 2013-06-10 15:53:03.16--ServerSession(4911604)--Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.ValidationException 
Exception Description: Cannot acquire data source [openx]. 
Internal Exception: javax.naming.NamingException: Lookup failed for 'openx' 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]] 
    at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:109) 
    at com.sun.enterprise.connectors.service.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(ResourceAdapterAdminServiceImpl.java:212) 
    at com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(ConnectorRuntime.java:379) 
    at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:108) 
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321) 
    at com.sun.enterprise.naming.impl.SerialContext.getObjectInstance(SerialContext.java:556) 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:514) 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:654) 
    at javax.naming.InitialContext.lookup(InitialContext.java:415) 
    at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:103) 
    at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162) 
    at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:584) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:206) 
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:488) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:188) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:277) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:294) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:272) 
    at com.book.Main.main(Main.java:31) 
Caused by: java.lang.ClassNotFoundException: com.sun.gjc.spi.ResourceAdapterImpl 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:101) 
    ... 19 more 

Exception in thread "main" javax.persistence.PersistenceException: Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.ValidationException 
Exception Description: Cannot acquire data source [openx]. 
Internal Exception: javax.naming.NamingException: Lookup failed for 'openx' 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]] 
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:517) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:188) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:277) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:294) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:272) 
    at com.book.Main.main(Main.java:31) 
Caused by: Exception [EclipseLink-7060] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.ValidationException 
Exception Description: Cannot acquire data source [openx]. 
Internal Exception: javax.naming.NamingException: Lookup failed for 'openx' 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]] 
    at org.eclipse.persistence.exceptions.ValidationException.cannotAcquireDataSource(ValidationException.java:497) 
    at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:109) 
    at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162) 
    at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:584) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:206) 
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:488) 
    ... 5 more 
Caused by: javax.naming.NamingException: Lookup failed for 'openx' 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]] 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:518) 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455) 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:654) 
    at javax.naming.InitialContext.lookup(InitialContext.java:415) 
    at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:103) 
    ... 9 more 
Caused by: 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] 
    at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:115) 
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321) 
    at com.sun.enterprise.naming.impl.SerialContext.getObjectInstance(SerialContext.java:556) 
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:514) 
    ... 13 more 
Caused by: com.sun.appserv.connectors.internal.api.ConnectorRuntimeException: Error in creating active RAR 
    at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:109) 
    at com.sun.enterprise.connectors.service.ResourceAdapterAdminServiceImpl.createActiveResourceAdapter(ResourceAdapterAdminServiceImpl.java:212) 
    at com.sun.enterprise.connectors.ConnectorRuntime.createActiveResourceAdapter(ConnectorRuntime.java:379) 
    at com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance(ConnectorObjectFactory.java:108) 
    ... 16 more 
Caused by: java.lang.ClassNotFoundException: com.sun.gjc.spi.ResourceAdapterImpl 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(ActiveRAFactory.java:101) 
    ... 19 more 
Java Result: 1 

ответ

0

Похоже, вы источник данных не работает. вы пытаетесь запустить GlassFish внутри NetBeans? Может попробовать запустить его извне.

+0

Я попытался запустить его из командной строки –

+1

И он отлично работает, я не уверен, что еще делать ... –

-1

Думаю, я нашел ответ на этот вопрос. Очевидно, что нет четкого понимания пользователей JPA. Ответ заключается не в том, чтобы просто перейти от внешнего к другому или наоборот. Мне не нужна JTA; Я использую локальный ресурс, поэтому мне пришлось следить за локальной конфигурацией в файле persistence.xml, который я нашел на:

http://en.wikibooks.org/wiki/Java_Persistence/Runtime#Java_Standard_Edition.

Смежные вопросы