[jboss-user] [Installation, Configuration & Deployment] - Re: EJB3.0 deployment failing in Jboss5.1.0GA

kumaran_is do-not-reply at jboss.com
Sun Nov 29 12:03:25 EST 2009


Hi Jaikiran,
Now I have modified the ear file packaging structure as below


  | freeads.ear
  |    |
  |    |--META-INF
  |    |          |--application.xml
  |    |          |--jboss-app.xml 
  |    |          |--MANIFEST.MF
  |    |
  |    |--lib
  |    |   |--spring jars,hibernate jars, jboss jars etc 
  |    |   |--freeads.jar (To,DAO,Domain,helper classes,applicationContext.xml,beanRefContext.xml etc) 
  |    |               
  |    |
  |    |--freeads-ejb.jar
  |                    | 
  |                    |--META-INF
  |                    |--MANIFEST.MF
  | 
  | 
 
lib folder is now placed directly under root of the ear file.lib folder contains all the api libraries of spring2.5,hibernate3,other libraries etc and one application jar i.e freeads.jar that contains DAO classes,Domain classes,To classes,helper & utility classes.It also has spring applicationContext.xml and beanRefContext.xml etc 

freeads-ejb.jar has ejb3 stateless session bean classes , remote & local business interfaces. Since i am using annotation there is no ejb-jar.xml

But when i try to deploy the freeads.ear in Jboss5.1.0 under server/default/deploy it throws different deployment error as shown below in the log. 


Error Log
10:25:18,845 INFO  [TomcatDeployment] deploy, ctxPath=/jmx-console
10:25:22,589 ERROR [AbstractKernelController] Error installing to Real: name=vfszip:/D:/jboss-5.1.0.GA/server/default/deploy/freeads.ear/ state=PreReal mode=Manual requiredState=Real
org.jboss.deployers.spi.DeploymentException: Error deploying freeads-ejb.jar: failed to initialize bean container 
	at org.jboss.ejb3.deployers.Ejb3Deployer.deploy(Ejb3Deployer.java:196)
	at org.jboss.ejb3.deployers.Ejb3Deployer.deploy(Ejb3Deployer.java:99)
	at org.jboss.deployers.vfs.spi.deployer.AbstractVFSRealDeployer.internalDeploy(AbstractVFSRealDeployer.java:45)
	at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
	at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1210)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
	at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
	at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
	at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
	at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)
	at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)
	at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361)
	at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
	at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
	at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
	at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
	at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306)
	at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271)
	at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)
	at org.jboss.Main.boot(Main.java:221)
	at org.jboss.Main$1.run(Main.java:556)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.RuntimeException: failed to initialize bean container 
	at org.jboss.ejb3.EJBContainer.(EJBContainer.java:253)
	at org.jboss.ejb3.session.SessionContainer.(SessionContainer.java:119)
	at org.jboss.ejb3.session.SessionSpecContainer.(SessionSpecContainer.java:69)
	at org.jboss.ejb3.stateless.StatelessContainer.(StatelessContainer.java:112)
	at org.jboss.ejb3.Ejb3AnnotationHandler.getStatelessContainer(Ejb3AnnotationHandler.java:310)
	at org.jboss.ejb3.Ejb3AnnotationHandler.getContainers(Ejb3AnnotationHandler.java:203)
	at org.jboss.ejb3.Ejb3Deployment.deployElement(Ejb3Deployment.java:718)
	at org.jboss.ejb3.Ejb3Deployment.deployElement(Ejb3Deployment.java:669)
	at org.jboss.ejb3.Ejb3Deployment.deployUrl(Ejb3Deployment.java:651)
	at org.jboss.ejb3.Ejb3Deployment.deploy(Ejb3Deployment.java:614)
	at org.jboss.ejb3.Ejb3Deployment.create(Ejb3Deployment.java:491)
	at org.jboss.ejb3.deployers.Ejb3Deployer.deploy(Ejb3Deployer.java:182)
	... 34 more
