2012-12-20 12 views
5

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?

+0

Condivide la XSD del servizio indica 'myField' di essere' xsd: decimal'? –

+0

@AviramSegal Ecco uno snippet dal mio wsdl mariami

risposta

3

Sembra che lo schema XSD sia stato generato correttamente, ciò che manca è l'annotazione SchemaValidation per comunicare a JAX-WS di convalidare le richieste e le risposte con lo schema.

Basta aggiungere @SchemaValidation al vostro servizio:

@WebService(name = "myWs", targetNamespace = "someNamespace") 
@SchemaValidation 
@Local 
public interface myWsPortType { ... } 
+0

Ho aggiunto '@ SchemaValidation', ma non getta ancora eccezione. – mariami

+0

Ci sono 2 annotazioni SchemaValidation (una con interno nel suo pacchetto uno senza) avete provato entrambe? –