Mam metodę WebService, która otrzymuje obiekt. Jednym z atrybutów jest "interwał", który jest liczbą całkowitą.CXF - Jak zadeklarować wymagany atrybut i nie-prymitywny?
Chciałbym, aby ta atrybucja była wymagana, ale bez podawania wartości domyślnej - chcę, aby użytkownik był zobowiązany do jawnego ustawienia wartości.
Jeśli użyję int interval
- atrybut zostanie wyświetlony jako int i jeśli użytkownik nie ustawi jawnie tego atrybutu, zostanie wysłane zero (domyślna wartość Java dla pierwotnego typu int).
Jeśli użyję Integer interval
- atrybut zostanie wyświetlony jako liczba całkowita i zostanie zadeklarowany jako opcjonalny w pliku WSDL, więc użytkownik nie może zobaczyć, że jest wymagany przed wysłaniem żądania.
Jeśli użyję Integer interval
z @XmlElement(required = true)
lub @XmlElement(nillable = false)
- atrybut zostanie ujawniony jako int.
Atrybut może mieć dowolną liczbę całkowitą - ujemną, zero i dodatnią, więc nie mogę użyć wartości domyślnej, aby wskazać, że atrybut nie został jawnie ustawiony.
Mogę używać BigInteger interval
z @XmlElement(required = true)
, ale brakuje nam zalet korzystania z typu rdzeniowego Integer.
Chciałbym wystawić atrybut jako Integer, więc otrzymam wartość null, jeśli użytkownik nie ustawił atrybutu, a jednocześnie chciałbym, aby WSDL ujawnił, że atrybut jest wymagany, aby użytkownicy wiedzieli, że jest wymagany po prostu patrząc na WSDL.