2009-02-04 6 views
39

Veri kaynağı disk belleği hizmetine bir sunucu kurmaya çalışıyorum. Kurduğum her şeyi topladım, böylece derleyicimi aradım ve değerlere geri dönüyorum, ancak “çağrılarım” çağrıları almıyorum. ÖzellikleFlex/LCDS Sunucu-veri kaynağı Sayfalama

:

public Collection fill(List fillArgs, int begin, int rows) 

yerine her zaman aracılığıyla sayfasına gerçek değerlerini alma, begin == -1 ve rows == -1 ile çağrılır. Ek olarak, hiçbir zaman (tüm uygulamam için her zaman doğru olarak döndürülür) hiçbir zaman çağrılmaz (0). JavaAdapter, Flex istemcisinden pageSize üstbilgisini almıyor çünkü bu hiç çağrılmadı gibi görünüyor.

Bu benim hedef yapılandırması:

<destination id="invoiceListDataService"> 
    <adapter ref="java-dao" /> 
    <properties> 
    <scope>session</scope> 
    <source>com.williams.finance.invoice.dao.InvoiceReviewListAssembler</source> 
    <network> 
     <paging enabled="true" pageSize="100" /> 
    </network> 
    <metadata> 
     <identity property="invoiceNumber"/> 
    </metadata> 
    </properties> 
</destination> 

Ve veri hizmeti çağırmak için benim Flex kodu:

myDataService = new DataService("invoiceListDataService"); 
myDataService.autoSyncEnabled=false; 
myDataService.fill(invoiceReviewListModel.invoiceList, params); 

Burada bir şey eksik? Bakmaya nereden başlayacaksınız?

+0

Bunun bakarak başlayacak değişken params. "Başla" ve "satır" bilgilerini içeren bir örnek olmalı? Belki esnek DataService bu parametreyi yok sayar. –

+1

@Travis, bunu bir süre önce sordunuz. Herhangi bir çözüm buldunuz mu? BTW: Ağ hata ayıklama ihtiyaçlarınız için [Charles Proxy] (http://www.charlesproxy.com/) adresini şiddetle öneriyorum.Esnek ve sunucu arasında gerçekten neyin geri gönderileceğini anlamanıza yardımcı olacak harika bir hata ayıklama aracıdır. –

cevap

1

İlk olarak, bağdaştırıcı tanımınız nedir? bu deneyin:

<adapters> 
    <adapter-definition class="flex.data.adapters.JavaAdapter" 
     id="java-dao"></adapter-definition> 
</adapters> 

İkinci olarak, sayfalama mülke özel = "true" öznitelik eklemek.

Dördüncüsü, Hedef tanımı, ona bir başvuru kalmadan adaptör = "java-Dao" add uygulama için

<paging enabled="true" pageSize="100" custom="true"/> 

Üçüncüsü, muhtemelen kapsamını değiştirmek. http://www.mail-archive.com/[email protected]/msg111746.html

:

<destination adapter="java-dao" id="invoiceListDataService"> 

Beşinci, benzer bir sorunun bazı yararlı yanıtlar için bu thread bakınız gerekli yöntemleri (useFillPage, Koleksiyon dolgu vb)

@Override 
public boolean useFillPage(List fillParameters) 
{ 
    // enabling paged-fill for all fills 
    return true; 
} 

ı iptal emin olun

1

Hedef yapılandırmanız tamamlanmış görünüyor. size montajcı AbstractAssembler uzanır

iki kez kontrol:

public class InvoiceReviewListAssembler extends AbstractAssembler 

ve en azından aşağıdaki geçersiz olduğunu:

@Override 
public int count(List arg0) { 
    return -1; // or return the collection length. 
} 

@Override 
public boolean useFillPage(List fillParameters) {  
    return true; 
} 

@Override 
public Collection fill(List fillParameters, 
         PropertySpecifier ps, 
         int startIndex, 
         int numItems) { 
    // TODO 
}