"Bean Class Must Implement X" message, but bean class does implement X
When trying to deploy an .ear file on WebLogic 9.0 that contains an MDB EJB, I get a message like the following:
In EJB ITS-MDB(Application: ITSNO,
EJBComponent: ITSMDB.jar), the bean class must implement
its.common.TelnetMessageListener. '
The ITS-MDB EJB class (its.mdb.TelnetMessageListenerImpl) referenced in ejb-jar.xml DOES implement its.common.TelnetMessageListener, and both .class files exist in the same .jar file.
(The TelnetMessageListener interface extends javax.ejb.MessageDrivenBean.)
This .ear deploys without a problem on Oracle's OC4J and IBM's Websphere, so it appears that there is some Weblogic peculiarity (a bug, a different spec interpretation, etc.) causing the problem.
This problem is happening on Weblogic 9.0 using Java 1.5.0_03 on Windows XP.
Any ideas why this might be happening?
Thanks for the suggestion, Rob.
I checked to ensure that no out-dated TelnetMessageListenerImpl and TelnetMessageListener were being used. It looks like I am not using older versions.
I first checked the classpath specified by the log, and did not see anywhere in there that would contain either of these classes.
To be sure, I then decided to remove each class from the jar file and attempt to deploy it. If it succeeded, that would mean there was some other version of that file on the classpath.
I first removed TelnetMessageListenerImpl from ITSMDB.jar, and then tried deploying it. As expected, I received the following message:
Unable to deploy EJB: C:\bea\user_projects\domains\domain_good\.\servers\AdminServer\tmp\_WL_user\ITSNOMinus\fvdi9g\ITSMDB.jar from ITSMDB.jar:
Unable to load a class specified in your ejb-jar.xml: its.mdb.TelnetMessageListenerImpl
at weblogic.ejb20.deployer.EJBModule.prepare(EJBModule.java:371)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:90)
I then replaced TelnetMessageListenerImpl and attempted to remove TelnetMessageLister. I got a slightly different (but essentially the same) error:
java.lang.NoClassDefFoundError: oracle/wireless/its/common/TelnetMessageListener
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:302)
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:255)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:223)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:158)
at weblogic.ejb20.deployer.EJBModule.setupEJBToImplClassDependencies(EJBModule.java:1396)
Here is the exception stack I get will the original ITSNO deployment:
####<Sep 20, 2005 11:20:57 AM PDT> <Info> <Deployer> <jrozier-pc> <AdminServer> <[STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1127240457892> <BEA-149059> <Module ITSMDB.jar of application ITSNO is transitioning from STATE_NEW to STATE_PREPARED on server AdminServer.>
####<Sep 20, 2005 11:20:58 AM PDT> <Info> <EJB> <jrozier-pc> <AdminServer> <[STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1127240458002> <BEA-010008> <EJB Deploying file: ITSMDB.jar>
####<Sep 20, 2005 11:20:58 AM PDT> <Info> <Deployer> <jrozier-pc> <AdminServer> <[STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1127240458080> <BEA-149061> <Module ITSMDB.jar of application ITSNO failed to transition from STATE_NEW to STATE_PREPARED on server AdminServer.>
####<Sep 20, 2005 11:20:58 AM PDT> <Info> <Deployer> <jrozier-pc> <AdminServer> <[STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1127240458080> <BEA-149059> <Module ITSRA.rar of application ITSNO is transitioning from STATE_PREPARED to STATE_NEW on server AdminServer.>
####<Sep 20, 2005 11:20:58 AM PDT> <Info> <Deployer> <jrozier-pc> <AdminServer> <[STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1127240458111> <BEA-149060> <Module ITSRA.rar of application ITSNO successfully transitioned from STATE_PREPARED to STATE_NEW on server AdminServer.>
####<Sep 20, 2005 11:20:58 AM PDT> <Error> <Deployer> <jrozier-pc> <AdminServer> <[STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1127240458158> <BEA-149265> <Failure occured in the execution of deployment request with ID '1127240456080' for task '0'. Error is: 'weblogic.application.ModuleException: Exception preparing module: EJBModule(ITSMDB.jar)
Unable to deploy EJB: C:\bea\user_projects\domains\domain_good\.\servers\AdminServer\tmp\_WL_user\ITSNO\x5gd0k\ITSMDB.jar from ITSMDB.jar:
In EJB ITS-MDB(Application: ITSNO, EJBComponent: ITSMDB.jar), the bean class must implement its.common.TelnetMessageListener.
weblogic.application.ModuleException: Exception preparing module: EJBModule(ITSMDB.jar)
Unable to deploy EJB: C:\bea\user_projects\domains\domain_good\.\servers\AdminServer\tmp\_WL_user\ITSNO\x5gd0k\ITSMDB.jar from ITSMDB.jar:
In EJB ITS-MDB(Application: ITSNO, EJBComponent: ITSMDB.jar), the bean class must implement its.common.TelnetMessageListener.
at weblogic.ejb20.deployer.EJBModule.prepare(EJBModule.java:371)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:90)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:318)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:53)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:43)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:236)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:191)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:84)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:197)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:724)
at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1137)
at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:224)
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:109)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:166)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:54)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
In EJB ITS-MDB(Application: ITSNO, EJBComponent: ITSMDB.jar), the bean class must implement its.common.TelnetMessageListener.
at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.initializeOnMessageMethodInfo(MessageDrivenBeanInfoImpl.java:593)
at weblogic.ejb20.deployer.MessageDrivenBeanInfoImpl.<init>(MessageDrivenBeanInfoImpl.java:346)
at weblogic.ejb20.deployer.BeanInfoImpl.createBeanInfoImpl(BeanInfoImpl.java:551)
at weblogic.ejb20.deployer.MBeanDeploymentInfoImpl.initializeBeanInfos(MBeanDeploymentInfoImpl.java:597)
at weblogic.ejb20.deployer.MBeanDeploymentInfoImpl.<init>(MBeanDeploymentInfoImpl.java:221)
at weblogic.ejb20.deployer.EJBDeployer.prepare(EJBDeployer.java:1165)
at weblogic.ejb20.deployer.EJBModule.prepare(EJBModule.java:344)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:90)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:318)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:53)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:43)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:236)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:191)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:84)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:197)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:724)
at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1137)
at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:224)
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:109)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:166)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:54)
at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
>
####<Sep 20, 2005 11:20:58 AM PDT> <Warning> <Deployer> <jrozier-pc> <AdminServer> <[STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1127240458252> <BEA-149004> <Failures were detected while initiating distribute task for application 'ITSNO'.>
####<Sep 20, 2005 11:20:58 AM PDT> <Warning> <Deployer> <jrozier-pc> <AdminServer> <[STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1127240458252> <BEA-149078> <Stack trace for message 149004
There are a few other updates since my first post as well:
(1) I get the same message when I try to deploy just ITSMDB.jar as an application as I do when I try to deploy my ITSNO.ear (which contains both an RA and the MDB).
(2) This same application now also works on JBoss. (I had to add a jboss.xml to tell the MDB about the RA.)
(3) I fixed the ejb-jar.xml container-transaction element to refer to ITS-MDB (with a dash) instead of ITS_MDB (with an underscore). (This fix goes to show that some containers are more forgiving than others--OC4J and Websphere did not complain about it, but JBoss gave an error message and would not deploy until this was fixed.)
Similar Messages
-
My ipod does not say i message but my iphone does
when i text on my message on my iphone it says imessage but when i try texting on my itouch it does not say any thing. i was woundering if it would be using imessage and will it be free?
I will not since there is no way to charge you on the iPod. There is not data plan for the iPod. It is aways free to you/the iPod user.
-
how do i get the three word option back during text messaging?
The following link has instructions: http://appleinsider.com/articles/14/09/26/how-to-customize-hide-or-remove-quickt ype-suggestions-with-the-ios-8-keyboard
-
Why has the Adobe Paper extension for PS CC disappeared from the Extension menu?
And, of course, as soon as it isn't 3am, I realise that it is because I haven't run the programs in the background. Oh dear...
-
Dear Experts ,
I have observed various treads in which our experts ask for Message number and class .Exactly how does these things help us in solving the error ..plz explain in details ?
Regards
SarfrazHi,
Please goto SE91 you will get Message number and class
Message class is application area to which the error message belongs So by using massage number we find the where exactly error is.
So goto transaction se91 and enter the message class name,select the message and then try doing where used list records found. So it help to solve the problem.
Hope clear to you.
Regards,
R.Brahmankar -
Message Transformation Bean - Usage of external classes
Hi SDNers,
I am planning to write an external Java class to be loaded from AF_Modules/MessageTransformBean . The idea is simple, I want my class to handle an extra level of hierarchy in FCC process. I know writing the Java class which is as generic as the one provided by SAP is too complex. But I just want it for some specific requirements, so I dont intend to make it as a generic class.
Should the external class that I write implement the interface Transform? If so, what is the jar file that contains this interface and where can I find this jar file in my XI installation?
Also, what is the jar file that contains the standard class com.sap.aii.messaging.adapter.Conversion that gets loaded by default while using the MessageTransformBean?
If you have already tried with similar requirements, please share your experience on the same.
Thanks
JaishankarYou can use the same module in J2SE and J2EE adapter without change.
I recommend to install a J2SE adapter engine on a local PC for testing.
I have found a sample code from previous tests:
package sample;
import com.sap.aii.messaging.adapter.Parameter;
import com.sap.aii.messaging.adapter.trans.Transform;
import com.sap.aii.messaging.adapter.trans.*;
import java.io.*;
public class MyModule extends Transform {
Parameter parameter;
String filename;
public void init(TransformConfig config) throws TransformException{
super.init(config);
parameter = (Parameter) config.getParameters("Parameter");
filename = (String) parameter.get("filename");
// obligatory method service
public void service(TransformRequest request, TransformResponse response) throws TransformException {
// Get the input stream for request message
InputStream in = (InputStream) request.getMessage();
// Get output stream for response message
OutputStream out = (OutputStream) response.getMessage(Transform.MT_OutputStream);
try{
execute(in,out);
} catch (Exception e) {
throw new TransformException("TransformException: Error converting Message " + e.getMessage(), e);
public void execute(InputStream in, OutputStream out) throws Exception{
String filename = (String) transformConfig.getParameters("FileName");
if (filename == null){
filename = "notfound.txt";
// open file stream
OutputStream fileOut = new FileOutputStream(new File(filename));
// copy input stream to output stream and to file
int c;
while ((c = in.read()) != -1) {
fileOut.write(c);
out.write(c);
// main Methode, for local testing. A local XML file is expected.
public static void main (String[] args) {
try {
// Define Input stream and output stream from file
InputStream in = new FileInputStream(new File("source.xml"));
OutputStream out = new FileOutputStream(new File("target.xml"));
// call Mapping
MyModule map = new MyModule();
map.execute(in,out);
} catch (Throwable t) {
t.printStackTrace();
System.exit(0); -
WebLogic 10 and EJB 3.0 for Message Driven Bean
Hi,
I am trying to deploy Message Driven Bean using EJB3.0 on weblogic 10. I am using annotations and don't want to use deployment descriptors.
The Bean class:
CalculatorBean.java
import javax.ejb.*;
import javax.jms.*;
import java.sql.Timestamp;
import java.util.StringTokenizer;
@MessageDriven(activationConfig =
@ActivationConfigProperty(propertyName="destinationType",
propertyValue="javax.jms.Queue"),
@ActivationConfigProperty(propertyName="destination",
propertyValue="queue/mdb")
public class CalculatorBean implements MessageListener {
public void onMessage (Message msg) {
TextMessage tmsg=null;
try {
if (msg instanceof TextMessage) {
tmsg = (TextMessage) msg;
System.out.println
("MESSAGE BEAN1: Message received: "
+ tmsg.getText());
} else {
System.out.println
("Message of wrong type1: "
+ msg.getClass().getName());
catch (JMSException e) {
e.printStackTrace();
catch (Throwable te) {
te.printStackTrace();
My client:
import javax.naming.*;
import javax.naming.InitialContext;
import java.text.*;
import javax.jms.*;
public class MsgClient {
public static void main(String args[])
QueueConnection cnn=null;
QueueSender sender=null;
QueueSession sess=null;
Queue queue=null;
try {
java.util.Properties p = new java.util.Properties();
p.put("java.naming.factory.initial","weblogic.jndi.WLInitialContextFactory");
p.put("java.naming.provider.url","t3://10.6.74.79:7001");
Context ctx=new InitialContext(p);
//InitialContext ctx=new InitialContext(p);
queue = (Queue)ctx.lookup("queue/mdb");
QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup("ConnectionFactory");
cnn = factory.createQueueConnection();
sess= cnn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
sender = sess.createSender(queue);
TextMessage message = sess.createTextMessage();
message.setText("This is message by Gurumurthy" );
System.out.println("Sending message: " +message.getText());
sender.send(message);
sess.close();
catch (Exception e)
e.printStackTrace();
I am compiling and creating jar file for this class. Then I am creating a .ear file for this.
The meta-inf/application.xml contains the following:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/j2ee" version="1.4"
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/application_1_4.xsd">
<display-name>MDBWorking1</display-name>
<description>Application description</description>
<module>
<ejb>MDBWorking1.jar</ejb>
</module>
</application>
I don't want to use deployment descriptor (ejb-jar.xml or weblogic-ejb-jar-xml), because I want to utilize the annotation feature of EJB3.0
So, after creating the .ear file for this, and try to deploy on weblogic 10, I get the following error:
An error occurred during activation of changes, please see the log for details.
Exception preparing module: EJBModule(MDBWorking1.jar) Unable to deploy EJB: CalculatorBean from MDBWorking1.jar: [EJB:011113]Error: The Message Driven Bean 'CalculatorBean(Application: MDBWorking1, EJBComponent: MDBWorking1.jar)', does not have a message destination configured. The message destination must be set using a message-destination-link, destination-resource-link, destination-jndi-name or a resource-adapter-jndi-name.
Substituted for missing class [EJB - 11113]Error: The Message Driven Bean 'CalculatorBean(Application: MDBWorking1, EJBComponent: MDBWorking1.jar)', does not have a message destination configured. The message destination must be set using a message-destination-link, destination-resource-link, destination-jndi-name or a resource-adapter-jndi-name.
How to solve this?
Note:
I don't want to use Deployment Descriptor and all I want to use is EJB3.0's annotation feature.
Thanks,
GuruDear gurubbc,
I don't know if it still matters to you but you can use the javax.ejb.MessageDriven annotation to point your bean on your queue. I had the same issue like you but i could not solve it properly by switchihg to weblogic.ejb.MessageDriven.
Use the following annotation and it should work out:
@MessageDriven
(mappedName = "queue/mdb",
name = "CalculatorBean",
activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
Here you can see that the mappedName is the JNDI name of the queue you are trying to connect to. The name is the name for your Bean, and the only property passed is the destination type.
Hope this helps.
Cheers,
Istvan -
Error while deploying a message driven bean
I am deployeing a MDB which is done successfully but the message is not retrieved(No message in teh queue). The following description is given in the log file.
#1.5#0016E6197593004B0000000B000013040004288DE20D6CD8#1170489754872#com.sap.security.core.policy.PolicyInfoManagerImpl##com.sap.security.core.policy.PolicyInfoManagerImpl.copyApplicationConfiguration#Administrator#523####e5dbec01b35c11db90e70016e6197593#SAPEngine_Application_Thread[impl:3]_39##0#0#Error#1#/System/Security/WS/SecurityProtocol#Java###An error occured while copying configurations for application . Reason: #3#sap.com/MessageEAR#com.sap.engine.frame.core.configuration.NameNotFoundException#A configuration with the path "webservices/services/sap.com/MessageEAR" does not exist.#
Can you please tell where to look for it and what to do?the session bean is ::
public class SenderBean implements SessionBean {
public static final boolean DEBUG = false;
private SessionContext ctx;
private TopicConnectionFactory factory;
private TopicConnection connection;
private Topic topic;
public SenderBean() {
log("constructor");
public void ejbCreateSender() throws CreateException {
log("ejbCreate");
try {
InitialContext naming = new InitialContext();
factory = (TopicConnectionFactory)naming.lookup("jmsfactory/default/ExceptionTopicFactory");
topic = (Topic)naming.lookup("jmstopics/default/ExceptionTopic");
log("factory: " + factory);
allocateResources();
} catch (Exception exc) {
log("exception occured during ejbCreate().");
throw new CreateException("Unexpected exception in ejbCreate().");
public void ejbCreate() throws CreateException {
public void ejbActivate() {
log("ejbActivate");
try {
allocateResources();
} catch (Exception exc) {
exc.printStackTrace();
public void ejbPassivate() {
log("ejbPassivate");
try {
releaseResources();
} catch (Exception exc) {
exc.printStackTrace();
public void ejbRemove() {
log("ejbRemove");
public void setSessionContext(SessionContext _ctx) {
log("setSessionContext");
ctx = _ctx;
public void sendMessage(String text) throws MessageNotSentException {
log("sendMessage");
log("text = " + text);
TopicSession session = null;
try {
session = connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
log("topic = " + topic);
TopicPublisher publisher = session.createPublisher(topic);
TextMessage textMessage = session.createTextMessage();
textMessage.setText(text);
publisher.publish(textMessage);
System.out.println("Message Sent");
log("message sent");
} catch (JMSException jmse) {
jmse.printStackTrace();
throw new MessageNotSentException(jmse.toString());
} finally {
try {
if (session != null) {
session.close();
} catch (Exception exc) {
private void releaseResources() throws JMSException {
connection.close();
connection = null;
private void allocateResources() throws JMSException {
connection = factory.createTopicConnection();
log("connection = " + connection);
connection.start();
log("connection started");
private void log(String message) {
if (DEBUG) {
System.out.println("SenderBean: " + message);
the mdb is::
public class MessageDisplayBean implements MessageDrivenBean, MessageListener {
public static final boolean DEBUG = false;
private MessageDrivenContext ctx;
private QueueConnectionFactory factory;
private QueueConnection connection;
private Queue queue;
public MessageDisplayBean() {
System.out.println("In constructor");
log("constructor");
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage)message;
try {
String text = textMessage.getText();
log("message received. Text follows:\n\n " + text + "\n\n");
connection = factory.createQueueConnection();
connection.start();
QueueSession session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
TextMessage confirmation = session.createTextMessage();
confirmation.setText("Message \""+ textMessage.getText() + "\" received.");
//queue = session.createQueue("ConfirmationQueue");
QueueSender sender = session.createSender(queue);
sender.send(confirmation);
session.close();
connection.close();
System.out.println("Message received");
} catch (javax.jms.JMSException jmse) {
public void ejbRemove() {
log("ejbRemove()");
public void setMessageDrivenContext(MessageDrivenContext _ctx) {
log("setMessageDrivenContext()");
ctx = _ctx;
System.out.println("In context");
public void ejbCreate() {
try {
System.out.println("In ejbcreate");
InitialContext naming = new InitialContext();
factory = (QueueConnectionFactory)naming.lookup("jmsfactory/default/ExceptionQueueFactory");
queue = (Queue)naming.lookup("jmsqueues/default/ExceptionQueue");
log("factory: " + factory);
} catch (Exception exc) {
log("exception occured during ejbCreate().");
log("ejbCreate()");
private void log(String str) {
if (DEBUG) {
System.out.println("MessageDisplayBean: " + str);
th ejb-j2ee-engine.xml is::
<ejb-j2ee-engine>
<enterprise-beans>
<enterprise-bean>
<ejb-name>MessageDisplayBean</ejb-name>
<jndi-name>MessageDisplayBean</jndi-name>
<message-props>
<destination-name>ExceptionTopic</destination-name>
<connection-factory-name>ExceptionTopicFactory</connection-factory-name>
</message-props>
</enterprise-bean>
<enterprise-bean>
<ejb-name>MessageSender</ejb-name>
<jndi-name>MessageSender</jndi-name>
<session-props/>
</enterprise-bean>
</enterprise-beans>
</ejb-j2ee-engine>
the ejb-jar.xml is::
<ejb-jar>
<display-name> Message Driver Bean Example </display-name>
<enterprise-beans>
<session>
<display-name> MessageSender </display-name>
<ejb-name>MessageSender</ejb-name>
<home>com.sap.message.sender.SenderHome</home>
<remote>com.sap.message.sender.Sender</remote>
<local-home>com.sap.message.sender.SenderLocalHome</local-home>
<local>com.sap.message.sender.SenderLocal</local>
<ejb-class>com.sap.message.sender.SenderBean</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
<ejb-local-ref>
<ejb-ref-name>ejb/SenderBean</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>com.sap.message.sender.SenderLocalHome</local-home>
<local>com.sap.message.sender.SenderLocal</local>
<ejb-link>MyEJB.jar#MessageSender</ejb-link>
</ejb-local-ref>
<resource-ref>
<res-ref-name>ExceptionTopicFactory</res-ref-name>
<res-type>javax.jms.TopicConnectionFactory</res-type>
<res-auth> Container</res-auth>
</resource-ref>
<resource-env-ref>
<resource-env-ref-name>ExceptionTopic </resource-env-ref-name>
<resource-env-ref-type> javax.jms.Topic </resource-env-ref-type>
</resource-env-ref>
</session>
<message-driven>
<ejb-name>MessageDisplayBean</ejb-name>
<ejb-class>com.sap.message.mdb.MessageDisplayBean</ejb-class>
<transaction-type>Container</transaction-type>
<message-driven-destination>
<destination-type>javax.jms.Topic</destination-type>
</message-driven-destination>
<resource-ref>
<res-ref-name> ExceptionQueueFactory </res-ref-name>
<res-type> javax.jms.QueueConnectionFactory </res-type>
<res-auth> Container </res-auth>
</resource-ref>
<resource-env-ref>
<resource-env-ref-name> ExceptionQueue </resource-env-ref-name>
<resource-env-ref-type> javax.jms.Queue </resource-env-ref-type>
</resource-env-ref>
</message-driven>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>MessageDisplayBean</ejb-name>
<method-name>onMessage</method-name>
</method>
<trans-attribute> NotSupported </trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar> -
Message Driven Bean: problem with @RunAs annotation
I am having a problem using the @RunAs annotation in a message driven bean.
I would like the code in my onMessage() method to be executed with a specific role/user, so I want to use the @RunAs annotation to achieve this.
I am running weblogic 10.0.
I have created the following in weblogic console:
- Group "TestGroup"
- User "TestUser", member of "TestGroup"
- Global Role "TestRole", role condition: "Group : TestGroup"
The MDB:
package be.cegeka.test.mdb;
import javax.annotation.Resource;
import javax.annotation.security.RunAs;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.ejb.MessageDrivenContext;
import javax.jms.Message;
import javax.jms.MessageListener;
@MessageDriven(
mappedName = "testQueue",
name = "TestMDB",
activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue")
@RunAs("TestRole")
public class TestMDB implements MessageListener {
@Resource
private MessageDrivenContext mdContext;
* {@inheritDoc}}
public void onMessage(Message msg) {
System.out.println("Handling message for user "
+ mdContext.getCallerPrincipal().getName());
}[u]The ejb-jar.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
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/ejb-jar_3_0.xsd"
version="3.0">
<assembly-descriptor>
<security-role>
<description>
Test Role.
</description>
<role-name>TestRole</role-name>
</security-role>
</assembly-descriptor>
</ejb-jar>
The weblogic-ejb-jar.xml file:
<weblogic-ejb-jar xmlns="http://www.bea.com/ns/weblogic/10.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/ns/weblogic/10.0 http://www.bea.com/ns/weblogic/10.0/weblogic-ejb-jar.xsd">
<security-role-assignment>
<role-name>TestRole</role-name>
<principal-name>TestUser</principal-name>
</security-role-assignment>
</weblogic-ejb-jar>I would have thought that the onMessage of the MDB would print "Handling message for user TestUser", but instead it prints "Handling message for user <anonymous>".
It seems as though the @RunAs annotation has no effect. Although I specified the role TestRole (mapped to the user TestUser), the code still seems to be executed by user anonymous.
Am I missing something?
Any help would be much appreciated! I've been looking at this poblem for quite a while now.Both beans (the MDB on WLS 10 and the session bean on WLS 8.1) use container managed transactions.
For the MDB I do not explicitly set the transaction attributes, so it should default to container managed transactions.
For the stateless session bean I have specified the following in the ejb-jar.xml file:
<ejb-jar>
<display-name>Weblogic8Service</display-name>
<enterprise-beans>
<session>
<ejb-name>Weblogic8Service</ejb-name>
<home>be.cegeka.rszv.test.session.Weblogic8ServiceRemoteHome</home>
<remote>be.cegeka.rszv.test.session.Weblogic8ServiceRemote</remote>
<ejb-class>be.cegeka.rszv.test.session.Weblogic8ServiceBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>Weblogic8Service</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>So as far as I understand it the transaction starts at the MDB (upon receival of a message). The transaction for the remote call to the stateless session bean (in the onMessage() of the MDB) is included in the transaction of the MDB and gets committed when the onMessage() method finishes and the transaction of the MDB itself gets committed.
Correct me if I'm wrong here. -
Exception in setting up message-driven bean container: [MQJMS1010: not impl
Problem
=======
We are trying to configure and deploy a Message Driven
Bean to listen on a WebSphere MQ queue, using LDAP to
share knowledge of the Queue & Connection Factory.
But when we start the Sun One domain we get an exception:
javax.jms.JMSException: MQJMS1010: not implemented
(see log file at the end of this email)
Can anybody help please ?
The configuration of the various components are listed
below:
WebSphere MQ Configuration
==========================
Version 5.3
Queue Manager
QM_Test
Queues
PATH_MFP.Case.Request
Queue Type: Local
Channels
Channel_Test
Channel Type: Server Connection
Protocol Type: TCP/IP
LDAP configuration
==================
ldap://localhost/o=mqtest
cn=MFP_LOCAL_Factory
javaFactory=com.ibm.mq.jms.MQQueueConnectionFactoryFactory
javaClassName=com.ibm.mq.jms.MQQueueConnectionFactory
javaReferenceAddress=#3#QMGR#QM_Test
javaReferenceAddress=#6#CHAN#Channel_Test
javaReferenceAddress=#14#TM#SYSTEM.DEFAULT.MODEL.QUEUE
cn=MFP_LOCAL_Case_Request_Queue
javaFactory=com.ibm.mq.jms.MQQueueFactory
javaClassName=com.ibm.mq.jms.MQQueue
javaReferenceAddress=#9#QU#PATH_MFP.Case.Request
javaReferenceAddress=#10#QMGR#QM_Test
EJB configuration
=================
ejb-jar.xml
<message-driven>
<display-name>ServerMessageDrivenBean</display-name>
<ejb-name>ServerMessageDrivenBean</ejb-name>
<ejb-class>nz.co.acc.emi.server.connector.mdb.ServerMessageDrivenBean</ejb-class>
<transaction-type>Container</transaction-type>
<message-driven-destination>
<destination-type>javax.jms.Queue</destination-type>
</message-driven-destination>
</message-driven>
sun-ejb-jar.xml
<ejb>
<ejb-name>ServerMessageDrivenBean</ejb-name>
<jndi-name>MFP_LOCAL_Case_Request_Queue</jndi-name>
<mdb-connection-factory>
<jndi-name>MFP_LOCAL_Factory</jndi-name>
</mdb-connection-factory>
</ejb>
Sun One configuration
=====================
MFPProcessing: JNDI: External Resources
MFP_LOCAL_Factory Enabled javax.jms.QueueConnectionFactory
JNDI Name: MFP_LOCAL_Factory
Resource Type: javax.jms.QueueConnectionFactory
JNDI Lookup: cn=MFP_LOCAL_Factory
Factoryclass: com.sun.jndi.ldap.LdapCtxFactory
Properties:
java.naming.provider.url ldap://localhost:389/o=mqtest
java.naming.security.authentication none
MFP_LOCAL_Case_Request_Queue Enabled javax.jms.Queue
JNDI Name: MFP_LOCAL_Case_Request_Queue
Resource Type: javax.jms.Queue
JNDI Lookup: cn=MFP_LOCAL_Case_Request_Queue
Factoryclass: com.sun.jndi.ldap.LdapCtxFactory
Properties:
java.naming.provider.url ldap://localhost:389/o=mqtest
server.xml
<mdb-container steady-pool-size="10" pool-resize-quantity="2" max-pool-size="60" idle-timeout-in-seconds="600" monitoring-enabled="true" log-level="FINEST" />
<jms-service port="1240" admin-user-name="admin" admin-password="admin" init-timeout-in-seconds="30" enabled="true" log-level="FINE" />
Sun One log file
================
server.log
[01/Mar/2004:10:06:48] INFO ( 657): CORE1116: Sun ONE Application Server 7.0.0_01
[01/Mar/2004:10:06:51] INFO ( 657): CORE5076: Using [Java HotSpot(TM) Server VM, Version 1.4.2_01] from [Sun Microsystems Inc.]
[01/Mar/2004:10:07:09] INFO ( 657): JMS5023: JMS service successfully started. Instance Name = domain1_MFPProcessing, Home = [C:/Sun/AppServer7/imq/bin].
[01/Mar/2004:10:07:13] INFO ( 657): JTS5014: Recoverable JTS instance, serverId = [100]
[01/Mar/2004:10:07:14] INFO ( 657): RAR5060: Install JDBC Datasources ...
[01/Mar/2004:10:07:14] INFO ( 657): RAR5059: Binding [JDBC DataSource Name: jdbc/MfsDataSourceJConn, Pool Name: MFSConnectionPool]
[01/Mar/2004:10:07:15] INFO ( 657): JMS5015: Install JMS resources ...
[01/Mar/2004:10:07:47] WARNING ( 657): [EntityContainer] Created EntityContainer....
[01/Mar/2004:10:07:49] INFO ( 657): LDR5010: All ejb(s) of [mfs] loaded successfully!
[01/Mar/2004:10:07:52] INFO ( 657): MDB00044: Deploying message-driven bean [emi:ServerMessageDrivenBean], consuming from [MFP_LOCAL_Case_Request_Queue]
[01/Mar/2004:10:07:52] FINE ( 657): Messages delivery is part of a container-managed tx
[01/Mar/2004:10:07:52] FINE ( 657): emi:ServerMessageDrivenBean:reconnect-delay-in-seconds=60, reconnect-max-retries=60, reconnect-enabled=true
[01/Mar/2004:10:07:53] INFO ( 657): MDB00028: [emi:ServerMessageDrivenBean]: Message-driven bean container using external connection factory object: [com.ibm.mq.jms.MQQueueConnectionFactory]
[01/Mar/2004:10:07:55] FINE ( 657): emi:ServerMessageDrivenBean: Setting message-driven bean pool max-pool-size=60, steady-pool-size=10, pool-resize-quantity=2, idle-timeout-in-seconds=600
[01/Mar/2004:10:07:55] FINE ( 657): Initializing server session factory
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@11576d7
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@2d5534
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@34d75f
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@127d15e
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@12297d7
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@1ecfeb
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@11576d7
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@2d5534
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@34d75f
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@127d15e
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@12297d7
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@1ecfeb
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@e4776b
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@15c458c
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@da1515
[01/Mar/2004:10:07:55] FINE ( 657): Created server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@19e3e24
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@e4776b
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@15c458c
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@da1515
[01/Mar/2004:10:07:55] FINEST ( 657): run(): before wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@19e3e24
[01/Mar/2004:10:07:55] INFO ( 657): MDB0001: Create message-driven bean pool with maximum pool size [60], bean idle timeout [600] seconds
[01/Mar/2004:10:07:55] SEVERE ( 657): MDB00030: [emi:ServerMessageDrivenBean]: Exception in setting up message-driven bean container: [MQJMS1010: not implemented]
[01/Mar/2004:10:07:55] FINE ( 657): MDB00018: [emi:ServerMessageDrivenBean]: Closing message-driven bean container connection
[01/Mar/2004:10:07:55] WARNING ( 657): [AbstractPool]: Cancelled pool timer task at: Mon Mar 01 10:07:55 NZDT 2004
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@11576d7
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@11576d7
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@2d5534
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@2d5534
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@2d5534
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@34d75f
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@34d75f
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@127d15e
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@127d15e
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@127d15e
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@11576d7
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@34d75f
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@12297d7
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@12297d7
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@1ecfeb
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@1ecfeb
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@e4776b
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@e4776b
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@12297d7
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@e4776b
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@15c458c
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@15c458c
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@da1515
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@da1515
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@1ecfeb
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@15c458c
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@da1515
[01/Mar/2004:10:07:55] FINEST ( 657): Thread[main,5,main]: in cleanup() ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@19e3e24
[01/Mar/2004:10:07:55] FINE ( 657): Destroyed server session: com.iplanet.ias.ejb.containers.IASServerSessionImpl@19e3e24
[01/Mar/2004:10:07:55] SEVERE ( 657): MDB00017: [ServerMessageDrivenBean]: Exception in creating message-driven bean container: [javax.jms.JMSException: MQJMS1010: not implemented]
[01/Mar/2004:10:07:55] FINEST ( 657): run(): after wait ... com.iplanet.ias.ejb.containers.IASServerSessionImpl@19e3e24
[01/Mar/2004:10:07:55] SEVERE ( 657): javax.jms.JMSException
javax.jms.JMSException: MQJMS1010: not implemented
at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:418)
at com.ibm.mq.jms.MQQueueConnection.createConnectionConsumer(MQQueueConnection.java:602)
at com.sun.enterprise.jms.ConnectionWrapperBase.createConnectionConsumer(ConnectionWrapperBase.java:151)
at com.sun.ejb.containers.MessageBeanHelperQueueImpl.doSetup(MessageBeanHelperQueueImpl.java:67)
at com.sun.ejb.containers.MessageBeanHelperBase.setup(MessageBeanHelperBase.java:419)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:206)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:173)
at com.iplanet.ias.server.AbstractLoader.loadEjbs(AbstractLoader.java:345)
at com.iplanet.ias.server.ApplicationLoader.load(ApplicationLoader.java:81)
at com.iplanet.ias.server.AbstractManager.load(AbstractManager.java:134)
at com.iplanet.ias.server.ApplicationLifecycle.onStartup(ApplicationLifecycle.java:168)
at com.iplanet.ias.server.ApplicationServer.onStartup(ApplicationServer.java:269)
at com.iplanet.ias.server.J2EERunner.confPostInit(J2EERunner.java:162)
[01/Mar/2004:10:07:55] SEVERE ( 657): EJB5090: Exception in creating EJB container [javax.jms.JMSException: MQJMS1010: not implemented]
[01/Mar/2004:10:07:55] SEVERE ( 657): appId=emi moduleName=emiEjb_jar ejbName=ServerMessageDrivenBean
[01/Mar/2004:10:07:55] SEVERE ( 657): LDR5004: UnExpected error occured while creating ejb container
javax.jms.JMSException: MQJMS1010: not implemented
at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:418)
at com.ibm.mq.jms.MQQueueConnection.createConnectionConsumer(MQQueueConnection.java:602)
at com.sun.enterprise.jms.ConnectionWrapperBase.createConnectionConsumer(ConnectionWrapperBase.java:151)
at com.sun.ejb.containers.MessageBeanHelperQueueImpl.doSetup(MessageBeanHelperQueueImpl.java:67)
at com.sun.ejb.containers.MessageBeanHelperBase.setup(MessageBeanHelperBase.java:419)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:206)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:173)
at com.iplanet.ias.server.AbstractLoader.loadEjbs(AbstractLoader.java:345)
at com.iplanet.ias.server.ApplicationLoader.load(ApplicationLoader.java:81)
at com.iplanet.ias.server.AbstractManager.load(AbstractManager.java:134)
at com.iplanet.ias.server.ApplicationLifecycle.onStartup(ApplicationLifecycle.java:168)
at com.iplanet.ias.server.ApplicationServer.onStartup(ApplicationServer.java:269)
at com.iplanet.ias.server.J2EERunner.confPostInit(J2EERunner.java:162)
[01/Mar/2004:10:07:55] WARNING ( 657): CORE5021: Application NOT loaded: [emi]
[01/Mar/2004:10:07:55] INFO ( 657): WEB0100: Loading web module [mfs:mfs.war] in virtual server [MFPProcessing] at [mfs]
[01/Mar/2004:10:08:31] INFO ( 657): HTTP3072: HTTP listener http-listener-1 [http://ch042dysz0405:1080] ready to accept requests
[01/Mar/2004:10:08:31] INFO ( 657): CORE3274: successful server startup
[01/Mar/2004:10:08:33] INFO ( 657): CORE5053: Application onReady complete.Hi,
You have not created the jms destination queue object
jms/Warehouse
Your server logs says it cannot find the destination queue object.It has got nothing to do with jndi name of your bean
Create jms destination queue object using
asadmin>create-jms-resource instance <instance_name> resourcetype javax.jms.Queue --property imqDestinationName=<NAme> jms/Warehouse
Then use list-jms-resources <instance_name> to
find if jms/Warehouse destionation queue object has been created.
Get back in case of any issues -
JNDI Naming Problem accessing Session Bean from Message Driven Bean
Hi,
I am facing a very strange problem in JNDI look up accessing a Session Bean from a Message Driven Bean. I have a session fa�ade bean(Remote Bean) which is being called from Struts Action class getting the home reference from the ServiceLocator (I have implemented ServiceLocator pattern to obtain JNDI reference for all EJBs). When I am calling the session fa�ade EJB from the Struts Action class everything is working fine.
But when I am trying to call the same EJB from my Message Driven Bean, I am getting a JNDI exception (NameNotFoundException - No Object bound to name �java:comp/env/ejb/EJBJNDIName�). I am trying to get the remote reference from the same ServiceLocator which is successfully providing me a reference while calling from the struts action class. But the same ServiceLocator is not able to provide me a reference while calling from the Message Driven Bean. If I use the JNDI name directly like �EJBJNDIName� in the lookup it is working fine. The lookup for the name is working fine and I am able to call the Session Fa�ade bean with that reference.
I am really not sure what exactly the problem is. If I have any problem in the ServiceLocator, it should have given me the same error while calling from Struts Action class. But it is working fine with the full name �java:comp/env/ejb/EJBJNDIName� calling from the struts action class. I am not sure whether Message Driven Bean has something to do with it. Why I am not able to get a reference of the EJB with the full name? Please Help.
Thanks
AmitHi Bhagya,
Thanks for your response. I think from EJB container we can call Local EJBs with the full JNDI name. The session facade bean which is being called is a remote bean. From the session facade bean I am calling a local stateless session bean for database access. I am getting the reference of the local EJB from my session facade bean with full JNDI name "java:comp/env/ejb/EJBJNDIName". It is working fine with out any problem. My servicelocator is able to provide me the reference of the local EJB from the session facade remote bean with Full JNDI name. I am only having this problem calling from the MDB. I am really not sure whether what is causing it?
Thanks
Amit -
Problem deploying message driven bean using Log4j
Hello all.
Using JDeveloper 11.1.1.0.2, I'm having a problem with a message driven bean I've created and associated with a JMS queue.
I've created an EJB Module project in my application (in which some other projects exist), and created the bean. A simple test of the bean, sending a message through the jms queue and printing it on system.out in the mdb onMessage() worked just fine.
However, when I add apache commons logging to my mdb, things start to go wrong. Running the project on the integrated weblogic 10.3 server just fails during deployment, due to a NoClassDefFoundError on org/apache/log4j/Logger.
In project properties -> libraries and classpath, I've added a log4j library (Log4j-1.2.14.jar) next to Commons Logging 1.0.4 but it doesn't seem to matter anything.
The code of my message bean:
@MessageDriven(mappedName = "weblogic.wsee.DefaultQueue")
public class MyMessageBean implements MessageListener {
// logger
private static Log sLog = LogFactory.getLog(MyMessageBean.class);
public void ejbCreate() {
public void ejbRemove() {
public void onMessage(Message message) {
MapMessage mapmsg = null;
try {
if (message instanceof MapMessage) {
mapmsg = (MapMessage)message;
boolean msgRedelivered = mapmsg.getJMSRedelivered();
String msgId = mapmsg.getJMSMessageID();
if (!msgRedelivered) {
sLog.debug("****** Successfully received message " + msgId);
} else {
sLog.debug("****** Successfully received redelivered message " + msgId);
// Haal de inhoud op:
int testInt = mapmsg.getInt("TestInt");
sLog.debug("TestInt:" + testInt);
} else {
sLog.debug("Message of wrong type: " +
message.getClass().getName());
} catch (Exception e) {
sLog.error("Fout in verwerken",e);
}Does anybody have any clue as to what I might be doing wrong or missing out here?
The complete stacktrace:
5-aug-2009 12:54:44 oracle.adf.share.config.ADFConfigFactory cleanUpApplicationState
INFO: Cleaning up application state
java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at weblogic.ejb.container.dd.xml.EjbAnnotationProcessor.processWLSAnnotations(EjbAnnotationProcessor.java:1705)
at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.processWLSAnnotations(EjbDescriptorReaderImpl.java:346)
at weblogic.ejb.container.dd.xml.EjbDescriptorReaderImpl.createReadOnlyDescriptorFromJarFile(EjbDescriptorReaderImpl.java:192)
at weblogic.ejb.spi.EjbDescriptorFactory.createReadOnlyDescriptorFromJarFile(EjbDescriptorFactory.java:93)
at weblogic.ejb.container.deployer.EJBModule.loadEJBDescriptor(EJBModule.java:1198)
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:380)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:42)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:16)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:155)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:197)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:89)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:723)
at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1190)
at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:248)
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:12)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:45)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: No suitable Log constructor [Ljava.lang.Class;@51b296 for org.apache.commons.logging.impl.Log4JLogger (Caused by java.lang.NoClassDefFoundError: org/apache/log4j/Logger) (Caused by org.apache.commons.logging.LogConfigurationException: No suitable Log constructor [Ljava.lang.Class;@51b296 for org.apache.commons.logging.impl.Log4JLogger (Caused by java.lang.NoClassDefFoundError: org/apache/log4j/Logger))
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
at nl.justid.dolores.mdb.MyMessageBean.<clinit>(MyMessageBean.java:19)
... 32 more
Caused by: org.apache.commons.logging.LogConfigurationException: No suitable Log constructor [Ljava.lang.Class;@51b296 for org.apache.commons.logging.impl.Log4JLogger (Caused by java.lang.NoClassDefFoundError: org/apache/log4j/Logger)
at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:413)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
... 36 more
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.getConstructor(Class.java:1657)
at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:410)
... 37 more
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
... 42 more
<5-aug-2009 12:54:44 uur CEST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID '1249469684085' for task '14'. Error is: 'weblogic.application.ModuleException: Exception preparing module: EJBModule(Dolores-MessageBeans-ejb)
[EJB:011023]An error occurred while reading the deployment descriptor. The error was:
null.'
weblogic.application.ModuleException: Exception preparing module: EJBModule(Dolores-MessageBeans-ejb)
[EJB:011023]An error occurred while reading the deployment descriptor. The error was:
null.
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:452)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
Truncated. see log file for complete stacktrace
java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
Truncated. see log file for complete stacktrace
>
5-aug-2009 12:54:44 oracle.adf.share.config.ADFConfigFactory cleanUpApplicationState
INFO: Cleaning up application state
<5-aug-2009 12:54:44 uur CEST> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating deploy task for application 'Dolores'.>
<5-aug-2009 12:54:44 uur CEST> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
weblogic.application.ModuleException: Exception preparing module: EJBModule(Dolores-MessageBeans-ejb)
[EJB:011023]An error occurred while reading the deployment descriptor. The error was:
null.
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:452)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:387)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:58)
Truncated. see log file for complete stacktrace
java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
Truncated. see log file for complete stacktrace
>
[Deployer:149034]An exception occurred for task [Deployer:149026]deploy application Dolores on DefaultServer.: Exception preparing module: EJBModule(Dolores-MessageBeans-ejb)
[EJB:011023]An error occurred while reading the deployment descriptor. The error was:
null..
weblogic.application.ModuleException: Exception preparing module: EJBModule(Dolores-MessageBeans-ejb)
[EJB:011023]An error occurred while reading the deployment descriptor. The error was:
null.
#### Deployment incomplete. #### Aug 5, 2009 12:54:44 PM
oracle.jdeveloper.deploy.DeployException
at oracle.jdevimpl.deploy.common.Jsr88RemoteDeployer.doDeploymentAction(Jsr88RemoteDeployer.java:247)
at oracle.jdevimpl.deploy.common.Jsr88RemoteDeployer.deployImpl(Jsr88RemoteDeployer.java:157)
at oracle.jdeveloper.deploy.common.AbstractDeployer.deploy(AbstractDeployer.java:94)
at oracle.jdevimpl.deploy.fwk.WrappedDeployer.deployImpl(WrappedDeployer.java:39)
at oracle.jdeveloper.deploy.common.AbstractDeployer.deploy(AbstractDeployer.java:94)
at oracle.jdeveloper.deploy.common.BatchDeployer.deployImpl(BatchDeployer.java:82)
at oracle.jdeveloper.deploy.common.AbstractDeployer.deploy(AbstractDeployer.java:94)
at oracle.jdevimpl.deploy.fwk.WrappedDeployer.deployImpl(WrappedDeployer.java:39)
at oracle.jdeveloper.deploy.common.AbstractDeployer.deploy(AbstractDeployer.java:94)
at oracle.jdevimpl.deploy.fwk.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:436)
at oracle.jdeveloper.deploy.DeploymentManager.deploy(DeploymentManager.java:209)
at oracle.jdevimpl.runner.adrs.AdrsStarter$5$1.run(AdrsStarter.java:1365)
Caused by: oracle.jdeveloper.deploy.DeployException
at oracle.jdevimpl.deploy.common.Jsr88DeploymentHelper.deployApplication(Jsr88DeploymentHelper.java:413)
at oracle.jdevimpl.deploy.common.Jsr88RemoteDeployer.doDeploymentAction(Jsr88RemoteDeployer.java:238)
... 11 more
Caused by: oracle.jdeveloper.deploy.DeployException: Deployment Failed
at oracle.jdevimpl.deploy.common.Jsr88DeploymentHelper.deployApplication(Jsr88DeploymentHelper.java:395)
... 12 more
#### Cannot run application Dolores due to error deploying to DefaultServer.
[Application Dolores stopped and undeployed from Server Instance DefaultServer]Thanks in advance!
Greetings,
Eelse
Edited by: Eelse on Aug 5, 2009 1:57 PM
Edited by: Eelse on Aug 5, 2009 5:39 PMCreating a new deployment profile (EAR) and including the original deployment (JAR) and the needed libraries (in a lib-directory) solved the problem.
-
Faulty ObjectMessage Payload in Message Driven Bean
To all,
I have a frustrating problem. I am using iPlanet application server 6.5 and Java Message Queue 2.0 beta. I have deployed a message driven bean into the application server. This bean expects ObjectMessage's. The bean successfully receives messages if they are standard java objects, but if the payload is an object of my own making - distributed as part of the deployment jar file - the container throws a RuntimeException when ObjectMessage.getObject() is invoked within onMessage(). This occurs whether I submit the message from outside the container or within it. Note that the sending of the message seems to be successful; no Exception is thrown.
The object causing the problem is a subclass of Exception and contains two instance variables: one an Exception, and one an instance of its own type. The particular object I am sending has zero depth, by which I mean both instance variables are null. I can see the message in the JMQ persistent store and see that this object has been serialized - or at least there is data in the persistent store that looks like it has been serialized.
Because the object can be serialized, I was led to believe that this is a classpath issue. However, I added the directory in the app server where the bean is deployed to the CLASSPATH variable in the iasenv.ksh file, and still no luck. The Exception is receive in the kjs log is a simple RuntimeException with the useless tag: The message could not be processed properly.
Any ideas? I would greatly appreciate any help.
MarcusHi Xiang,
I am assuming you are calling a synchronous recveive -- receiver.receive() in order to get the object message sent back from the MDB In that case the current thread classloader will be used. As you can see from the exception :
uwl.konplan.domino.provider.DominoItem with classloader: com.sap.engine.services.deploy.server.ApplicationLoade
That is the ApplicationLoader not something from the JMS. So i strongly doubt JMS is the problem.
Two things that you can check further :
1) When a deserialization is involved it will try to deserialize the full object graph. I.e. if your dominoItem has a field with class FOO, than the getObject() call must be able to classload FOO. Please check if some classes should be added as well in that portapp.xml of yours
2) Make sure that you test to instantiate the DominoObject right before you call getObject() and not in some different thread and logic in your application. Just to be sure that you can really classload it.
HTH
Peter -
Message Driven bean not able to listen to IBM MQ
Hello,
I am trying to implement a Mesage Driven Bean on Weblogic 7.0.This MDB
would listen on a particular queue of IBM MQ.
I have written a Weblogic startUp class which registers the factory
into Weblogic JNDI.Am I supposed to register the queue as well? I am
confused about the queue part. In the deployement descriptor of the
MDB (weblogic-ejb-jar.xml), we have the the <destination-jndi-name>
tag which should be the Queue name (in my case the IBM MQ queue ). Am
I supposed to register that in the Weblogic JNDI as well? I mean do I
add the Queue part in my Weblogic start-up class as well? Else how
will The Queue be obtained?
I am sort of confused on this . I get the error :
<Apr 16, 2003 3:17:14 PM EDT> <Warning> <EJB> <010061> <The
Message-Driven EJB: SimpleMDB is unable
to connect to the JMS destination: ivtQ. The EJB container will
automatically attempt to re-establis
h the connection with the JMS server. This warning may occur during
WebLogic Cluster start-up if the
JMS destination is located on another server. When the JMS server
connection is re-established, the
Message-Driven EJB will again receive JMS messages.
The Error was:
The JMS destination with the JNDI name: ivtQ could not be found.
Please ensure that the JNDI name in
the weblogic-ejb-jar.xml is correct, and the JMS destination has been
deployed.>
Please guide .I am trying to find out this information(which isn`t
very difficult i think ) since quite a few days now but I have got no
reply whatsoever.Please let me know if I am posting in the wrong group
or should I place my query in some other group where I can get a
better response.
Thanks and regards,
Milan Doshi
I'm not familiar with this stuff, but Greg is out, so
hey, I'll give it a shot. Some random thoughts:
It seems odd that the MDB can find the factory in JNDI but
not the queue.
Make sure that the startup class is actually running the code
you think it is. Put println's before and after the queue binding
code. And as the white-paper suggests, use the "failure is
fatal" option for the startup class so that you know
if the class worked or not...
Put some trace code in the ignored "NumberFormatException" catch below.
Carefully check you log to see if there are other warnings or errors.
Note that you may wish to use MQ JNDI instead of createQueue
in the startup class to look up the queue. The "createQueue()"
will not necessarily return an object that is JNDI "capable", (vendor
specific)... If this is the case, then you will need to
write a "wrapper" class that implements Serializable but
finds its wrapped factory via some sort of static lookup.
Tom, BEA
P.S. Note that WebLogic 8.1 provides the ability
to "wrap" and deploy foreign JMS resources administratively
via the console. No startup class needed...
Milan Doshi wrote:
> Thanks for the response.
>
> I have written the startUp class but I am getting the following error:
>
> The Error was:
> The JMS destination with the JNDI name: MySenderQueue could not be
> found. Please ensure that the
> JNDI name in the weblogic-ejb-jar.xml is correct, and the JMS
> destination has been deployed.>
>
> =====
>
> My startup class is as follows:
>
> String qmPort = (String)args.get(QM_PORT_PROPERTY);
> String qmHost = (String)args.get(QM_HOST_PROPERTY);
> String qmName = (String)args.get(QM_NAME_PROPERTY);
>
> MQQueueConnectionFactory factory = new MQQueueConnectionFactory();
>
> factory.setQueueManager(qmName);
> factory.setHostName(qmHost);
> if (qmPort != null)
> {
> try
> {
> int portNum = Integer.parseInt(qmPort);
> factory.setPort(portNum);
> }
> catch (NumberFormatException ignore)
> {
>
> }
> }
> if (qmHost == null)
> {
> factory.setTransportType(JMSC.MQJMS_TP_BINDINGS_MQ);
>
>
> }
> else
> {
> factory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
> }
>
> InitialContext context = new InitialContext();
> context.bind(jndiName, factory);
>
> QueueConnection connection = factory.createQueueConnection();
> boolean transacted = false;
> QueueSession session = connection.createQueueSession( transacted,
> Session.AUTO_ACKNOWLEDGE);
> Queue ioQueue = session.createQueue("MySenderQueue");
>
> context.bind("MySenderQueue",ioQueue);
> context.close();
>
>
> ===================================================
>
> My Weblogic-ejb-jar.xml is like this:
>
> <weblogic-ejb-jar>
> <weblogic-enterprise-bean>
> <ejb-name>SimpleMDB</ejb-name>
> <message-driven-descriptor>
> <pool>
> <max-beans-in-free-pool>8</max-beans-in-free-pool>
> <initial-beans-in-free-pool>1</initial-beans-in-free-pool>
> </pool>
> <destination-jndi-name>MySenderQueue</destination-jndi-name>
> <connection-factory-jndi-name>
> MyQCF
> </connection-factory-jndi-name>
> </message-driven-descriptor>
> </weblogic-enterprise-bean>
> </weblogic-ejb-jar>
>
> ======================================================
>
> Can you please guide me what is wrong in registering the Queue?
>
> Thanks once again for the response,
>
> Milan Doshi
>
>
> "Greg Brail" <[email protected]> wrote in message news:<[email protected]>...
>
>>You don't have to use a startup class to do this unless you want to. If you
>>use IBM's "JMSAdmin" tool to register the MQ connection factory and
>>destination objects into a JNDI provider, then you need only specify the
>>right JNDI stuff in weblogic-ejb-jar.xml. You might want to look at the
>>white paper for more information on exactly how to do this:
>>
>>http://dev2dev.bea.com/resourcelibrary/whitepapers/jmsproviders.jsp
>>
>>However, there might be reasons to use the startup class anyway. With the
>>startup class, you don't have to mess with a JNDI provider for MQ. The white
>>paper also contains a sample startup class.
>>
>>If you do this with a startup class, you do indeed need to bind BOTH the
>>MQSeries ConnectionFactory and Queue objects into WebLogic JNDI. You then
>>need to make the MDB use those particular objects (the ones you created in
>>the startup class) for both the connection factory and the queue. The
>>resulting weblogic-ejb-jar.xml file would look like this:
>>
>><weblogic-ejb-jar>
>> <weblogic-enterprise-bean>
>> <ejb-name>YourMDBName</ejb-name>
>> <message-driven-descriptor>
>> <pool>
>> <max-beans-in-free-pool>8</max-beans-in-free-pool>
>> <initial-beans-in-free-pool>1</initial-beans-in-free-pool>
>> </pool>
>> <destination-jndi-name>
>> YourQueueNameFromTheStartupClass
>> </destination-jndi-name>
>> <connection-factory-jndi-name>
>> ConnectionFactoryNameFromTheStartupClass
>> </connection-factory-jndi-name>
>> </message-driven-descriptor>
>> </weblogic-enterprise-bean>
>></weblogic-ejb-jar>
>>
>>Hope this helps.
>>
>> greg
>>
>>"Milan Doshi" <[email protected]> wrote in message
>>news:[email protected]...
>>
>>>Hello,
>>>
>>>I am trying to implement a Mesage Driven Bean on Weblogic 7.0.This MDB
>>>would listen on a particular queue of IBM MQ.
>>>
>>>I have written a Weblogic startUp class which registers the factory
>>>into Weblogic JNDI.Am I supposed to register the queue as well? I am
>>>confused about the queue part. In the deployement descriptor of the
>>>MDB (weblogic-ejb-jar.xml), we have the the <destination-jndi-name>
>>>tag which should be the Queue name (in my case the IBM MQ queue ). Am
>>>I supposed to register that in the Weblogic JNDI as well? I mean do I
>>>add the Queue part in my Weblogic start-up class as well? Else how
>>>will The Queue be obtained?
>>>
>>>I am sort of confused on this . I get the error :
>>>
>>><Apr 16, 2003 3:17:14 PM EDT> <Warning> <EJB> <010061> <The
>>>Message-Driven EJB: SimpleMDB is unable
>>>to connect to the JMS destination: ivtQ. The EJB container will
>>>automatically attempt to re-establis
>>>h the connection with the JMS server. This warning may occur during
>>>WebLogic Cluster start-up if the
>>> JMS destination is located on another server. When the JMS server
>>>connection is re-established, the
>>> Message-Driven EJB will again receive JMS messages.
>>>The Error was:
>>>The JMS destination with the JNDI name: ivtQ could not be found.
>>>Please ensure that the JNDI name in
>>> the weblogic-ejb-jar.xml is correct, and the JMS destination has been
>>>deployed.>
>>>
>>>Please guide .I am trying to find out this information(which isn`t
>>>very difficult i think ) since quite a few days now but I have got no
>>>reply whatsoever.Please let me know if I am posting in the wrong group
>>>or should I place my query in some other group where I can get a
>>>better response.
>>>
>>>Thanks and regards,
>>>
>>>Milan Doshi
>>
-
Message Driven Bean Deployment for a JCA based inbound Connector in SAILFIN
This post is partly related to my previous post regarding message driven bean deployment issue in SAILFIN b12 application server. I have made another post to put my question to a more specific title with some additions. I am developing a JCA based resource adapter (i.e. connector). The inbound module of the connector listens on a specific port for incoming messages from a server (EIS). The port property and the endpoint interface (custom made message driven bean interface, that is InboundListener) has been specified in the connector's deployment descriptor. When a message reaches, the connector delivers it to the a message driven bean whose code is indicated in the following:
package com....;
import com....ra.facade.InboundListener;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
import java.util.logging.*;
* Entity class InboundMessageReceiverMDB
* @author efikayd
@MessageDriven(
mappedName = "InboundMessageReceiverMDB",
messageListenerInterface = com......ra.facade.InboundListener.class,
activationConfig = {
@ActivationConfigProperty(
propertyName = "listenerPort", propertyValue = "12345"),
@ActivationConfigProperty(
propertyName="ConnectionFactoryJndiName", propertyValue="RAjms/MyQCF"),
@ActivationConfigProperty(
propertyName="DestinationName", propertyValue="MyQueue"),
@ActivationConfigProperty(
propertyName="DestinationType", propertyValue="javax.jms.Queue")
public class InboundMessageReceiverMDB implements InboundListener, MessageListener {
private static final Logger logger = Logger.getLogger("com.xyz.inbound.InboundMessageReceiverMDB");
/** Creates a new instance of InboundMessageReceiverMDB */
public InboundMessageReceiverMDB() {
public void onMessage(Message message) {
public void receiveMessage(String message) {
logger.log(Level.SEVERE, "CLASS: " + getClass().getName() + "METHOD: receiveMessage() ==> Message received...: " + message);
The listener interface is the following:
package com...ra.facade;
public interface InboundListener{
public void receiveMessage(String message);
I have set the JMS resource and the queue properties on the admin console of the SAILFIN instance that is locally installed on my Linux machine (Suse 9 - kernel number: 2.6.5-7.244) in the following manner:
ConnectionFactory:
JNDI Name: RAjms/MyQCF
Pool Name: RAjms/MyQCF
Type: javax.jms.ConnectionFactory
Status: enabled
Property1 ==> Name: DestinationType Value: javax.jms.Queue
Property2 ==> Name: DestinationName Value: MyQueue
Destination (i.e. queue):
JNDIName: MyQueue
Physical Destination Name: MyQueue
status: enabled
Property1 ==> Name: DestinationType Value:javax.jms.Queue
Property2 ==> Name: DestinationName Value:MyQueue
When I first written this message driven bean, it was not implementing the MessageListener interface. It was only implementing my own InboundListener interface. I did this because JCA specification says that the endpoint (i.e. message driven bean ) is not supposed to make use of JMS and its MessageListener interface. It says it can support custom message listener interface so to say. Then I got the exceptions that are same as the exceptions stated below. So, I made the bean implement the JMS MessageListener interface in addtion to my InboundListener interface assuming that exceptions result from not including the JMS MessageListener interface. Then I generated the necessary JMS resources with configuration settings stated above in the application server. However, I am still getting the same exceptions (see below) and nothing has changed. Do you think the above configuration for the JMS resource is fine and appropriate to the activation configuration specifications in my message driven bean code? Am I missing something on this configuration? Below, I have indicated the message that I got on the linux terminal when I attempt to deploy the message driven bean and the related server log. Thank you very much in advance for your help.
Kind regards,
faydemir
PS: The 'restart' command in the following linux terminal outcome basically makes a call to a bash script which deploys the message driven bean to the SAILFIN application server. The resource adapter instance is already deployed on the application server before attempting to deploy the message driven bean. I am sure that the resource adapter successfully receives the messages from the EIS but it cannot deliver them to the endpoint (i.e.the message driven bean) since the bean is unable to be deployed correctly. I am using Netbeans IDE 5.5.1
WHILE DEPLOYING:
ws2089 [11:29am] [home/efikayd/bin] -> ./restart
Command deploy executed successfully with following warning messages: Error occurred during application loading phase. The application will not run properly. Please fix your application and redeploy.
WARNING: com.sun.enterprise.deployment.backend.IASDeploymentException: Error while loading EJB module [InboundReceiverMDBModule]. Please refer to the server log for more details.
ws2089 [11:29am] [home/efikayd/bin] ->
SERVER LOG:
[#|2008-01-03T11:29:00.542+0100|INFO|sun-appserver9.1|javax.enterprise.system.core|_ThreadID=10;_ThreadName=main;|Application server startup complete.|#]
[#|2008-01-03T11:29:09.482+0100|INFO|sun-appserver9.1|javax.enterprise.system.tools.admin|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;/tmp/s1astempdomain1server-1825660455/InboundReceiverMDBModule.jar;|ADM1006:Uploading the file to:[/tmp/s1astempdomain1server-1825660455/InboundReceiverMDBModule.jar]|#]
[#|2008-01-03T11:29:12.399+0100|INFO|sun-appserver9.1|javax.enterprise.system.tools.deployment|_ThreadID=18;_ThreadName=Thread-32;|deployed with moduleid = InboundReceiverMDBModule|#]
[#|2008-01-03T11:29:12.739+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.container.ejb.mdb|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;InboundMessageReceiverMDB;com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : InboundMessageReceiverMDB;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|MDB00017: [InboundMessageReceiverMDB]: Exception in creating message-driven bean container: [com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : InboundMessageReceiverMDB]|#]
[#|2008-01-03T11:29:12.739+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.container.ejb.mdb|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|com.sun.enterprise.connectors.ConnectorRuntimeException
com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : InboundMessageReceiverMDB
at com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.getPhysicalDestinationFromConfiguration(ActiveJmsResourceAdapter.java:1528)
at com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.updateMDBRuntimeInfo(ActiveJmsResourceAdapter.java:1379)
at com.sun.enterprise.connectors.inflow.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:170)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:209)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:280)
at com.sun.enterprise.server.AbstractLoader.loadEjbs(AbstractLoader.java:537)
at com.sun.enterprise.server.EJBModuleLoader.doLoad(EJBModuleLoader.java:171)
at com.sun.enterprise.server.AbstractLoader.load(AbstractLoader.java:245)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:233)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:188)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:420)
at com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:1004)
at com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:991)
at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:470)
at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:182)
at com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)
at com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:230)
at com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298)
at com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132)
at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:920)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:591)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:635)
at com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:773)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:381)
at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:364)
at com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:470)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)
at $Proxy1.invoke(Unknown Source)
at com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)
at com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:174)
at com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:69)
at com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:155)
at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:122)
at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:193)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:271)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:116)
|#]
[#|2008-01-03T11:29:12.742+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.container.ejb|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : InboundMessageReceiverMDB;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|EJB5090: Exception in creating EJB container [com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : InboundMessageReceiverMDB]|#]
[#|2008-01-03T11:29:12.742+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.container.ejb|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|appId=InboundReceiverMDBModule moduleName=_home_efikayd_SAILFINB12_sailfin_domains_domain1_applications_j2ee-modules_InboundReceiverMDBModule ejbName=InboundMessageReceiverMDB|#]
[#|2008-01-03T11:29:12.742+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.core.classloading|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|LDR5004: UnExpected error occured while creating ejb container
com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : InboundMessageReceiverMDB
at com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.getPhysicalDestinationFromConfiguration(ActiveJmsResourceAdapter.java:1528)
at com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.updateMDBRuntimeInfo(ActiveJmsResourceAdapter.java:1379)
at com.sun.enterprise.connectors.inflow.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:170)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:209)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:280)
at com.sun.enterprise.server.AbstractLoader.loadEjbs(AbstractLoader.java:537)
at com.sun.enterprise.server.EJBModuleLoader.doLoad(EJBModuleLoader.java:171)
at com.sun.enterprise.server.AbstractLoader.load(AbstractLoader.java:245)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:233)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:188)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:420)
at com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:1004)
at com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:991)
at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:470)
at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:182)
at com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)
at com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:230)
at com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298)
at com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132)
at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:920)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:591)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:635)
at com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:773)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:381)
at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:364)
at com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:470)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)
at $Proxy1.invoke(Unknown Source)
at com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)
at com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:174)
at com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:69)
at com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:155)
at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:122)
at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:193)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:271)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:116)
|#]
[#|2008-01-03T11:29:12.745+0100|WARNING|sun-appserver9.1|javax.enterprise.system.core|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|CORE5020: Error while loading ejb module|#]
[#|2008-01-03T11:29:12.747+0100|WARNING|sun-appserver9.1|javax.enterprise.system.tools.admin|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;Error while loading EJB module [InboundReceiverMDBModule]. Please refer to the server log for more details. ;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|ADM1075:Error on listening event:[Error while loading EJB module [InboundReceiverMDBModule]. Please refer to the server log for more details. ]|#]This post is partly related to my previous post regarding message driven bean deployment issue in SAILFIN b12 application server. I have made another post to put my question to a more specific title with some additions. I am developing a JCA based resource adapter (i.e. connector). The inbound module of the connector listens on a specific port for incoming messages from a server (EIS). The port property and the endpoint interface (custom made message driven bean interface, that is InboundListener) has been specified in the connector's deployment descriptor. When a message reaches, the connector delivers it to the a message driven bean whose code is indicated in the following:
package com....;
import com....ra.facade.InboundListener;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
import java.util.logging.*;
* Entity class InboundMessageReceiverMDB
* @author efikayd
@MessageDriven(
mappedName = "InboundMessageReceiverMDB",
messageListenerInterface = com......ra.facade.InboundListener.class,
activationConfig = {
@ActivationConfigProperty(
propertyName = "listenerPort", propertyValue = "12345"),
@ActivationConfigProperty(
propertyName="ConnectionFactoryJndiName", propertyValue="RAjms/MyQCF"),
@ActivationConfigProperty(
propertyName="DestinationName", propertyValue="MyQueue"),
@ActivationConfigProperty(
propertyName="DestinationType", propertyValue="javax.jms.Queue")
public class InboundMessageReceiverMDB implements InboundListener, MessageListener {
private static final Logger logger = Logger.getLogger("com.xyz.inbound.InboundMessageReceiverMDB");
/** Creates a new instance of InboundMessageReceiverMDB */
public InboundMessageReceiverMDB() {
public void onMessage(Message message) {
public void receiveMessage(String message) {
logger.log(Level.SEVERE, "CLASS: " + getClass().getName() + "METHOD: receiveMessage() ==> Message received...: " + message);
The listener interface is the following:
package com...ra.facade;
public interface InboundListener{
public void receiveMessage(String message);
I have set the JMS resource and the queue properties on the admin console of the SAILFIN instance that is locally installed on my Linux machine (Suse 9 - kernel number: 2.6.5-7.244) in the following manner:
ConnectionFactory:
JNDI Name: RAjms/MyQCF
Pool Name: RAjms/MyQCF
Type: javax.jms.ConnectionFactory
Status: enabled
Property1 ==> Name: DestinationType Value: javax.jms.Queue
Property2 ==> Name: DestinationName Value: MyQueue
Destination (i.e. queue):
JNDIName: MyQueue
Physical Destination Name: MyQueue
status: enabled
Property1 ==> Name: DestinationType Value:javax.jms.Queue
Property2 ==> Name: DestinationName Value:MyQueue
When I first written this message driven bean, it was not implementing the MessageListener interface. It was only implementing my own InboundListener interface. I did this because JCA specification says that the endpoint (i.e. message driven bean ) is not supposed to make use of JMS and its MessageListener interface. It says it can support custom message listener interface so to say. Then I got the exceptions that are same as the exceptions stated below. So, I made the bean implement the JMS MessageListener interface in addtion to my InboundListener interface assuming that exceptions result from not including the JMS MessageListener interface. Then I generated the necessary JMS resources with configuration settings stated above in the application server. However, I am still getting the same exceptions (see below) and nothing has changed. Do you think the above configuration for the JMS resource is fine and appropriate to the activation configuration specifications in my message driven bean code? Am I missing something on this configuration? Below, I have indicated the message that I got on the linux terminal when I attempt to deploy the message driven bean and the related server log. Thank you very much in advance for your help.
Kind regards,
faydemir
PS: The 'restart' command in the following linux terminal outcome basically makes a call to a bash script which deploys the message driven bean to the SAILFIN application server. The resource adapter instance is already deployed on the application server before attempting to deploy the message driven bean. I am sure that the resource adapter successfully receives the messages from the EIS but it cannot deliver them to the endpoint (i.e.the message driven bean) since the bean is unable to be deployed correctly. I am using Netbeans IDE 5.5.1
WHILE DEPLOYING:
ws2089 [11:29am] [home/efikayd/bin] -> ./restart
Command deploy executed successfully with following warning messages: Error occurred during application loading phase. The application will not run properly. Please fix your application and redeploy.
WARNING: com.sun.enterprise.deployment.backend.IASDeploymentException: Error while loading EJB module [InboundReceiverMDBModule]. Please refer to the server log for more details.
ws2089 [11:29am] [home/efikayd/bin] ->
SERVER LOG:
[#|2008-01-03T11:29:00.542+0100|INFO|sun-appserver9.1|javax.enterprise.system.core|_ThreadID=10;_ThreadName=main;|Application server startup complete.|#]
[#|2008-01-03T11:29:09.482+0100|INFO|sun-appserver9.1|javax.enterprise.system.tools.admin|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;/tmp/s1astempdomain1server-1825660455/InboundReceiverMDBModule.jar;|ADM1006:Uploading the file to:[/tmp/s1astempdomain1server-1825660455/InboundReceiverMDBModule.jar]|#]
[#|2008-01-03T11:29:12.399+0100|INFO|sun-appserver9.1|javax.enterprise.system.tools.deployment|_ThreadID=18;_ThreadName=Thread-32;|deployed with moduleid = InboundReceiverMDBModule|#]
[#|2008-01-03T11:29:12.739+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.container.ejb.mdb|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;InboundMessageReceiverMDB;com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : InboundMessageReceiverMDB;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|MDB00017: [InboundMessageReceiverMDB]: Exception in creating message-driven bean container: [com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : InboundMessageReceiverMDB]|#]
[#|2008-01-03T11:29:12.739+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.container.ejb.mdb|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|com.sun.enterprise.connectors.ConnectorRuntimeException
com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : InboundMessageReceiverMDB
at com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.getPhysicalDestinationFromConfiguration(ActiveJmsResourceAdapter.java:1528)
at com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.updateMDBRuntimeInfo(ActiveJmsResourceAdapter.java:1379)
at com.sun.enterprise.connectors.inflow.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:170)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:209)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:280)
at com.sun.enterprise.server.AbstractLoader.loadEjbs(AbstractLoader.java:537)
at com.sun.enterprise.server.EJBModuleLoader.doLoad(EJBModuleLoader.java:171)
at com.sun.enterprise.server.AbstractLoader.load(AbstractLoader.java:245)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:233)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:188)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:420)
at com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:1004)
at com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:991)
at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:470)
at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:182)
at com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)
at com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:230)
at com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298)
at com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132)
at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:920)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:591)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:635)
at com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:773)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:381)
at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:364)
at com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:470)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)
at $Proxy1.invoke(Unknown Source)
at com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)
at com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:174)
at com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:69)
at com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:155)
at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:122)
at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:193)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:271)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:116)
|#]
[#|2008-01-03T11:29:12.742+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.container.ejb|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : InboundMessageReceiverMDB;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|EJB5090: Exception in creating EJB container [com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : InboundMessageReceiverMDB]|#]
[#|2008-01-03T11:29:12.742+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.container.ejb|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|appId=InboundReceiverMDBModule moduleName=_home_efikayd_SAILFINB12_sailfin_domains_domain1_applications_j2ee-modules_InboundReceiverMDBModule ejbName=InboundMessageReceiverMDB|#]
[#|2008-01-03T11:29:12.742+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.core.classloading|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|LDR5004: UnExpected error occured while creating ejb container
com.sun.enterprise.connectors.ConnectorRuntimeException: JMS resource not created : InboundMessageReceiverMDB
at com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.getPhysicalDestinationFromConfiguration(ActiveJmsResourceAdapter.java:1528)
at com.sun.enterprise.connectors.system.ActiveJmsResourceAdapter.updateMDBRuntimeInfo(ActiveJmsResourceAdapter.java:1379)
at com.sun.enterprise.connectors.inflow.ConnectorMessageBeanClient.setup(ConnectorMessageBeanClient.java:170)
at com.sun.ejb.containers.MessageBeanContainer.<init>(MessageBeanContainer.java:209)
at com.sun.ejb.containers.ContainerFactoryImpl.createContainer(ContainerFactoryImpl.java:280)
at com.sun.enterprise.server.AbstractLoader.loadEjbs(AbstractLoader.java:537)
at com.sun.enterprise.server.EJBModuleLoader.doLoad(EJBModuleLoader.java:171)
at com.sun.enterprise.server.AbstractLoader.load(AbstractLoader.java:245)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:233)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:188)
at com.sun.enterprise.server.StandAloneEJBModulesManager.moduleDeployed(StandAloneEJBModulesManager.java:420)
at com.sun.enterprise.admin.event.AdminEventMulticaster.invokeModuleDeployEventListener(AdminEventMulticaster.java:1004)
at com.sun.enterprise.admin.event.AdminEventMulticaster.handleModuleDeployEvent(AdminEventMulticaster.java:991)
at com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminEventMulticaster.java:470)
at com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(AdminEventMulticaster.java:182)
at com.sun.enterprise.admin.server.core.DeploymentNotificationHelper.multicastEvent(DeploymentNotificationHelper.java:308)
at com.sun.enterprise.deployment.phasing.DeploymentServiceUtils.multicastEvent(DeploymentServiceUtils.java:230)
at com.sun.enterprise.deployment.phasing.ServerDeploymentTarget.sendStartEvent(ServerDeploymentTarget.java:298)
at com.sun.enterprise.deployment.phasing.ApplicationStartPhase.runPhase(ApplicationStartPhase.java:132)
at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:920)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:591)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.start(PEDeploymentService.java:635)
at com.sun.enterprise.admin.mbeans.ApplicationsConfigMBean.start(ApplicationsConfigMBean.java:773)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:381)
at com.sun.enterprise.admin.MBeanHelper.invokeOperationInBean(MBeanHelper.java:364)
at com.sun.enterprise.admin.config.BaseConfigMBean.invoke(BaseConfigMBean.java:470)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:90)
at $Proxy1.invoke(Unknown Source)
at com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(SunoneInterceptor.java:304)
at com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:174)
at com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(InvokeCaller.java:69)
at com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.handle(MBeanServerRequestHandler.java:155)
at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.processRequest(RemoteJmxConnectorServlet.java:122)
at com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorServlet.doPost(RemoteJmxConnectorServlet.java:193)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:271)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:116)
|#]
[#|2008-01-03T11:29:12.745+0100|WARNING|sun-appserver9.1|javax.enterprise.system.core|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|CORE5020: Error while loading ejb module|#]
[#|2008-01-03T11:29:12.747+0100|WARNING|sun-appserver9.1|javax.enterprise.system.tools.admin|_ThreadID=17;_ThreadName=httpWorkerThread-4848-1;Error while loading EJB module [InboundReceiverMDBModule]. Please refer to the server log for more details. ;_RequestID=feb08bff-27af-402a-9fd5-b77b8bb5f046;|ADM1075:Error on listening event:[Error while loading EJB module [InboundReceiverMDBModule]. Please refer to the server log for more details. ]|#]
Maybe you are looking for
-
DVR continually crashing.
We seem to have issues with our DVR constantly and get frustrated because every time it happens we lose what is recorded on them. We recently got the model 7232 and after about 6 months of dealing with it we called for a new one. We received the re
-
Motion files no longer able to import into Final Cut
Hello all, Everytime I try to import a motion file into Final Cut I get an unrecogized file error. This just started but I also noticed that Motion has limited export options as well. I am wondering if anyone else is experiencing this problem.
-
How Do You Convert A DVD Movie To Play On The iPad
I am using iTunes 11.02 and I have an iPad 2. Is there a way using iTunes 11.02 to convert a DVD movie i purchaned so i can view it on my iPad2? Thanks.
-
Does WebLogic internally have its own webserver?
Hi All, Consider my environment: There are two Solaris servers, both having Application1 deployed over WebLogic. On the first server, when I start the application - OHS, WebLogic and then finally the application starts up fine. The below confirms tha
-
Using my ipod shuffle together with my car stereo
I tried to use a normal cable o listen to my ipod shuffle in the stereo I have in my car and it didn't work. Is there a special cable or it only works with the its own headset?