Pracuję nad usługą internetową Apache CXF (przy użyciu JAX-WS, przez SOAP). Sama usługa jest dość prosta: odbierz żądanie, wstaw zapytanie do bazy danych i zwróć informację, czy wstawienie zakończyło się pomyślnie. Chciałbym polegać na sprawdzaniu poprawności XML w celu wymuszenia kilku ograniczeń na żądanie.Sprawdzanie poprawności XML po stronie serwera za pomocą CXF Webservice
Moje pytanie. Jak zwrócić szczegółowe błędy sprawdzania poprawności do klienta mojej usługi? Sprawdziłem poprawność serwera po stronie serwera, konfigurując mój punkt końcowy.
<jaxws:endpoint id="someEndpoint" implementor="#someImpl" address="/impl">
<jaxws:properties>
<!-- This entry should- ideally- enable JAXB validation
on the server-side of our web service. -->
<entry key="schema-validation-enabled" value="true" />
</jaxws:properties>
</jaxws:endpoint>
mam zbadane za pomocą przechwytujących (np BareInInterceptor) na serwerze, a jakoś wzrok SAXParseExceptions je owinąć i wysłać je wraz z klientem. Takie podejście wydaje się nieco skomplikowane, ale muszę podać klientom numer linii, jeśli ich XML jest nieprawidłowy. Czy powinienem iść z przechwytującymi, aby ujawnić wyjątki?
Nie mam dużego doświadczenia z tą technologią i po prostu wchodzę do serwisów internetowych - wszelkie wskazówki, które możecie mi dać, będą naprawdę mile widziane.
Należy pamiętać, że jeśli XML w zapytaniu jest generowany przez aplikację kliencką SOAP (jak można dostać od generowania odcinki z własnego Service), numer linii jest prawdopodobnie 1 bardzo często (ponieważ wiele klienci po prostu wygenerują dokument XML o bardzo długiej linii). –
@Ian McLaird: to jest ważne uwagi, z drugiej strony, gdy aplikacja jest testowana przez testerów, używają lepsze formatowanie i będzie to ich – Betlista