mar*_*ami 5 java soap decimal jax-ws bigdecimal
我有Jaxws Soap网络服务.我的"myMethod"方法有一个十进制类型字段.
这是我的Web服务界面:
@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);
}
Run Code Online (Sandbox Code Playgroud)
这是参数类
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType()
public class MyMethodParameters implements java.io.Serializable {
@FieldValidation(maxLength = 12)
@XmlElement(name = "myField", required = false)
private java.math.BigDecimal myField;
}
Run Code Online (Sandbox Code Playgroud)
当我在myField中传递正确的数据类型时,一切正常.
但是,问题是当我调用myMethod并传递String值(而不是Decimal)作为参数时,不会抛出异常并且myField的值为null
这是Soap Request示例
<soapenv:Envelope>
<soapenv:Header/>
<soapenv:Body>
<iss:myMethod>
<parameters>
<myField>test</myField>
</parameters>
</iss:myMethod>
</soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)
当传递不正确的数据类型时,如何让我的w抛出异常?