Tomcat
Tomcat 7 及更高版本的組態問題
需要將 Tomcat 設定為忽略 Jetty SCI 註釋,以免 Tomcat 無意中選取 Jetty WebSocket ServerContainerInitializer 類別。如需此問題的更多資訊,請參閱 AMQ-6154 和 https://wiki.apache.org/tomcat/HowTo/FasterStartUp,並查閱您所使用版本的 Tomcat 文件,以正確排除 Tomcat 掃描 Jetty jar 檔案。
預先整合的 Tomcat 與 ActiveMQ Classic
Apache TomEE 是 完全整合 ActiveMQ Classic 的 Tomcat 發行版本。此處詳細說明的所有整合步驟都已完成。該堆疊支援注入 Topic、Queue 和 ConnectionFactory 參考,以及交易式傳送和傳遞。
類似以下內容無需設定即可直接使用
import javax.annotation.Resource; import javax.servlet.http.HttpServlet; import javax.jms.Topic; import javax.jms.Queue; import javax.jms.ConnectionFactory;
public class MyServet extends HttpServlet {
@Resource(name = "foo")
private Topic fooTopic;
@Resource(name = "bar")
private Queue barQueue;
@Resource
private ConnectionFactory connectionFactory;
手動整合 Tomcat 和 ActiveMQ Classic
請注意,手動將 ActiveMQ Classic 與 Tomcat 整合雖然允許注入 Topic、Queue 和 ConnectionFactory,但**不**支援交易式傳送和傳遞。
您應前往 Tomcat 文件並閱讀 JNDI 資源 HOW-TO,特別是:設定 Tomcat 的資源工廠。
ActiveMQ Classic 為其所有管理的物件(ConnectionFactory 和目的地)提供了現成的 JNDI 資源工廠。
您必須將其作為資源的工廠參數提供
<Context …> …
… </Context>
如果您使用 Tomcat 5.5 或更高版本,請嘗試改用此設定…
此外,別忘了將 ActiveMQ Classic 和相依的 jar 檔案放入 Tomcat 的共用 lib 目錄中。
在 Tomcat 5.5 或更高版本中建立目的地
這完全未經測試,但應該可以運作
使用 Tomcat 時的 JMX 提示
如果您想在 Tomcat 中使用 JMX,然後透過 JConsole 連線以檢視伺服器的 JMX MBean,請設定以下內容
CATALINA_OPTS=”$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false”