Caused by: java.lang.IllegalStateException: Null beannMetaData
	at org.jboss.ejb3.interceptors.metadata.BeanInterceptorMetaDataBridge.setupMetaDataLists(BeanInterceptorMetaDataBridge.java:315)
	at org.jboss.ejb3.interceptors.metadata.BeanInterceptorMetaDataBridge.initialise(BeanInterceptorMetaDataBridge.java:235)
	at org.jboss.ejb3.interceptors.metadata.BeanInterceptorMetaDataBridge.(BeanInterceptorMetaDataBridge.java:138)
	at org.jboss.ejb3.interceptors.metadata.AdditiveBeanInterceptorMetaDataBridge.(AdditiveBeanInterceptorMetaDataBridge.java:48)
	at org.jboss.ejb3.aop.BeanContainer.initialize(BeanContainer.java:194)
	at org.jboss.ejb3.EJBContainer.(EJBContainer.java:249)
	... 45 more
Caused by: java.lang.NullPointerException
	at org.jboss.ejb3.interceptors.metadata.BeanInterceptorMetaDataBridge.setupMetaDataLists(BeanInterceptorMetaDataBridge.java:268)
	... 50 more
10:25:22,651 ERROR [ProfileServiceBootstrap] Failed to load profile: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):

DEPLOYMENTS IN ERROR:
  Deployment "vfszip:/D:/jboss-5.1.0.GA/server/default/deploy/freeads.ear/" is in error due to the following reason(s): java.lang.NullPointerException

10:25:22,667 INFO  [Http11Protocol] Starting Coyote HTTP/1.1 on http-127.0.0.1-8080
10:25:22,698 INFO  [AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009
10:25:22,713 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221053)] Started in 1m:12s:352ms




EJB3 Stateless session bean class : AdsReplySessionBean.java 
I am using  @Interceptors & @Autowired to inject spring beans into ejb3 stateless session bean


  | package com.bluec.freeads.ejb;
  | import javax.ejb.Local;
  | import javax.ejb.Remote;
  | import javax.ejb.Stateless;
  | import javax.interceptor.Interceptors;
  | import org.apache.log4j.Logger;
  | import org.jboss.ejb3.annotation.LocalBinding;
  | import org.jboss.ejb3.annotation.RemoteBinding;
  | import org.springframework.beans.factory.annotation.Autowired;
  | import org.springframework.ejb.interceptor.SpringBeanAutowiringInterceptor;
  | import com.bluec.freeads.businessservice.IAdsReplyBusinessService;
  | import com.bluec.freeads.errors.Errors;
  | import com.bluec.freeads.request.InsertAdsReplyRequest;
  | import com.bluec.freeads.request.Request;
  | import com.bluec.freeads.response.InsertAdsReplyResponse;
  | import com.bluec.freeads.response.Response;
  | import com.bluec.freeads.util.FreeAdsUtil;
  | 
  | @Stateless
  | @Local(IAdsReplyLocal.class)
  | @Remote(IAdsReplyRemote.class)
  | @RemoteBinding(jndiBinding="ejb/IAdsReplyRemote")
  | @LocalBinding(jndiBinding="ejb/IAdsReplyLocal")
  | @Interceptors(SpringBeanAutowiringInterceptor.class)
  | public class AdsReplySessionBean implements IAdsReplyLocal,IAdsReplyRemote
  | {
  |   private static final Logger log = Logger.getLogger(AdsReplySessionBean.class);
  | 	@Autowired
  | 	private IAdsReplyBusinessService adsReplyBusinessService;
  | 	
  |   public Response InsertAdsReply(Request request)
  |   {
  | 	 	long start = System.currentTimeMillis();
  | 		InsertAdsReplyResponse insertAdsReplyResponse=null;
  | 		if(FreeAdsUtil.validateRequestForNull(request))
  | 		{
  | 			log.error("User Insert AdsReply service failed due to NULL request");
  | 			insertAdsReplyResponse=new InsertAdsReplyResponse();
  | 			insertAdsReplyResponse.setErrors(new Errors(Errors.SYSTEM_ERROR_CODE_903,Errors.SYSTEM_ERROR_TEXT_903));
  | 			insertAdsReplyResponse.setStatus(false);
  | 			insertAdsReplyResponse.setStatusDescription("User Insert AdsReply service failed");  
  | 			return insertAdsReplyResponse;
  | 		}
  | 		if(log.isDebugEnabled())
  | 		{
  | 			log.debug("User Insert AdsReply service request : "+request.toString());
  | 		}	
  | 		InsertAdsReplyRequest insertAdsReplyRequest=(InsertAdsReplyRequest)request;
  | 		try
  | 		{
  | 			insertAdsReplyResponse= adsReplyBusinessService.InsertAdsReply(insertAdsReplyRequest);
  | 		}
  | 		catch (Throwable e)
  | 		{
  | 			log.error("Inside Insert AdsReply exception  is ",e);
  | 			e.printStackTrace();
  | 			insertAdsReplyResponse=new InsertAdsReplyResponse();
  | 			insertAdsReplyResponse.setErrors(new Errors(Errors.SYSTEM_ERROR_CODE_900,Errors.SYSTEM_ERROR_TEXT_900));
  | 			insertAdsReplyResponse.setStatus(false);
  | 			insertAdsReplyResponse.setStatusDescription("Insert AdsReply service failed");  
  | 	
  | 		}
  | 		if(log.isDebugEnabled())
  | 		{
  | 			log.debug("Insert AdsReply  service  Time ["+ (System.currentTimeMillis() - start) + " ] milliseconds !");
  | 		}	
  | 		return insertAdsReplyResponse;
  |   }
  | 
  | }
  | 
  | 


