gpt4 book ai didi

java - 带有 CDI 的 EJB 3.1 遇到错误 1408

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:28:23 27 4
gpt4 key购买 nike

当我尝试在此配置中使用 Arquilian 运行测试时出现以下错误:

org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [JLTProcessorBeanRemote] with qualifiers [@Default] at injection point [[field] @Inject protected com.hp.atlantico.jlt.services.JLTProcessorBeanTest.processorBean]
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:274)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:243)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:106)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:126)
at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:345)
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:330)
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:366)
at org.jboss.arquillian.container.weld.ee.embedded_1_1.mock.TestContainer.startContainer(TestContainer.java:273)
at org.jboss.arquillian.container.weld.ee.embedded_1_1.WeldEEMockContainer.deploy(WeldEEMockContainer.java:105)
at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:161)
at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:128)
at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.executeOperation(ContainerDeployController.java:271)
at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.deploy(ContainerDeployController.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createDeploymentContext(ContainerDeploymentContextHandler.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:57)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
at org.jboss.arquillian.container.impl.client.container.DeploymentExceptionHandler.verifyExpectedExceptionDuringDeploy(DeploymentExceptionHandler.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115)
at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java:95)
at org.jboss.arquillian.container.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java:80)
at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.forEachDeployment(ContainerDeployController.java:263)
at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.forEachManagedDeployment(ContainerDeployController.java:239)
at org.jboss.arquillian.container.impl.client.container.ContainerDeployController.deployManaged(ContainerDeployController.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115)
at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:101)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:75)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:94)
at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135)
at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115)
at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java:80)
at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:182)
at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314)
at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46)
at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:199)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:147)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

bean :

@Named
@Stateless(mappedName = "JLTProcessorBean")
public class JLTProcessorBean implements JLTProcessorBeanRemote,
JLTProcessorBeanLocal, JLTConst {

/** The connection factory. */
@Resource(mappedName = "java:/ConnectionFactory")
private ConnectionFactory connectionFactory;

/** The queue jdf2 process. */
@Resource(mappedName = "java:/jlt/jms/JDFProcessQueue")
private Queue queueJdf2Process;

/** The queue. */
@Resource(mappedName = "java:/jlt/jms/JLTProcessPageQueue")
private Queue queueJltConveter;

/** The queue response. */
@Resource(mappedName = "java:/jlt/jms/ResponseReturnQueue")
private Queue queueResponse;

/** The request dao. */
@EJB
protected RequestDAO requestDAO;

/** The logger. */
protected Logger logger = Logger.getLogger(JLTProcessorBean.class);

/** The Constant MISSING_PAGE_TO_PROCESS. */
protected static final String MISSING_PAGE_TO_PROCESS = "Request %s: Total Pages %d, Processed Pages %d";

/**
* The file layers page partern. *
* <FileName>-P<PageNumber>E<PageElement>S<PageLayer>.icf
* */
private static String FILE_LAYERS_PAGE_PARTERN = "{0}-P{1}*.icf";

/** The file ini partern. */
private static String FILE_INI_PARTERN = "{0}.ini";

/**
* Default constructor.
*/
public JLTProcessorBean() {
}

/** {@inheritDoc} */
@Override
public void processFile(String returnUrl, JDFNode doc, String queryEntry)
throws JLTProcessorException {

Connection connection = null;
Session session = null;
MessageProducer producer = null;

try {
JltFuncParam jltFuncParam = parserJdfDoc(doc.getJDFRoot());

String jltFileName = getName(jltFuncParam.getInputFile());

int descompressResult = JltService.getJltService().descompressJlt(
jltFuncParam);

if (descompressResult != 0) {
String messageByCode = findMessageByCode(descompressResult);
throw new JLTProcessorException(ERROR_DECOMPRESSING_FILE,
new Object[] { jltFileName, messageByCode });
}

Request request = redData(format(FILE_INI_PARTERN, jltFileName));

request.setIdentifier(jltFuncParam.getId());
request.setCreationDate(new Date());
request.setUpdateDate(request.getCreationDate());
request.setReturnUrl(returnUrl);
request.setQueryEntry(queryEntry);
request.setJobId(doc.getJobID(false));
request.setOriginalJdf(doc.toXML().getBytes());

request = requestDAO.saveOrUpdate(request);

File outputDirectory = new File(
getFullPath(jltFuncParam.getOutputFile()));

String fileWildcard = "";

ICFFuncParam icfFuncParam = null;

connection = connectionFactory.createConnection();// 1ms
session = connection
.createSession(true, Session.SESSION_TRANSACTED);// 1ms
producer = session.createProducer(queueJltConveter); // 1ms

MapMessage objMessage = null;
//
Page page = null;

for (int pageNumber = 0; pageNumber < request.getPageCount(); pageNumber++) {

page = new Page();
page.setPageNumber(pageNumber);
icfFuncParam = new ICFFuncParam();

fileWildcard = format(FILE_LAYERS_PAGE_PARTERN, jltFileName,
pageNumber);

for (File file : listFiles(outputDirectory,
new WildcardFileFilter(fileWildcard), null)) {
page.addLayer(new Layer(file.getAbsolutePath()));

}

page = requestDAO.saveOrUpdate(page);

icfFuncParam.setConversionIntent(jltFuncParam
.getConversionIntent());
icfFuncParam.setFileType(jltFuncParam.getFileType());
icfFuncParam.setImageResolution(jltFuncParam
.getImageResolution());
icfFuncParam.setIndigoTransparency(jltFuncParam
.isIndigoTransparency());

//
icfFuncParam.setOutputFile(outputDirectory.getAbsolutePath());
//
icfFuncParam.setCmykIcc(jltFuncParam.getCmykIcc());
icfFuncParam.setRgbIcc(jltFuncParam.getRgbIcc());

objMessage = session.createMapMessage();
objMessage.setObject(ICF_PARAMS, icfFuncParam);
objMessage.setObject(REQUEST_ID, request.getId());
objMessage.setObject(PAGE_NUMBER, pageNumber);
producer.send(objMessage);

}

} catch (Exception e) {
throw new JLTProcessorException(e);
} finally {
try {
producer.close();
session.close();
connection.close();
} catch (JMSException e) {
throw new EJBException(e);
}

}

}

/** {@inheritDoc} */
@Override
public String queueJdfToProcess(String returnURL, JDFDoc doc)
throws JLTProcessorException {
Connection connection = null;
Session session = null;
MessageProducer producer = null;

try {
connection = connectionFactory.createConnection();// 1ms
session = connection
.createSession(true, Session.SESSION_TRANSACTED);// 1ms
producer = session.createProducer(queueJltConveter); // 1ms
MapMessage mapMessage = session.createMapMessage();
mapMessage.setString(RETURN_URL, returnURL);
mapMessage.setObject(JDF_NODE, doc.getJDFRoot());
producer.send(mapMessage);
return mapMessage.getJMSMessageID();

} catch (Exception e) {
throw new JLTProcessorException(e);
} finally {
try {
producer.close();
session.close();
connection.close();
} catch (JMSException e) {
throw new EJBException(e);
}

}

}

/** {@inheritDoc} */
@Override
public void verifyRequestCompletion(Request request)
throws JLTProcessorException {

Long processedPages = requestDAO.countProcessedPages(request.getId());

if (processedPages.intValue() == request.getPageCount()) {

JDFDoc doc = new JDFDoc(ElementName.JMF);
JDFJMF jmf = doc.getJMFRoot();
JDFMessage jdfMessage = jmf.appendMessageElement(
EnumFamily.Command, EnumType.ReturnQueueEntry);
JDFReturnQueueEntryParams returnParams = jdfMessage
.appendReturnQueueEntryParams();
returnParams.setQueueEntryID(request.getQueryEntry());

} else {
logger.warn(format(MISSING_PAGE_TO_PROCESS,
request.getIdentifier(), request.getPageCount(),
processedPages));
}
}
}

