[jboss-user] [Beginner's Corner] - Access to EJB ( JBoss AS 7 )

chris81t do-not-reply at jboss.com
Fri Jul 22 21:42:33 EDT 2011


chris81t [http://community.jboss.org/people/chris81t] created the discussion

"Access to EJB ( JBoss AS 7 )"

To view the discussion, visit: http://community.jboss.org/message/617139#617139

--------------------------------------------------------------
Hi @all,

I hope you can help me. I'm actually new to JBoss AS. 

For the first test I have written a simple HelloJBoss application:

*- HelloJBossAS7* (eclipse ear project contains the two following projects)
*- HelloJBossEJB*
     contains:

ISimpleEJB.java
package de.example.ejb;
 
 
import javax.ejb.Local;
 
 
@Local
public interface ISimpleEJB {
          int add(int a, int b) throws Exception;
}
 


SimpleEJB.java
package de.example.ejb;
 
 
import javax.ejb.Stateless;
 
 
@Stateless
public class SimpleEJB implements ISimpleEJB {
 
 
          @Override
          public int add(int a, int b) throws Exception {
                    return a + b;
          }
 
 
}
 


*- HelloJBossJSF (2.0)*
     contains

Content.java
package de.example.beans;
 
 
import java.io.Serializable;
 
 
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
 
 
import de.example.ejb.ISimpleEJB;
 
 
@ManagedBean
@SessionScoped
public class Content implements Serializable {
 
 
          private static final long serialVersionUID = 5526381952953438091L;
 
 
          private String title = "Hello JBoss AS 7 :-)";
  
          @EJB(beanName = "SimpleEJB")
          private ISimpleEJB ejb;
  
          public String getTitle() {
                    return title;
          }
 
 
          public void setTitle(String title) {
                    this.title = title;
          }
  
          public int getVal() {
                    try {
                              return ejb.add(2, 4); 
                    }
                    catch (Exception e) {
                              return -1; 
                    }
          }
}
 


content.xhtml

<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">
          <f:view contentType="text/html"/>


          <h:head>
              <title>Hello JBoss AS 7</title>
          </h:head>
  
          <h:body> 
                     <h:outputText value="Title: #{content.title}"/>
                    <br/>
                    <br/>
                    <h:outputText value="Content: #{content.val}"/>
          </h:body>


</html>



web.xml
jboss-web.xml
faces-config.xml


If I delete the ejb-member "ejb" in the Content class, I can deploy the EAR to the jboss and the jsf app work's fine. But if I use the "ejb" member, I will get the following deployment error:

> 23:54:13,542 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed to start service jboss.deployment.subunit."HelloJBossAS7.ear"."HelloJBossJSF.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.subunit."HelloJBossAS7.ear"."HelloJBossJSF.war".INSTALL: Failed to process phase INSTALL of subdeployment "HelloJBossJSF.war" of deployment "HelloJBossAS7.ear"
>           at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:121)
>           at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)
>           at org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291)
>           at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_26]
>           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_26]
>           at java.lang.Thread.run(Thread.java:662) [:1.6.0_26]
> Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: No component found for type 'de.example.ejb.ISimpleEJB' with name SimpleEJB
>           at org.jboss.as.ejb3.deployment.processors.EjbInjectionSource.getResourceValue(EjbInjectionSource.java:68)
>           at org.jboss.as.ee.component.ModuleJndiBindingProcessor.addJndiBinding(ModuleJndiBindingProcessor.java:187)
>           at org.jboss.as.ee.component.ModuleJndiBindingProcessor$1.handle(ModuleJndiBindingProcessor.java:154)
>           at org.jboss.as.ee.component.ClassDescriptionTraversal.run(ClassDescriptionTraversal.java:52)
>           at org.jboss.as.ee.component.ModuleJndiBindingProcessor.processClassConfigurations(ModuleJndiBindingProcessor.java:125)
>           at org.jboss.as.ee.component.ModuleJndiBindingProcessor.deploy(ModuleJndiBindingProcessor.java:118)
>           at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115)
>           ... 5 more
> 
> 
> 23:54:13,748 INFO  [org.jboss.as.server.controller] (DeploymentScanner-threads - 2) Deployment of "HelloJBossAS7.ear" was rolled back with failure message {"Failed services" => {"jboss.deployment.subunit.\"HelloJBossAS7.ear\".\"HelloJBossJSF.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.subunit.\"HelloJBossAS7.ear\".\"HelloJBossJSF.war\".INSTALL: Failed to process phase INSTALL of subdeployment \"HelloJBossJSF.war\" of deployment \"HelloJBossAS7.ear\""},"Services with missing/unavailable dependencies" => ["jboss.naming.context.java.comp.HelloJBossAS7.HelloJBossJSF.HelloJBossJSF.ValidatorFactory missing [ jboss.naming.context.java.module.HelloJBossAS7.HelloJBossJSF ]","jboss.naming.context.java.comp.HelloJBossAS7.HelloJBossJSF.HelloJBossJSF.Validator missing [ jboss.naming.context.java.module.HelloJBossAS7.HelloJBossJSF ]"]}
> 23:54:13,755 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-12) Stopped deployment HelloJBossJSF.war in 7ms
> 23:54:13,757 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-15) Stopped deployment HelloJBossAS7.ear in 9ms
> 23:54:13,759 ERROR [org.jboss.as.deployment] (DeploymentScanner-threads - 1) {"Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"Failed services" => {"jboss.deployment.subunit.\"HelloJBossAS7.ear\".\"HelloJBossJSF.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.subunit.\"HelloJBossAS7.ear\".\"HelloJBossJSF.war\".INSTALL: Failed to process phase INSTALL of subdeployment \"HelloJBossJSF.war\" of deployment \"HelloJBossAS7.ear\""},"Services with missing/unavailable dependencies" => ["jboss.naming.context.java.comp.HelloJBossAS7.HelloJBossJSF.HelloJBossJSF.ValidatorFactory missing [ jboss.naming.context.java.module.HelloJBossAS7.HelloJBossJSF ]","jboss.naming.context.java.comp.HelloJBossAS7.HelloJBossJSF.HelloJBossJSF.Validator missing [ jboss.naming.context.java.module.HelloJBossAS7.HelloJBossJSF ]"]}}}
> 


Is using the @EJB annotation the wrong way? Should I user instead a ServiceLocator?! I hope, someone can help me and tell me the correct way to use the SimpleEJB.

Who want's to see the whole project's, have a look the the attachment.

Thank you for support!  :)
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/617139#617139]

Start a new discussion in Beginner's Corner at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2075]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20110722/8a65bd50/attachment-0001.html 


More information about the jboss-user mailing list