Untitled
unknown
java
a year ago
3.4 kB
155
No Index
@Endpoint
@Validated
public class PerlasEndpoint {
@Autowired
PerlasService perlasService;
private static final String SOAP_NAMESPACE="http://schemas.xmlsoap.org/soap/envelope/";
@PayloadRoot(namespace = SOAP_NAMESPACE,localPart = "idcheck")
@ResponsePayload
public PerlasCheckIdResponseDTO checkId(@Valid @RequestPayload PerlasCheckIdRequestDTO perlasCheckIdRequestDTO) {
Optional<PerlasCheckIdResponseDTO> validationResult=perlasService.validateCheckIdRequest(perlasCheckIdRequestDTO);
if (validationResult.isPresent()) {
return validationResult.get();
}
PerlasCheckIdResponseDTO perlasCheckIdResponseDTO = perlasService.checkId(perlasCheckIdRequestDTO);
return perlasCheckIdResponseDTO;
}
@PayloadRoot(namespace = SOAP_NAMESPACE, localPart = "saleRequest")
@ResponsePayload
public PerlasSaleResponseDTO createSale(@Valid @RequestPayload PerlasSaleRequestDTO perlasSaleRequestDTO) {
PerlasSaleResponseDTO perlasSaleResponseDTO=perlasService.createSale(perlasSaleRequestDTO);
return perlasSaleResponseDTO;
}
}
////////////////////////////////////////////////////////////
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"userId",
"transactionId"
})
@XmlRootElement(name = "idcheck", namespace = "http://schemas.xmlsoap.org/soap/envelope/")
@Data
public class PerlasCheckIdRequestDTO {
@NotNull(message = "userId cant be null")
@Size(max = 32, message = "userId too long")
@XmlElement(name = "userid", required = true, namespace = "http://schemas.xmlsoap.org/soap/envelope/")
private String userId;
@NotNull(message = "transactionId cant be null")
@Size(max = 100, message = "transactionId too long")
@XmlElement(name = "trans_id", required = true, namespace = "http://schemas.xmlsoap.org/soap/envelope/")
private String transactionId;
}
////////////////////////////////////////////////////////////
@EnableWs
@Configuration
public class PerlasSoapConfig extends WsConfigurerAdapter {
private final AppConfig appConfig;
public PerlasSoapConfig(AppConfig appConfig) {
this.appConfig = appConfig;
}
@Bean
public ServletRegistrationBean<MessageDispatcherServlet> messageDispatcherServlet(ApplicationContext applicationContext) {
MessageDispatcherServlet messageDispatcherServlet = new MessageDispatcherServlet();
messageDispatcherServlet.setApplicationContext(applicationContext);
return new ServletRegistrationBean<>(messageDispatcherServlet, "/perlas/*");
}
@Bean(name = "perlas")
public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema xsdSchema) {
DefaultWsdl11Definition defaultWsdl11Definition = new DefaultWsdl11Definition();
defaultWsdl11Definition.setPortTypeName("Perlas");
defaultWsdl11Definition.setLocationUri(appConfig.getPerlasLocationUri());
defaultWsdl11Definition.setTargetNamespace("http://schemas.xmlsoap.org/soap/envelope/");
defaultWsdl11Definition.setSchema(xsdSchema);
return defaultWsdl11Definition;
}
@Bean
public XsdSchema xsdSchema() {
return new SimpleXsdSchema(new ClassPathResource("perlas/perlas.xsd"));
}
}Editor is loading...
Leave a Comment