| 
        
        
        
       
        
        ask questions of java
       
                  
        Hi,
 I have written the code to read messages from queue.But when I deploy this in weblogic 9.2 after creating a jar file it is showing unmarshaller failed
 Below is the code
 
 MyMdb.java
 
 
 package com.mdb.ejb;
 
 import javax.ejb.EJBException;
 import javax.ejb.MessageDrivenBean;
 import javax.ejb.MessageDrivenContext;
 import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.MessageListener;
 import javax.jms.TextMessage;
 
 /**
 * Message-Driven Bean implementation class for: MyMdb
 *
 */
 
 
 public class MyMdb implements javax.ejb.MessageDrivenBean,javax.jms.MessageListe  ner  {
 
 /**
 *
 */
 private static final long serialVersionUID = 1L;
 
 /**
 * Default constructor.
 */
 public MyMdb() {
 // TODO Auto-generated constructor stub
 }
 
 /**
 * @see MessageListener#onMessage(Message)
 */
 public void onMessage(Message message) {
 // TODO Auto-generated method stub
 System.out.println("on two thtr ");
 TextMessage textMessage = (TextMessage) message;
 
 try {
 System.out.println("\n\n\t(mdb) MyMDB Received \n"+ textMessage.getText());
 SendMail.sendMail(textMessage.getText());
 }
 catch (JMSException e)
 {
 e.printStackTrace();
 }
 
 }
 
 public void ejbRemove() throws EJBException {
 // TODO Auto-generated method stub
 
 }
 
 public void setMessageDrivenContext(MessageDrivenContext arg0)
 throws EJBException {
 // TODO Auto-generated method stub
 
 }
 
 }
 
 
 
 
 
 ejb-jar.xml
 
 
 <?xml version="1.0" encoding="UTF-8"?>
 <ejb-jar
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
 version="2.1">
 <enterprise-beans>
 <message-driven>
 <ejb-name>MyMdb</ejb-name>
 <ejb-class>com.mdb.ejb.MyMdb</ejb-class>
 <transaction-type>Container</transaction-type>
 <activation-config>
 <activation-config-property>
 <activation-config-property-name>destinationType</activation-config-property-name>
 <activation-config-property-value>javax.jms.Queue</activation-config-property-value>
 </activation-config-property>
 </activation-config>
 <env-entry>
 <env-entry-name>isTransacted</env-entry-name>
 <env-entry-type>java.lang.String</env-entry-type>
 <env-entry-value>true</env-entry-value>
 </env-entry>
 <env-entry>
 <env-entry-name>isJmsRedeliveredBroken</env-entry-name>
 <env-entry-type>java.lang.String</env-entry-type>
 <env-entry-value>false</env-entry-value>
 </env-entry>
 </message-driven>
 </enterprise-beans>
 <assembly-descriptor>
 <container-transaction>
 <method>
 <ejb-name>MyMdb</ejb-name>
 <method-name>onMessage</method-name>
 </method>
 <trans-attribute>Required</trans-attribute>
 </container-transaction>
 </assembly-descriptor>
 </ejb-jar>
 
 
 weblogic-ejb-jar.xml
 
 <weblogic-ejb-jar
 xmlns="http://www.bea.com/ns/weblogic/90"
 xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-ejb-jar.xsd">
 <weblogic-enterprise-bean>
 <ejb-name>MyMdb</ejb-name>
 <message-driven-descriptor>
 <pool>
 <max-beans-in-free-pool>10</max-beans-in-free-pool>
 <initial-beans-in-free-pool>10</initial-beans-in-free-pool>
 </pool>
 <destination-jndi-name>qjndi</destination-jndi-name>
 <connection-factory-jndi-name>cfjndi</connection-factory-jndi-name>
 </message-driven-descriptor>
 </weblogic-enterprise-bean>
 </weblogic-ejb-jar>
 
 It is shwoing below mentioned exception
 
 An error occurred during activation of changes, please see the log for details.
 ?? Exception preparing module: EJBModule(MessageDrivenBeanProject) Unable to deploy EJB: MessageDrivenBeanProject.jar from MessageDrivenBeanProject.jar: There are 2 nested errors: weblogic.ejb.container.compliance.ComplianceExcept  ion: In EJB MyMdb, the message-driven bean class must implement the javax.ejb.MessageDrivenBean interface. At weblogic.ejb.container.compliance.MessageDrivenBea  nClassChecker.checkMessageDrivenImplementsMDB(Mess  ageDrivenBeanClassChecker.java:54) at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ  e Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Native  MethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(De  legatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) at weblogic.ejb.container.compliance.EJBComplianceChe  cker.check(EJBComplianceChecker.java:262) at weblogic.ejb.container.compliance.EJBComplianceChe  cker.checkDeploymentInfo(EJBComplianceChecker.java  :216) at weblogic.ejb.container.ejbc.EJBCompiler.compliance  CheckJar(EJBCompiler.java:875) at weblogic.ejb.container.ejbc.EJBCompiler.checkCompl  iance(EJBCompiler.java:843) at weblogic.ejb.container.ejbc.EJBCompiler.doCompile(  EJBCompiler.java:229) at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB  (EJBCompiler.java:497) at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB  (EJBCompiler.java:464) at weblogic.ejb.container.deployer.EJBDeployer.runEJB  C(EJBDeployer.java:432) at weblogic.ejb.container.deployer.EJBDeployer.compil  eJar(EJBDeployer.java:754) at weblogic.ejb.container.deployer.EJBDeployer.compil  eIfNecessary(EJBDeployer.java:657) at weblogic.ejb.container.deployer.EJBDeployer.prepar  e(EJBDeployer.java:1201) at weblogic.ejb.container.deployer.EJBModule.prepare(  EJBModule.java:355) at weblogic.application.internal.flow.ModuleListenerI  nvoker.prepare(ModuleListenerInvoker.java:93) at weblogic.application.internal.flow.DeploymentCallb  ackFlow$1.next(DeploymentCallbackFlow.java:360) at weblogic.application.utils.StateMachineDriver.next  State(StateMachineDriver.java:26) at weblogic.application.internal.flow.DeploymentCallb  ackFlow.prepare(DeploymentCallbackFlow.java:56) at weblogic.application.internal.flow.DeploymentCallb  ackFlow.prepare(DeploymentCallbackFlow.java:46) at weblogic.application.internal.BaseDeployment$1.nex  t(BaseDeployment.java:615) at weblogic.application.utils.StateMachineDriver.next  State(StateMachineDriver.java:26) at weblogic.application.internal.BaseDeployment.prepa  re(BaseDeployment.java:191) at weblogic.application.internal.DeploymentStateCheck  er.prepare(DeploymentStateChecker.java:147) at weblogic.deploy.internal.targetserver.AppContainer  Invoker.prepare(AppContainerInvoker.java:61) at weblogic.deploy.internal.targetserver.operations.A  ctivateOperation.createAndPrepareContainer(Activat  eOperation.java:189) at weblogic.deploy.internal.targetserver.operations.A  ctivateOperation.doPrepare(ActivateOperation.java:  87) at weblogic.deploy.internal.targetserver.operations.A  bstractOperation.prepare(AbstractOperation.java:21  7) at weblogic.deploy.internal.targetserver.DeploymentMa  nager.handleDeploymentPrepare(DeploymentManager.ja  va:718) at weblogic.deploy.internal.targetserver.DeploymentMa  nager.prepareDeploymentList(DeploymentManager.java  :1185) at weblogic.deploy.internal.targetserver.DeploymentMa  nager.handlePrepare(DeploymentManager.java:247) at weblogic.deploy.internal.targetserver.DeploymentSe  rviceDispatcher.prepare(DeploymentServiceDispatche  r.java:157) at weblogic.deploy.service.internal.targetserver.Depl  oymentReceiverCallbackDeliverer.doPrepareCallback(  DeploymentReceiverCallbackDeliverer.java:157) at weblogic.deploy.service.internal.targetserver.Depl  oymentReceiverCallbackDeliverer.access$000(Deploym  entReceiverCallbackDeliverer.java:12) at weblogic.deploy.service.internal.targetserver.Depl  oymentReceiverCallbackDeliverer$1.run(DeploymentRe  ceiverCallbackDeliverer.java:45) at weblogic.work.ServerWorkManagerImpl$WorkAdapterImp  l.run(ServerWorkManagerImpl.java:518) at weblogic.work.ExecuteThread.execute(ExecuteThread.  java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java  :181) and weblogic.ejb.container.compliance.ComplianceExcept  ion: In EJB MyMdb, a Message-driven EJB must define an ejbCreate method that takes no parameters. At weblogic.ejb.container.compliance.MessageDrivenBea  nClassChecker.checkEjbCreateMethod(MessageDrivenBe  anClassChecker.java:401) at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ  e Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Native  MethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(De  legatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) at weblogic.ejb.container.compliance.EJBComplianceChe  cker.check(EJBComplianceChecker.java:262) at weblogic.ejb.container.compliance.EJBComplianceChe  cker.checkDeploymentInfo(EJBComplianceChecker.java  :216) at weblogic.ejb.container.ejbc.EJBCompiler.compliance  CheckJar(EJBCompiler.java:875) at weblogic.ejb.container.ejbc.EJBCompiler.checkCompl  iance(EJBCompiler.java:843) at weblogic.ejb.container.ejbc.EJBCompiler.doCompile(  EJBCompiler.java:229) at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB  (EJBCompiler.java:497) at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB  (EJBCompiler.java:464) at weblogic.ejb.container.deployer.EJBDeployer.runEJB  C(EJBDeployer.java:432) at weblogic.ejb.container.deployer.EJBDeployer.compil  eJar(EJBDeployer.java:754) at weblogic.ejb.container.deployer.EJBDeployer.compil  eIfNecessary(EJBDeployer.java:657) at weblogic.ejb.container.deployer.EJBDeployer.prepar  e(EJBDeployer.java:1201) at weblogic.ejb.container.deployer.EJBModule.prepare(  EJBModule.java:355) at weblogic.application.internal.flow.ModuleListenerI  nvoker.prepare(ModuleListenerInvoker.java:93) at weblogic.application.internal.flow.DeploymentCallb  ackFlow$1.next(DeploymentCallbackFlow.java:360) at weblogic.application.utils.StateMachineDriver.next  State(StateMachineDriver.java:26) at weblogic.application.internal.flow.DeploymentCallb  ackFlow.prepare(DeploymentCallbackFlow.java:56) at weblogic.application.internal.flow.DeploymentCallb  ackFlow.prepare(DeploymentCallbackFlow.java:46) at weblogic.application.internal.BaseDeployment$1.nex  t(BaseDeployment.java:615) at weblogic.application.utils.StateMachineDriver.next  State(StateMachineDriver.java:26) at weblogic.application.internal.BaseDeployment.prepa  re(BaseDeployment.java:191) at weblogic.application.internal.DeploymentStateCheck  er.prepare(DeploymentStateChecker.java:147) at weblogic.deploy.internal.targetserver.AppContainer  Invoker.prepare(AppContainerInvoker.java:61) at weblogic.deploy.internal.targetserver.operations.A  ctivateOperation.createAndPrepareContainer(Activat  eOperation.java:189) at weblogic.deploy.internal.targetserver.operations.A  ctivateOperation.doPrepare(ActivateOperation.java:  87) at weblogic.deploy.internal.targetserver.operations.A  bstractOperation.prepare(AbstractOperation.java:21  7) at weblogic.deploy.internal.targetserver.DeploymentMa  nager.handleDeploymentPrepare(DeploymentManager.ja  va:718) at weblogic.deploy.internal.targetserver.DeploymentMa  nager.prepareDeploymentList(DeploymentManager.java  :1185) at weblogic.deploy.internal.targetserver.DeploymentMa  nager.handlePrepare(DeploymentManager.java:247) at weblogic.deploy.internal.targetserver.DeploymentSe  rviceDispatcher.prepare(DeploymentServiceDispatche  r.java:157) at weblogic.deploy.service.internal.targetserver.Depl  oymentReceiverCallbackDeliverer.doPrepareCallback(  DeploymentReceiverCallbackDeliverer.java:157) at weblogic.deploy.service.internal.targetserver.Depl  oymentReceiverCallbackDeliverer.access$000(Deploym  entReceiverCallbackDeliverer.java:12) at weblogic.deploy.service.internal.targetserver.Depl  oymentReceiverCallbackDeliverer$1.run(DeploymentRe  ceiverCallbackDeliverer.java:45) at weblogic.work.ServerWorkManagerImpl$WorkAdapterImp  l.run(ServerWorkManagerImpl.java:518) at weblogic.work.ExecuteThread.execute(ExecuteThread.  java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java  :181)??
 ?? There are 2 nested errors: weblogic.ejb.container.compliance.ComplianceExcept  ion: In EJB MyMdb, the message-driven bean class must implement the javax.ejb.MessageDrivenBean interface.?
 |