EJB3 Local interface : IAdsReplyLocal.java

  | package com.bluec.freeads.ejb;
  | public interface IAdsReplyLocal extends IAdsReplyBusiness
  | {
  | }
  | 


EJB3 Remote interface : IAdsReplyRemote.java

  | package com.bluec.freeads.ejb;
  | public interface IAdsReplyRemote extends IAdsReplyBusiness
  | {
  | }
  | 

Business Interface : IAdsReplyBusiness.java

  | package com.bluec.freeads.ejb;
  | import com.bluec.freeads.request.Request;
  | import com.bluec.freeads.response.Response;
  | public interface IAdsReplyBusiness 
  | {
  |     public Response InsertAdsReply(Request request);
  | }
  | 


beanRefContext.xml and applicationcontext.xml  are   inside lib\freeads.jar 

 beanRefContext.xml 
 
  | <?xml version="1.0" encoding="UTF-8"?>
  | <beans xmlns="http://www.springframework.org/schema/beans"
  |   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  |   xsi:schemaLocation="http://www.springframework.org/schema/beans
  |   http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
  | <bean id="com.bluec.freeads.ejb" class="org.springframework.context.support.ClassPathXmlApplicationContext">
  | <constructor-arg value="applicationContext.xml" />
  | </bean>
  | </beans>
  |  


application.xml

  | <?xml version="1.0" encoding="UTF-8"?>
  | <application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  | xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
  | http://java.sun.com/xml/ns/javaee/application_5.xsd" version="5" 
  | xmlns="http://java.sun.com/xml/ns/javaee">
  |   <display-name>freeads</display-name>
  |   <module>
  |     <ejb>freeads-ejb.jar</ejb>
  |   </module>
  |  </application>
  | 


jboss-app.xml

  | <jboss-app>
  |   <loader-repository> 
  |   com.bluec:archive=freeads.ear
  |   </loader-repository>
  | </jboss-app>
  | 


Thanks
kumaran

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

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



More information about the jboss-user mailing list