2013-05-20 77 views
0

我已經從基礎文件com.day創建了類com.xxx.cq.wcm.foundation.profile.impl.TnailImages的捆綁包。 cq.wcm.foundation.profile.impl.ProfileImages。servletengine無法發回最後一個塊:軟件導致連接中止:套接字寫入錯誤

這裏是改變我做這加時賽類

  1. 寬度和高度的默認基礎類ProfileImages有在TnailImages我們自己的默認寬度和高度。

  2. 選擇改變我們自己喜歡

    • @ scr.property NAME = 「sling.servlet.selectors」 values.0 = 「調整」

    • values.1 =「調整。小「

  3. 變量改爲private static final String THUMBNAIL =」small「;

  4. 元類型註釋不會爲CQ5.5編譯我改變了這種* @ scr.component元類型= 「假」

    • @Component(立即=真)

該軟件包編譯成功,我在OSGi felix控制檯中看到它,它處於啓動模式。即使這樣,我也重新啓動了這個捆綁包以及整個CQ5。

當我使用下面的標籤調用圖片

沒有任何地方的SPase

該servlet ThumbNailImages沒有被調用,我看到在error.log中以下錯誤

servletengine無法發送回最後一個塊:軟件導致連接中止:套接字寫入錯誤

這個圖像E不被顯示在頁面上,螢火蟲顯示加載失敗URL

默認IMG工作正常

類com.day.cq.wcm.foundation.profile.impl.ProfileImages可在

/libs/foundation/src/impl/src/main/java/com/day/cq/wcm/foundation/profile/impl/ProfileImages。java的

這裏是我的註解

* @Component(immediate = true) 
* @scr.service 
* @scr.property name="sling.servlet.resourceTypes" value="nt:file" 
* @scr.property name="sling.servlet.extensions" values.0="res" 
*       values.1="jpg" 
*       values.2="png" 
*       values.3="gif" 
* @scr.property name="sling.servlet.selectors" values.0="adjust" 
*            values.1="adjust.small" 
*/ 

看來,這個servlet不會被調用,當調用 http://xyz.com:4502/content/dam/geometrixx/portraits/scott_reynolds.jpg.adjust.small.jpg 我得到404 不能作爲請求/內容/大壩/ geometrixx /人像/ org.apache.sling.servlets.get.DefaultGetServlet中的scott_reynolds.jpg.adjust.small.jpg

3(2013-05-20 11:02:40)TIMER_END {2,resolveServlet(JcrNodeResource,type = dam: Asset,superType = null,path =/content/dam/geometrixx/portraits/scott_reynolds.jpg)}使用的servlet com.day.cq.dam.core.impl.servlet.BinaryProviderServlet 3(2013年5月20日11時02分四十秒)TIMER_END {2,ServletResolution} URI = /內容/壩/ geometrixx /畫像/ scott_reynolds。 jpg.adjust.small.jpg由Servlet處理= com.day.cq.dam.core.impl.servlet.BinaryProviderServlet

看來我的Servlet TnailImages沒有被調用,它總是默認使用servlet。

回答

0

如果您的servlet沒有被調用,您應該首先通過/system/console/components/system/console/services webconsole頁面來驗證它是否被正確註冊爲OSGi Servlet服務。驗證服務屬性是你的想法。

沒關係,您可以使用最近的請求控制檯頁面/system/console/requests來查看Sling如何解析測試請求以及它選擇處理它的Servlet或腳本。

最後一招是設置DEBUG日誌級別,看日誌從SlingServletResolver類的消息。

在你的情況下,問題是可能是你所訪問的scott_reynolds.jpg資源的資源類型不是nt:file,該演示圖像具有dam:Asset資源型香草CQ5.5系統。無論如何,/system/console/requests頁面會向您顯示。

+0

我查了日誌服務未註冊的,我嘗試了不同的各種註釋。如何獲得正確的服務屬性,您是否有示例或任何有用的鏈接。您正在使用Maven和Maven的SCR-插件爲您構建 – user1130906

+0

假設,你應該檢查目標/ SCR-插件生成/ OSGI-INF/serviceComponents.xml文件正確生成,包含你的服務的元數據。您也可以將您的項目與https://svn.apache.org/repos/asf/sling/trunk/samples/slingbucks/中的Slingbucks樣本進行比較,該樣本定義了一些簡單的服務。 –

相關問題