[jboss-user] [EJB 3.0] - Ejb 3 in Jboss 5 Beta 3

ragavgomatam do-not-reply at jboss.com
Sun Dec 23 10:11:46 EST 2007


Hi,

I have ejb3 deployed & working in jboss 4.2.1. The same EAR when dropped into jboss  5 Beta 3\default\deploy has problems. Let me elaborate.
I have  ejb's . (1) SayHelloBean & (2) Calculator Bean. BOTH WORK IN jboss 4.2.1 and BOTH ARE EJB 3's.

Code

package com.ejb3.interfaces;
  | 
  | import java.sql.SQLException;
  | import javax.ejb.Local;
  | @Local
  | public interface SayHello {
  | 	public String sayHelloWithEjb3DI() throws SQLException;
  | 	
}

Bean

package com.ejb3.beans;
  | 
  | import static javax.ejb.TransactionAttributeType.REQUIRED;
  | import javax.ejb.Stateful;
  | import javax.ejb.TransactionAttribute;
  | import javax.ejb.EJB;
  | import javax.annotation.PostConstruct;
  | import javax.annotation.Resource;
  | import javax.interceptor.ExcludeDefaultInterceptors;
  | import javax.sql.DataSource;
  | import javax.annotation.PreDestroy;
  | 
  | import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
  | import org.jboss.annotation.spring.Spring;
  | 
  | import com.ejb3.domain.IPerson;
  | import com.ejb3.interfaces.Calculator;
  | import com.ejb3.interfaces.SayHello;
  | 
  | @Stateful
  | @TransactionAttribute(REQUIRED)
  | @ExcludeDefaultInterceptors
  | public class SayHelloBean extends SimpleJdbcDaoSupport implements SayHello {
  | 
  | 	@Resource(name = "jdbc/TestDs", type = DataSource.class, shareable = true, mappedName = "java:jdbc/OracleDS")
  | 	private DataSource ds;
  | 
  | 	@EJB(beanName = "CalculatorBean")
  | 	private Calculator calculator;
  | 
  | 	@Resource(name = "sqlForEjb")
  | 	private String sql;
  | 
  | 	public String sayHelloWithEjb3DI() {
  | 		return "Testing ejb3 DI  & your age is "
  | 		+ getSimpleJdbcTemplate().queryForInt(sql);
  | 	}
  | 
  | 	public double calulate() {
  | 		return calculator.calculate(2, 3);
  | 	}
  | 
  | 	@PostConstruct
  | 	public void init() {
  | 		setDataSource(ds);
  | 	}
  | 
  | 	@PreDestroy
  | 	public void callThis() {
  | 		System.out.println("Invoking method: preDestroy()");
  | 	}
  | 
  | }
  | 

BEAN 2
package com.ejb3.interfaces;
  | 
  | import javax.ejb.Local;
  | 
  | @Local
  | public interface Calculator {
  | 	public double calculate(int i, int j);
  | }


package com.ejb3.beans;
  | 
  | import static javax.ejb.TransactionAttributeType.REQUIRED;
  | import javax.ejb.Stateless;
  | import javax.ejb.TransactionAttribute;
  | import javax.interceptor.ExcludeDefaultInterceptors;
  | import com.ejb3.interfaces.Calculator;
  | 
  | @Stateless
  | @TransactionAttribute(REQUIRED)
  | @ExcludeDefaultInterceptors
  | public class CalculatorBean implements Calculator {
  | 
  | 	public double calculate(int i, int j) {
  | 		return i + j;
  | 	}
  | 
  | }
  | 
  | 

This was deployed in an EAR file with spring looking up the ejb as follows :- 

<bean name="/home" class="com.ejb3.action.SpringEjb3Action"
  | 		autowire="byName">
  | 		<property name="sayhello" ref="ejbLocalIntf"></property>
  | 	</bean>
  | 	<!-- Jboss 4.2 look up of ejb3 -->
  | 	<jee:jndi-lookup id="ejbLocalIntf" jndi-name="Ejb3/SayHelloBean/local" />
  | </beans>

This works perfectly in jboss 4.2.1 but in jboss 5 beta 3 I get the following deployment error :- 


org.jboss.deployers.spi.DeploymentException: Error deploying Ejb3.jar: Error creating ejb container CalculatorBean: java.lang.RuntimeException: Unable to load class for annotation org.jboss.annotation.ejb.PoolClass using class loader org.jboss.mx.loading.UnifiedClassLoader3 at b8ec9b{ url=vfsfile:/C:/jboss-5.0.0.Beta3/server/default/deploy/Ejb3.ear ,addedOrder=21}

Also in the jmx-console under jndiView, I see the ejb's not bound.

java:comp namespace of the component jboss.j2ee:ear=Ejb3.ear,jar=Ejb3.jar,name=CalculatorBean,service=EJB3 :
  | 
  |   +- ORB[link -> java:/JBossCorbaORB] (class: javax.naming.LinkRef)
  |   +- EJBContext (class: javax.ejb.EJBContext)
  |   +- env (class: org.jnp.interfaces.NamingContext)

I don't see the ejb's bound under GLOBAL JNDI Namespace either.

Any suggestions/ideas ? 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4115249#4115249

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4115249



More information about the jboss-user mailing list