Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在字段中发送0时发生javax.validation.ConstraintViolationException_Java_Constraints - Fatal编程技术网

在字段中发送0时发生javax.validation.ConstraintViolationException

在字段中发送0时发生javax.validation.ConstraintViolationException,java,constraints,Java,Constraints,我已经通过命令生成了一些java代理类 wsimport-J-Djavax.xml.accessExternalSchema=all-keep-verbose 然后我将它集成到我的java应用程序中。服务很好。 我遇到的一个问题是在一个长字段(第三个参数)中发送0时出现以下错误。不知道从何处添加此内部约束,因为wsdl中没有任何内容 javax.validation.ConstraintViolationException:方法验证期间发生1个约束冲突 Constructor or Method

我已经通过命令生成了一些java代理类

wsimport-J-Djavax.xml.accessExternalSchema=all-keep-verbose

然后我将它集成到我的java应用程序中。服务很好。 我遇到的一个问题是在一个长字段(第三个参数)中发送0时出现以下错误。不知道从何处添加此内部约束,因为wsdl中没有任何内容

javax.validation.ConstraintViolationException:方法验证期间发生1个约束冲突

Constructor or Method: public .... ...(java.lang.String,int,long,java.lang.String,java.lang.String)
Argument values: [23123123123, 31, 0, sdfsdf, sdfsdfsdfsdf]
Constraint violations: 
 (1) Kind: PARAMETER
 parameter index: 2
 message: recipientMsisdn must be greater than or equal to 1
 root bean: com.sdsd
 property path: mymethod.arg2
 constraint: @javax.validation.constraints.Min(message=recipientMsisdn must be greater than or equal to 1, payload=[], groups=[], value=1)
More overmessage=recipientMsisdn必须大于或等于1引用的是第一个字段名,而错误是由于第三个字段引起的

注: 我正在使用JDK1.7,因为它正在我的生产服务器上运行

我的输入元素的wsdl部分是

 <xs:sequence>
      <xs:element name="recipientMsisdn" type="xs:string"/>
      <xs:element name="field2" type="xs:int"/>
      <xs:element name="field3" type="xs:long"/>
      <xs:element name="field4" type="xs:string"/>
      <xs:element name="field5" type="xs:string"/>
    </xs:sequence>

他们可能正在使用
@Range(min=1)
从javax.validation.constraints进行验证这看起来是有意的-可能在
recipientMsisdn
上设置了
@min(1)
验证,以防止0或负值,但不知道为什么要添加此约束,该约束不允许字段中出现0。我还添加了wsdl部分,从中生成了代理类。此外,recepientMsidn是一个字符串字段。由于我发送01的字段3出现错误。您的“参数顺序”似乎不匹配(recipientMsisdn不是,但field3是0)。2.请查看/粘贴相关生成的java代码(wsimport(?)的目标文件夹),我的观点(1.)是:在您的示例中,长(
field3
)是/似乎是
0
,但错误消息说:
recipientmisdn
!。和2.:some-one/thing必须设置这个(some)验证约束。。。。由于错误消息清楚地说明了(除了(我的期望)哪个字段)…是否“中间没有任何内容”。。。映射(、混淆顺序和验证)您的输入?
@WebMethod
    @WebResult(targetNamespace = "")
    @RequestWrapper(localName = "MyMethod", targetNamespace = "....", className = "....")
    @ResponseWrapper(localName = "MyApiResponse", targetNamespace = "....", className = "...")

public MyApiResponse MyMethod(
        @WebParam(name = "recipientMsisdn", targetNamespace = "" )
        String recipientMsisdn,
        @WebParam(name = "field2", targetNamespace = "")
        int field2,
        @WebParam(name = "field3", targetNamespace = "")
        long field3,
        @WebParam(name = "field4", targetNamespace = "")
        String field4,
        @WebParam(name = "field5", targetNamespace = "")
        String field5);