Possiedo il servizio Web Jaxws Soap. Il mio metodo "myMethod" ha un campo di tipo decimale.Il campo decimale del metodo JAX-WS è NULL quando viene passato il valore stringa
Ecco il mio web interfaccia di servizio:
@WebService(name = "myWs", targetNamespace = "someNamespace")
@Local
public interface myWsPortType {
@WebMethod
@RequestWrapper(localName = "myMethod", className = "com.example.MyMethodRequest")
public Result myMethod(@WebParam(name = "parameters", mode = Mode.IN) MyMethodParameters parameters);
}
Questa è classe parametro
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType()
public class MyMethodParameters implements java.io.Serializable {
@FieldValidation(maxLength = 12)
@XmlElement(name = "myField", required = false)
private java.math.BigDecimal myField;
}
Tutto funziona correttamente quando passo tipo corretto di dati in myField.
Ma, il problema è che quando chiamo myMethod e passare il valore stringa (invece che decimale) come parametro non viene generata un'eccezione e il valore myField s' è nulla
Ecco Sapone esempio di richiesta
<soapenv:Envelope>
<soapenv:Header/>
<soapenv:Body>
<iss:myMethod>
<parameters>
<myField>test</myField>
</parameters>
</iss:myMethod>
</soapenv:Body>
</soapenv:Envelope>
Come posso fare il mio ws gettano eccezione quando si passa il tipo di dati non corretti?
Condivide la XSD del servizio indica 'myField' di essere' xsd: decimal'? –
@AviramSegal Ecco uno snippet dal mio wsdl –
mariami