2011-07-05 30 views
1

我是一个Axis2/Webservice新手,我试图把一个简单的POJO变成一个web服务(下面的代码)。类PieceInfo@XmlRootElement注解,我有一个类ObjectFactory它在方法(代码如下)中返回一个PieceInfo。使用PieceInfo工作方法,使用List<PieceInfo>PieceInfo[]作为参数的方法抛出JAXB例外,例如java.util.List is not known to this context。我认为列表或数组应该工作正常。我究竟做错了什么?将数组作为Axis2 POJO Webservices中的参数?

@WebService (name="KMPService",targetNamespace="http://www.ict.ie.tss/") 
@MTOM 
public interface KMPServiceInterface { 

@WebMethod 
void updateRootInfo(String username, String password, PieceInfo info); 

@WebMethod 
PieceInfo getRootInfo(String username, String password); 

@WebMethod 
void put(String username, String password, List<PieceInfo> infoList); 

@WebMethod 
PieceInfo[] get(String username, String password, 
    PieceInfo[] infoList); 

@WebMethod 
void deleteEntries(String username, String password, 
    PieceInfo[] infoList); 

} 

ObjectFacotry:代替了java.util.List

@XmlRegistry 
public class ObjectFactory { 

public PieceInfo createPieceInfo(){ 
    return new PieceInfo(); 
} 

} 

回答

1

似乎的答案是:请勿使用Axis2。现在使用cxf snd一切都可以与列表和数组一起使用。

0

使用数组。

请记住,Web服务应该与所有东西互操作,例如.Net Web服务客户端,他们不知道如何构建java.util.List对象,但应该能够弄清楚如何构建PieceInfo对象数组。

希望能够消除您的“未知于此背景”问题。还要确保PieceInfo有一个零参数构造函数,以便Axis框架可以创建一个。

+0

数组也不起作用。如果我使用数组,我会得到:'[... model.PieceInfo;在本文中是未知的]。如果我只使用一个'PieceInfo'对象,它可以正常工作。只是不是他们的阵列或他们的名单。 – Carsten