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#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...