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