forum.bitel.ru
http://forum.bitel.ru/

[7.0] Custom API и Exception
http://forum.bitel.ru/viewtopic.php?f=19&t=12610
Страница 1 из 1

Автор:  Phricker [ 08 сен 2017, 10:33 ]
Заголовок сообщения:  [7.0] Custom API и Exception

День добрый, господа.

Такой вопрос.
В custom api написал свой вебсервис который что-то возвращает.
Если же не получается это что-то вернуть - возвращается исключение.
Код:
if (contractId == 0) {
            throw new UnauthorizedException();
        }


Код:
public class UnauthorizedException extends Exception {
    public UnauthorizedException() {
        super("Ошибка авторизации. Проверьте правильность введенного номера и пароля");
    }
}



Собственно всё работает, и если contractId == 0, то в ответ прилетает исключение
Код:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
         <faultcode>S:Server</faultcode>
         <faultstring>Ошибка авторизации. Проверьте правильность введенного номера и пароля</faultstring>
         <detail>
            <ns2:UnauthorizedException xmlns:ns2="http://mobile.ellco.ru/">
               <message>Ошибка авторизации. Проверьте правильность введенного номера и пароля</message>
            </ns2:UnauthorizedException>
         </detail>
      </S:Fault>
   </S:Body>
</S:Envelope>


Проблема в том, что в server.log и server.error.log полнится этими сообщениями.
Код:
09-08/07:31:56 ERROR [http-bio-0.0.0.0-8080-exec-4] AbstractJaxWsHandler -
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:101)
        at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke0(AbstractJaxWsHandler.java:229)
        at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke(AbstractJaxWsHandler.java:200)
        at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$ServiceInstanceResolver$1.invoke(AbstractJaxWsHandler.java:375)
        at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:150)
        at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:261)
        at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
        at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641)
        at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600)
        at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585)
        at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482)
        at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:314)
        at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:608)
        at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259)
        at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:162)
        at ru.bitel.bgbilling.kernel.container.ws.server.JaxWSAdapter.handle(JaxWSAdapter.java:290)
        at ru.bitel.bgbilling.server.api.CustomApiExecutor.doPost(CustomApiExecutor.java:49)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: api.ru.ellco.mobile.impl.exception.UnauthorizedException: Ошибка авторизации. Проверьте правильность введенного номера и пароля
        at api.ru.ellco.mobile.impl.MobileServiceImpl.auth(MobileServiceImpl.java:63)
        ... 40 more


Можно ли как то от этого избавиться?

Автор:  Phricker [ 08 сен 2017, 10:42 ]
Заголовок сообщения:  Re: [7.0] Custom API и Exception

Оставлю для потомков.
Помогло решение от Cromeshnic'а.
Необходимо расширять класс BGMessageException

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/