Glassfish 我得到;为类创建托管对象时出错:class org.jboss.weld.servlet.WeldListener“;每次我和Arquillian一起做测试
我使用EclipseNeon作为IDE,我在一台pc上。我正在用primefaces开发一个网站,我想用DB对我的EJB和JPA进行一些集成测试 以下是一个简单测试的代码,该测试包括在db中保存用户:Glassfish 我得到;为类创建托管对象时出错:class org.jboss.weld.servlet.WeldListener“;每次我和Arquillian一起做测试,glassfish,jboss-arquillian,Glassfish,Jboss Arquillian,我使用EclipseNeon作为IDE,我在一台pc上。我正在用primefaces开发一个网站,我想用DB对我的EJB和JPA进行一些集成测试 以下是一个简单测试的代码,该测试包括在db中保存用户: package test.integration.services; import eu.unimib.srt.entities.User; import eu.unimib.srt.services.UserRepositoryServiceBean; import eu.unimib.srt
package test.integration.services;
import eu.unimib.srt.entities.User;
import eu.unimib.srt.services.UserRepositoryServiceBean;
import eu.unimib.srt.services.UserServiceBean;
import eu.unimib.srt.utilities.UserInfo;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.junit.InSequence;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.ejb.EJB;
import javax.naming.NamingException;
import javax.persistence.criteria.CriteriaBuilder;
import static org.junit.Assert.*;
@RunWith(Arquillian.class)
public class UserRepositoryServiceBeanTest {
private static final String NOME_1 = "NomeUtente";
private static final String COGNOME_1 = "CognomeUtente";
private static final String USERNAME_1 = "srtUserTEST";
private static final String TELEFONO_1 = "023456789";
private static final String PASSWORD1 = "IloveArquillian";
private static final String COD_FISCALE_1 = "CDCFSC41E00W000W";
private static final String EMAIL_1 = "nome.cognome@arquillian.org";
private static UserInfo DBUSER_1 = null;
static {
DBUSER_1 = new UserInfo(NOME_1, COGNOME_1, USERNAME_1, TELEFONO_1, PASSWORD1, COD_FISCALE_1, EMAIL_1, null);
}
@Deployment
public static JavaArchive createDeployment() {
JavaArchive jar = ShrinkWrap.create(JavaArchive.class)
.addAsResource("test-persistence.xml", "META-INF/persistence.xml")
.addClass(UserRepositoryServiceBean.class)
.addPackage(User.class.getPackage())
.addClass(UserInfo.class)
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
System.out.println(jar.toString(true));
return jar;
}
@EJB
private UserRepositoryServiceBean ursb;
@Test
@InSequence(1)
public void addUserTest() throws NamingException {
ursb.addUser(DBUSER_1, PASSWORD1);
}
@Test
@InSequence(2)
public void verifyBindTest() {
boolean userFound = ursb.verifyBind(USERNAME_1,PASSWORD1);
assertTrue(userFound);
}
@Test
@InSequence(3)
public void removeUserTest() throws NamingException {
ursb.removeUser(USERNAME_1);
}
}
persistence.xml如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="SRTPersistenceUnit"
transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/SRT16DataSource</jta-data-source>
<class>eu.unimib.srt.entities.TestEntity</class>
<class>eu.unimib.srt.entities.Automobile</class>
<class>eu.unimib.srt.entities.Varco</class>
<class>eu.unimib.srt.entities.Sanzione</class>
<class>eu.unimib.srt.entities.Guidatore</class>
<properties>
<property name="eclipselink.ddl-generation" value="create-or-extend-tables" />
<property name="eclipselink.ddl-generation.output-mode"
value="database" />
</properties>
</persistence-unit>
</persistence>
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="SRTPersistenceUnit"
transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/arquillian</jta-data-source>
<properties>
<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
<property name="eclipselink.logging.level.sql" value="FINE"/>
<property name="eclipselink.logging.parameters" value="true"/>
</properties>
</persistence-unit>
</persistence>
问题是,当我使用Arquillian进行测试时,Glassfish的一个实例正在后台运行。解决办法是:
cd C:\Program Files\Glassfish4\bin
asadmin stop-domain domain1
...succesfull
请注意,在使用arquillian时,glassfish是否已经在运行问题是,当我使用arquillian进行测试时,glassfish的一个实例正在后台运行。解决办法是:
cd C:\Program Files\Glassfish4\bin
asadmin stop-domain domain1
...succesfull
请注意,在使用arquillian时,glassfish是否已经在运行您的实际问题与java se、eclipse、primefaces或jboss有何关系?你为什么不给它贴上“arquilian”的标签呢?我刚刚编辑过,你的实际问题与JavaSE、eclipse、primefaces或jboss有什么关系?你为什么不给它贴上我刚刚编辑过的“阿奎利安”标签呢