尝试创建Web服务时,没有发现类错误的序列化程序

时间:2017-05-04 12:56:42

标签: java web-services soap wsdl jax-ws

我创建一个Web服务,当返回List时它工作正常 像这样:

@WebService
public class IndicatorWSImpl extends SpringBeanAutowiringSupport implements IndicatorWS {

@Autowired
private HomeIndicadoresReportService homeIndicadoresReportService;


@Override
public List<String> entidades() {

    homeIndicadoresReportService.buildValuesToGraph(resultMesAtual, selectedEntity, selectedBS, selectedTS,
            selectedFunctionality, filter, false);

    List<String> lista = new ArrayList<String>();

    for (EntityIndicatorVO entityIndicatorVO : resultMesAtual) {
        lista.add(entityIndicatorVO.getName());
    }


    return lista;
}

}

但是当我更改List的返回值时,他们无法在返回时创建此列表并出现此错误:

mai 04, 2017 9:44:20 AM org.apache.axis.Message writeTo
GRAVE: java.io.IOException:
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: java.io.IOException: No serializer found for class     com.santander.portalcio.backend.services.bsts.indicators.EntityIndicatorVO in registry org.apache.axis.encoding.TypeMappingDelegate@6186d47d
 faultActor: 
 faultNode: 
 faultDetail: 
{http://xml.apache.org/axis/}stackTrace:java.io.IOException: No serializer found for class com.santander.portalcio.backend.services.bsts.indicators.EntityIndicatorVO in registry org.apache.axis.encoding.TypeMappingDelegate@6186d47d
at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1507)
at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980)
at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:734)
at org.apache.axis.encoding.ser.ArraySerializer.serialize(ArraySerializer.java:425)
at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1504)
at 

这是列表返回的类:

@WebService
public class IndicatorWSImpl extends SpringBeanAutowiringSupport implements IndicatorWS {

@Autowired
private HomeIndicadoresReportService homeIndicadoresReportService;

@Override
public List<EntityIndicatorVO> entidades() {

    homeIndicadoresReportService.buildValuesToGraph(resultMesAtual, selectedEntity, selectedBS, selectedTS,
            selectedFunctionality, filter, false);


    return resultMesAtual;
}

}

这是VO课程:

public class EntityIndicatorVO extends IndicatorVO implements Serializable {

private static final long serialVersionUID = 1L;

private List<BSIndicatorVO> bsList;


public EntityIndicatorVO(Long id, String name) {
    super(id, name, 0d);
}

public EntityIndicatorVO() {
}

public void copy(EntityIndicatorVO entityInd) {
    super.copy(entityInd);
    setBsList(entityInd.getBsList());
}

public List<BSIndicatorVO> getBsList() {
    if (bsList == null) {
        bsList = new ArrayList<BSIndicatorVO>();
    }
    return bsList;
}

public void setBsList(List<BSIndicatorVO> bsList) {
    this.bsList = bsList;
}

}

你能帮帮我吗?

1 个答案:

答案 0 :(得分:1)

您是否在Axis中配置了序列化程序?如果不是,您需要配置它。 Axis附带BeanSerializer

配置bean映射 BeanSerializer