È possibile utilizzare Spring Validators per convalidare i dati dalle richieste di servizi Web? O ancora di più, cosa dovrei cambiare con l'approccio seguente per renderlo possibile?Utilizzo di Spring Validator sui servizi Web
Il contesto preciso che ho è di seguito:
Ho un front-end web utilizzando Freemarker e controller che funziona bene con la convalida ad esempio utilizzando
<bean id="stockValidator" class="com.client.validator.StockValidator" />
Nel dispatcher-servlet.xml
Quindi in StockController la convalida avviene sulle richieste Post.
@RequestMapping(value = "/addStock", method = RequestMethod.POST)
public String addStudent(@ModelAttribute Stock stock,BindingResult result,
ModelMap model) {
StockValidator.validate(stock, result);
if (result.hasErrors()) {
//model.addAttribute("stock", stock);
return "stock";
} else {
StockService.save(stock);
model.addAttribute("stockId", stock.getStockId());
model.addAttribute("stockCode", stock.getStockCode());
model.addAttribute("stockName", stock.getStockName());
return "result";
}
}
Tuttavia i miei servizi web SOAP si basano Annotazione cablata nei servizi
import javax.jws.WebService;
import org.springframework.beans.factory.annotation.Autowired;
import com.olympus.viewtheworld.server.dao.StockDao;
import com.olympus.viewtheworld.server.service.StockService;
import com.olympus.viewtheworld.shared.domain.Stock;
@WebService(endpointInterface = "com.server.service.StockService")
public class StockServiceImpl implements StockService{
@Autowired
StockDao stockDao;
Questo è mappato nel servlet dispatcher in quanto tale:
<jaxws:endpoint id="stockService"
implementorClass="com.server.service.Impl.StockServiceImpl"
implementor="#stockServiceImpl"
address="/SoapService/stock">
<jaxws:serviceFactory>
<ref bean="jaxws-and-aegis-service-factory"/>
</jaxws:serviceFactory>
</jaxws:endpoint>
dispiace Sono uno sviluppatore di hobby penso che da qualche parte lungo la strada sono un po 'confuso nel modo migliore per avvicinarmi a questo setup. Se è più appropriato ricominciare da capo fammi sapere.
Cheers, Rob