我試圖實現一個將通過HTTP協議接收數據的入站資源適配器。我有兩種實現方式:將Jetty用作內部服務器,並使用WildFly中的Web容器。我知道如何使用Jetty,但認爲Undertow使用是最好的。但是如何? WildFly在RAR中看不到@WebServlet。我如何告訴WildFly部署一個位於RAR的servlet?如何在WildFly的資源適配器中使用HTTP協議
回答
說到整個生態系統對我不利的地步,我通常會問自己我是否確定整個想法是正確的。你的想法似乎並不正確。不過,如果你確定的話,我會解釋一下接近你想要的東西的方法。
在資源適配器內部使用servlet的想法有點奇怪。實現入站HTTP適配器也很奇怪。在某種邏輯意義上,servlet容器本身就是一個入站HTTP資源適配器。它並沒有真正使用JCA容器,但它非常接近入站資源適配器所代表的含義。
不這樣做的另一個原因是資源適配器和應用程序部署具有完全不同的生命週期。儘管WAR/EAR部署代表了一種「充當其生命」的應用程序,但RAR語義卻有很大不同:資源適配器並不是做一些業務邏輯,而是爲其他部署提供接口。您可以將RAR捆綁到您的EAR中,但如果您的目標不是怪異巨石,那麼您將最終將RAR部署爲應用程序使用的單獨製品。資源適配器不應該包含任何特定的業務邏輯。如果您需要這樣做,請考慮重新考慮您是否首先需要應用程序服務器:與EJB和Web相比,JCA容器相當差,如果您不需要全部功能,Java SE可能會派上用場。
現在,如果你還是100%肯定你需要這個,讓我們來看看你的選擇:
您可以嘗試實行ServiceActivator - JBoss的特定起點爲自定義擴展。從此激活器中,您可以訪問UndertowService並手動執行servlet容器引導。 Here是Wildfly團隊以SA爲動力的人工製品的一個例子。由於您的問題很不尋常,我無法確認JCA部署是否會支持它,但似乎。
如果您不能只強制Wildfly的web容器來處理RAR部署,您可以回退到手動容器實例化。暗流本身只是內部Wildfly一個模塊,所以你可以在你的RAR的JAR指定模塊依賴條款訪問它表現就像這樣:然後
Dependencies: io.undertow
暗潮的班會通過你的類加載器提供給您在部署時,你會能夠實例化一個帶有自定義servlet的新服務器。
- 1. http協議的http適配器
- 2. Wildfly如何製作全局資源適配器
- 3. 在Wildfly上部署資源適配器WFLYJCA0046/IJ020066
- 4. 錯誤設置WildFly 10資源適配器(wmq.jmsra.rar)
- 5. 如何使用Zendesk的餘燼資源適配器的示例
- 6. 用於協議模式的資源
- 7. JBPM 4.4資源適配器
- 8. ORA-12560 TNS協議適配器錯誤
- 9. ORA-12560:TNS:協議適配器錯誤
- 10. ORA-12560:TNS:錯誤協議適配器
- 11. TNS:協議適配器錯誤
- 12. ORA-12560:TNS:協議適配器錯誤
- 13. 如何用對象推送協議連接藍牙適配器?
- 14. Cookie如何在HTTP協議中傳遞?
- 15. 從本地協議強制使用Javascript協議中的http協議
- 16. WebDav協議VS HTTP協議
- 17. mysql_connect()使用http協議
- 18. 如何在jboss中部署資源適配器
- 19. 如何在HTTP協議中配置「Content-Length」標頭
- 20. 如何解決ORA-12560:TNS協議適配器錯誤
- 21. 如何實現一個協議適配器
- 22. 如何在iPhone SDK 3.0中使用HTTP Live Streaming協議
- 23. 使用Three20與HTTP協議以外的其他協議
- 24. 在命令提示符中使用sqlplus時TNS協議適配器錯誤
- 25. 使用Javascript通過HTTP協議以外的協議連接服務器
- 26. 如何爲MQ資源適配器禁用XA事務?
- 27. HTTP代理如何使用HTTP協議?一個代理RFC?
- 28. Linux協議中的http協議實現在哪裏
- 29. 如何在協議中使用array.indexOf?
- 30. 如何在C中使用FTP協議?
是的,我早早地得出了同樣的答案。 –