以下のコードはjavax.naming.NameNotFoundException
をスローします。 ?私は、サーバー上で個人的に私はそれが、このことにより、自動に作成されたと考えることを作成する必要があります@MessageDrivenはJBoss AS 5で動作しません
package web;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
@MessageDriven(mappedName="jms/txt",
activationConfig = { @ActivationConfigProperty(
propertyName = "destinationType", propertyValue = "javax.jms.Queue"
) })
public class FirstMDB implements MessageListener {
public void onMessage(Message message) {
}
}
:私はそれが5
package web;
import java.util.Properties;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.TextMessage;
import javax.naming.InitialContext;
import org.jboss.jms.server.connectionfactory.ConnectionFactory;
public class MyMDBClient {
public static void main(String[] args) {
QueueConnection cnn = null;
QueueSender sender = null;
QueueSession session = null;
InitialContext ctx;
try {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.factory.url.pkgs",
"org.jboss.naming");
props.setProperty("java.naming.provider.url", "127.0.0.1:1099");
ctx = new InitialContext(props);
Queue queue = (Queue) ctx.lookup("jms/txt");
QueueConnectionFactory factory = (QueueConnectionFactory)new ConnectionFactory();
cnn = factory.createQueueConnection();
session = cnn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
TextMessage msg = session.createTextMessage("Hello World");
sender = session.createSender(queue);
sender.send(msg);
System.out.println("Message sent successfully to remote queue.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
とMDBのJBoss ASでの問題のいくつかの種類であるかもしれないことを考えます表記は本当ですか?
>個人的にサーバー上に作成する必要がありますか?この表記によって自動的に作成されると思いますか? - JMSキューが聴取するBeanを定義することによってJMSキューが自動的に作成されるかどうかを確認しようとしていますか?そうであれば、答えはいいえです。実際のキューを自分で定義する必要があります。 –