Я пытаюсь создать тест JUnit для моего объекта DAO.JUnit запускается непосредственно из Netbeans.Я довольно новичок в некоторых из этих технологий, и в результате я чертовски трачу время на то, чтобы выяснить, откуда берутся мои ошибки.Мой код и соответствующая ошибка, которую я вижу:
22 июля 2011 г. 19:09:09jar-файл, драйвер derby jdbc не будет доступен по умолчанию.FATAL [DatasourceConnectionProvider] - Не удалось найти источник данных: Waylon org.omg.CORBA.COMM_FAILURE: FINE: IOP00410001: Ошибка подключения: socketType: IIOP_CLEAR_TEXT;имя хоста: localhost;порт: 3700 vmcid: вспомогательный код OMG: 1 выполнено: нет javax.naming.NamingException: не удалось выполнить поиск для 'Waylon' в 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} [Исключением корня является javax.naming.NamingException: Невозможно получить SerialContextProvider для 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} [Исключением корня является org.omg.CORBA.COMM_FAILURE: FINE: IOP00410001: Ошибка подключения: socketType: IIOP_CLEAR_TEXT;имя хоста: localhost;порт: 3700 vmcid: вспомогательный код OMG: 1 выполнено: нет]] в sun.reflect.GeneratedConstructorAccessor31.newInstance (неизвестный источник) в com.sun.enterprise.naming.impl.SerialContext.lookup (SerialContext.java:518) на солнце.reflect.) в javax.naming.InitialContext.lookup (InitialContext.java:392) по адресу com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException (CorbaExtension.java:248) по адресу com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException (CorbaExtension.java:95) в org.hibernate.connection.DatasourceConnectionProvider.configure (DatasourceConnectionProvider.java:52) в com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.handleFullLogging (WrapperGenerator.java:387) в org.hibernate.connection.ConnectionProviderFactory.newConnectionProvider (ConnecionProviderFactory.java:124) в com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.access $ 400 (WrapperGenerator.java:107) в org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider: InactSetjjjjcom.sun.corba.ee.spi.orbutil.logex.WrapperGenerator $ 2.invoke (WrapperGenerator.java:511) в org.hibernate.cfg.SettingsFactory.buildSettings (SettingsFactory.java:62) в com.sun.corba.ee.spi.orbutil.proxy.CompositeInvocationHandlerImpl.invoke (CompositeInvocationHandlerImpl.java:99) в org.hibernate.cfg.Configuration.buildSettings (Configuration.java:2009) в $ Proxy40.connectFailure (неизвестный источник).Конфигурацияcom.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl. (SocketOrChannelConnecionImpl.java:270) в org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory (Ejb3Configuration.java:669) в com.sun.corba.ee.impl.transport.SocketOrChannelContactInfoImpl.createjConlInIcom.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest (CorbaClientRequestDispatcherImpl.java:223) в org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory (Hiber.протоколomg.CORBA.portable.ObjectImpl._is_a (ObjectImpl.java:112) по адресу javax.persistence.Persistence.createEntityManagerFactory (неизвестный источник) по адресу org.omg.CosNaming.NamingContextHelper.narrow (NamingConjt.google) atinject.persist.jpa.Java: 36) на com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider (SerialContext.java:411) в com.sun.enterprise.naming.impl.SerialContext.getProvider (SerialContext.java:347) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в com.sun.naming.impl.SerialContext.lookup (SerialContext.java:504) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) в com.sun.enterprise.naming.impl.SerialContext.lookup) SerialConte45 (SerialConte45)в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в javax.naming.InitialContext.lookup (InitialContext.java:392) в java.lang.reflect.Method.invoke (Method). java.hibernate.connection.DatasourceConnectionProvider.configure (DatasourceConnectionProvider.java:52) по адресу org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall (FrameworkMethod.java:44) по адресу org.hibernate.connectionFidPlayer) в org.junit.internal.runners.model.ReflectiveCallable.run (ReflectiveCallable.java:15) по адресу org.hibernate.ejb.InjectionSettingsFactory.createConnectionProvider (InjectionSettingsFactory.java:29) по адресу org.hibernate.cfg.SettingsFactory.buildSettingj (Settings:actun) atg.jun.model.FrameworkMethod.invokeExplosively (FrameworkMethod.java:41) по адресу org.hibernate.cfg.Configuration.buildSettings (Configuration.java:2009) по адресу org.junit.internal.runners.statements.RunBefores.evaluate (RunBefores.27) в org.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java:1292) в org.junit.internal.runners.statements.RunAfters.evaluate (RunAfters.java:31) в org.hibernate.cfg.AnnotationConfiguration.buildSFAnnotationConfiguration.java:859) в org.junit.runners.ParentRunner.run (ParentRunner.java:303) в org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory (Ejb3Configuration.java:nap.Jap.Jap.UnitU.java: 39) в org.hibernate.ejb.HibernatePersistence.createEntityManagerФабрика (HibernatePersistence.java:126) в org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run (JUnitTestRunner.java:518) в javax.persistence.Persistence.createEntityManagerFactory или неизвестном источнике (неизвестно).tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch (JUnitTestRunner.java:1052) в org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main (JUnitTestRunner.java.java90): java:Persistence.createEntityManagerFactory (неизвестный источник) по адресу com.google.inject.persist.jpa.JpaPersistService.start (JpaPersistService.java:94) в waylon.label.LabelDAOIJTest.setUpClass (LabelDAOIJTest.java :36:).NamingException: невозможно получить SerialContextProvider для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 является org.omg.CORBA.COMM_FAILURE: FINE: IOP00410001:
Ошибка подключения: socketType: IIOP_CLEAR_TEXT; имя хоста: localhost;
порт: 3700 vmcid: младший код OMG: 1 выполнено: нет] в
sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в
com.sun.enterprise.naming.impl.SerialContext.getProvider (SerialContext.java:352)
в
sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
в
com.sun.enterprise.naming.impl.SerialContext.lookup (SerialContext.java:504)
... еще 29 на
sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
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="WaylonPU" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>Waylon</jta-data-source>
<class>waylon.label.Label</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
</properties>
</persistence-unit>
</persistence>
Мой тестируемый DAO:
package waylon.label.impl;
import com.google.inject.Inject;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
import waylon.label.Label;
import waylon.label.LabelDAO;
/**
* {@inheritDoc}
*/
public class LabelDAOImpl implements LabelDAO {
private final EntityManager em;
@Inject
public LabelDAOImpl( EntityManager em ) {
this.em = em;
}
/**
* {@inheritDoc}
*/
@Override
public List<Label> getAllLabels() throws Exception {
TypedQuery<Label> typedQuery = em.createQuery(
"SELECT * from LABEL", Label.class );
return typedQuery.getResultList();
}
/**
* {@inheritDoc}
*/
@Override
public Label createLabel(String name) throws Exception {
em.getTransaction().begin();
Label label = new Label();
label.setName( name );
em.persist( label );
em.getTransaction().commit();
return label;
}
/**
* {@inheritDoc}
*/
@Override
public void removeLabel(String name) throws Exception {
Label label = getLabel( name );
removeLabel( label );
}
/**
* {@inheritDoc}
*/
@Override
public Label getLabel(String name) throws Exception {
Label label = em.find( Label.class, name );
return label;
}
/**
* {@inheritDoc}
*/
@Override
public void removeLabel(Label label) throws Exception {
if ( null != label ) {
em.getTransaction().begin();
em.remove( label );
em.getTransaction().commit();
}
}
}
Мой тест JUnit:
package waylon.label;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.persist.PersistService;
import com.google.inject.persist.jpa.JpaPersistModule;
import java.util.List;
import static org.hamcrest.MatcherAssert.*;
import static org.hamcrest.Matchers.*;
import org.hamcrest.core.IsEqual;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import waylon.label.impl.LabelDAOModule;
/**
* A JUnit Test to test our database connection and JPA code.
* @author Benjamin Bays
*/
public class LabelDAOIJTest {
private LabelDAO objectInTest = null;
private static final String PUNIT = "WaylonPU";
private static Injector injector = null;
private static PersistService persistService = null;
@BeforeClass
public static void setUpClass() throws Exception {
injector = Guice.createInjector(
new JpaPersistModule(PUNIT),
new LabelDAOModule() );
persistService = injector.getInstance( PersistService.class );
persistService.start();
}
@AfterClass
public static void tearDownClass() throws Exception {
persistService.stop();
}
@Before
public void setUp() {
objectInTest = injector.getInstance( LabelDAO.class );
}
@Test
public void doEverything() throws Exception {
final String testName = "Test Label";
Label label1 = objectInTest.createLabel( testName );
assertThat( label1.getName(), IsEqual.equalTo( testName ) );
Label label2 = objectInTest.getLabel(testName);
assertThat( label2.getName(), IsEqual.equalTo( testName ) );
final String testName3 = "Test Label3";
Label label3 = objectInTest.createLabel( testName3 );
assertThat( label3.getName(), IsEqual.equalTo( testName3 ) );
List<Label> allLabels = objectInTest.getAllLabels();
assertThat( allLabels, hasItems( label1, label3 ) );
objectInTest.removeLabel( label1 );
objectInTest.removeLabel( testName3 );
List<Label> noLabels = objectInTest.getAllLabels();
assertThat( noLabels.size(), IsEqual.equalTo( 0 ) );
}
}
Любая помощь будет принята с благодарностью. Спасибо.