2013-03-08 26 views
2

我需要定義一個帶有最大長度參數的Jax-RPC Web服務。Jax RPC web服務定義,參數最大長度爲

@SOAPBinding(style = Style.RPC) 
    public interface MessageService { 

      public String sendMessage(@WebParam(partName = "id") String id, 
     @WebParam(partName = "name") String name, 
     @WebParam(partName = "mesg") String mesg); 

ID必須是8個字符。 如何在Jax-RPC註釋或配置中定義此約束?

+1

http://stackoverflow.com/a/7276392/785663說你不能做此(以及[@WebParam API](http://docs.oracle.com/javaee/5/api/javax/jws/WebParam.html)的鏈接,但http://stackoverflow.com/a/7282020/ 785663有一些關於參數驗證的問題,因爲我仍然正在使用JAX-WS自己來處理這個問題。 – mabi 2013-03-19 13:41:02

回答

0

你能多描述一下你想做什麼?爲什麼在收到/發送ID之前驗證長度還不夠?

也許你可以嘗試使用你的類型的對象而不是字符串,並對其運行驗證? 另外,你可以嘗試用綁定文件播放 - 您可以生成你的數據類型轉換器,並嘗試這樣的事:

<jaxb:bindings version="2.1" 
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <jaxb:globalBindings generateElementProperty="false" > 
       <jaxb:javaType 
        name="java.util.Calendar" 
        xmlType="xs:dateTime" 
        parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime" 
        printMethod="javax.xml.bind.DatatypeConverter.printDateTime" /> 
     </jaxb:globalBindings> 
</jaxb:bindings>