storm與spring框架整合問題

2022-09-23 13:06:09 字數 808 閱讀 3006

storm與spring框架整合問題

在進行storm與spring整合時,本來想著一次就能成功,抱著很大的希望可是執行時竟然報了個j**a.io.notserializableexception的異常。該異常要求被依賴注入的jar包實現序列化介面,但那些jar包都是別人開發的你不能乙個乙個都改掉原始碼才能用到專案裡。

再網上找一下還真有人遇到類似的問題,具體原因是對storm的spout和bolt的生命週期理解的不夠深刻。

一般來說spout/bolt的生命週期如下:

1.在提交了乙個topology之後(在nimbus所在的機器), 建立spout/bolt例項(spout/bolt在storm中統稱為component)並進行序列化.

2.將序列化的component傳送給所有的任務所在的機器

3.在每乙個任務上反序列化component.

4.在開始執行任務之前, 先執行component的初始化方法(bolt是prepare, spout是open).

因此component的初始化操作應該在prepare/open方法中進行, 而不是在例項化component的時候進行.

按照這種說法進行改造,結構該問題消失了。但接下來又有了新的問題:

caused by: org.xml.sax.saxparseexception: content is not allowed in prolog.

這個異常網上搜尋之後發現原來是由於*.xml檔案編碼的問題。原因是在從其他專案裡或者編輯工具編輯時,在檔案編碼中加入了bom頭的原因,於是用notepad++開啟xml檔案選擇去掉bom頭資訊,重新進行儲存即可。再次執行時一切ok。

HTML框架集與框架知識

標籤告知瀏覽器這個網頁是個框架集頁面,只是將瀏覽器視窗如何被分割成多個區域。它包含分割而成的多個區域及框架,而每個框架負責顯示乙個頁面 乙個簡單的框架,將瀏覽器垂直分割成兩個頁面的例子 瀏覽器不支援框架集時,將看到這樣的頁面 框架集可以巢狀使用 浮動框架iframe 浮動框架應用於body標籤中 超...

shiro許可權框架與spring框架輕鬆整合

shiro是乙個許可權框架,用於管理 的許可權,大到 登入過濾,小到乙個選單或按鈕是否顯示,shiro學習起來非常簡單,以下是shiro的執行流程圖 subject為當前使用者,當它訪問系統的時候,就會經過securitymanager安全管理器,安全管理器類似乙個中轉站,它實際上會讓realm類來...

shiro許可權框架與spring框架輕鬆整合

subject為當前使用者,當它訪問系統的時候,就會經過securitymanager安全管理器,安全管理器類似乙個中轉站,它實際上會讓realm類來處理使用者的認證和授權資訊,認證和授權說白了就是賬號登陸驗證和查詢使用者所具有的許可權,並將許可權封裝起來供securitymanager來管理的意思...