タイトルのとおりです。JAX-WS webserviceを特定の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
}
必要に応じて特定のHTTPコードを返すようにすることはできますか?私は、認証、内部サーバーエラーなどのいくつかのものが、WSメソッドが500と認証エラーを返すようにしていることを知っていますが、ビジネスロジックに従ってこれらを送信できるようにしたいと思います。
誰でもこれを前に実行しましたか? jax-WSをしばらく使用していましたが、これが必要だったのは初めてでした。それを探してみたところ、どこでも答えは見つかりませんでした。
おかげ
ただ、完全酒のために、私はすでに試した:新しいjavax.xml.ws.http.HTTPException(123)を投げると、それはあなたがどちらを使用している – SysHex
を動作しませんでした:地下鉄またはcxf? – Sergio
@ChechusこれはGlassfish 3に配備されているので、メトロはこのことを忘れてglassfish-3タグ – SysHex