Proprio come dice il titolo.Come far funzionare il servizio web JAX-WS con uno specifico codice http
@WebService(
targetNamespace = "http://com.lalaland.TestWs",
portName = "TestWs",
serviceName = "TestWs")
public class TestWs implements TestWsInterface {
@EJB(name="validator")
private ValidatorLocal validator;
@WebMethod(operationName = "getStuff")
public List<StuffItem> getStuff(@WebParam(name = "aaa")String aaa,
@WebParam(name = "bbb")int bbb) {
if (! validator.check1(...))
return HTTP code 403 <------------ Here
if (! validator.check2(...))
return HTTP code 404 <------------ Here
if (! validator.check3(...))
return HTTP code 499 <------------ Here
return good list of Stuff Items
}
Esiste comunque un metodo per restituire un codice HTTP specifico su richiesta? So che alcune delle cose, come l'autenticazione, gli errori interni del server, ecc. Fanno sì che il metodo WS restituisca 500 e gli errori di autenticazione, ma vorrei poterli inviare secondo la logica aziendale.
Qualcuno ha già fatto questo? Ho usato jax-WS da un po 'di tempo e questa è stata la prima volta che ho avuto questo bisogno, ho provato a cercarlo e non ho trovato una risposta da nessuna parte.
Grazie
Solo per completezza, ho già provato: throw new javax.xml.ws.http.HTTPException (123) e non ha funzionato – SysHex
quale stai usando: metro o cxf? – Sergio
@Chechus viene distribuito su Glassfish 3, quindi metro, ho dimenticato di menzionarlo e ho appena inserito il tag glassfish-3 – SysHex