测试类:

@RunWith(Arquillian.class)
public class JLTProcessorBeanTest {

@Inject @New
@Named
protected JLTProcessorBeanRemote processorBean;

@Deployment
public static JavaArchive createTestArchive() {
return ShrinkWrap.create(JavaArchive.class)
.addClasses(JLTProcessorBean.class)
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");

}

@Test
public void queueJdfToProcessTest() throws JLTProcessorException {
JDFDoc doc = new JDFDoc();
processorBean.queueJdfToProcess("", doc);
}

/**
* @param processorBean
* the processorBean to set
*/
public void setProcessorBean(JLTProcessorBeanRemote processorBean) {
this.processorBean = processorBean;
}
}

arquilian.xml

<arquillian xmlns="http://jboss.org/schema/arquillian"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/schema/arquillian
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">

<!-- Uncomment to have test archives exported to the file system for inspection -->
<!-- <engine> -->
<!-- <property name="deploymentExportPath">target/</property> -->
<!-- </engine> -->


<!-- Example configuration for a remote JBoss Enterprise Application Platform
6 or AS 7 instance -->
<container qualifier="jboss" default="true">
<!-- By default, arquillian will use the JBOSS_HOME environment variable.
Alternatively, the configuration below can be uncommented. -->
<!--<configuration> -->
<!--<property name="jbossHome">/path/to/jboss/as</property> -->
<!--</configuration> -->
<protocol type="Servlet 3.0" />
</container>

你能帮帮我吗?

最佳答案

您的 Arquillian 部署存档中没有接口(interface)。您需要将这些类中使用的所有内容都包含到 Arquillian 部署中。

关于java - 带有 CDI 的 EJB 3.1 遇到错误 1408,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18275880/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com