我有一個帶有遠程接口的EJB模塊和一個企業應用程序客戶端(帶有一個包含所有遠程EJB接口的庫)。當我從客戶端的遠程EJB調用任何業務方法時,一切正常,除非EJB必須返回一個對象數組。遠程EJB返回數組/集合
因此,傳輸一個字符串可以正常工作,但是當我試圖發送一串字符串時,它不會工作。
有關於此的任何想法?我是否需要像這樣創建一個Serializable對象?或什麼?:
public class ArrayStrings() implements Serializable{
private String[] arrayS;
...
}
我不知道如何在遠程ejb調用中傳遞數組。有任何想法嗎?
查找波紋管我的代碼:
@Stateless
public class CategoryManagement extends AbstractFacade<Category> implements
CategoryManagementRemote {
@PersistenceContext(unitName = "On-lineSupermarketEJBPU")
private EntityManager em;
@Override
protected EntityManager getEntityManager() {
return em;
}
public CategoryManagement() {
super(Category.class);
}
@Override
public Category findCategoryByName (String name){
try{
Category c= (Category)em.createNamedQuery("Category.findByName").setParameter("name", name).getSingleResult();
for (Product p: c.getProductCollection()){
System.out.println(p.getName());
}
return c;
}catch(NullPointerException e){};
return null;
}
@Override
public List<String> getProductCollectionGivenCategory (String name){
Category c = findCategoryByName (name);
List<String> list=null;
for(Product p: c.getProductCollection()){
list.add(p.getName());
}
return list;
}
}
然後我的遠程接口(也就是在客戶端的類路徑的jar庫):
@Remote
public interface CategoryManagementRemote {
Category findCategoryByName (String name);
List<String> getProductCollectionGivenCategory (String name);
}
最後我從CategoryManagementRemote接口調用一個方法來打印出客戶端中的字符串數組:
public static void main(String[] args){
try{
InitialContext c = new InitialContext();
CategoryManagementRemote cm = (CategoryManagementRemote)
c.lookup("java:global/On-lineSupermarketEJB/CategoryManagement");
List<String> listProducts=
cm.getProductCollectionGivenCategory("Diary");
for (String p: listProducts){System.out.println(p);}
catch(Exception e){};
}
順便說一句我沒有得到任何錯誤(我想嘗試讀取字符串列表時,try/catch捕獲異常)。但列表不打印出來。 (我沒有收到字符串列表在客戶端(在剛發送1個它的作品單個String)
請出示實際的錯誤你得到和方法聲明來自遠程接口和實際的EJB –
好吧,'getProductCollectionGivenCategory'似乎有一個會導致NullPointerException的錯誤...如果你記錄了捕獲到的異常而不是吞嚥它,那麼你可能已經看到了這個錯誤 –
如果你是使用Eclipse鏈接,試着看看我的這個答案,我花了好幾天的時間試圖找出什麼是錯的:http://stackoverflow.com/questions/36112224/jpa-entity-is-not-correctly-passed-從ejb到表示層/ 37249863#37249863 – Leonardo