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

[6.1] WebService InetServService inetServTree
http://forum.bitel.ru/viewtopic.php?f=44&t=9368
Страница 1 из 1

Автор:  Bazhutyan [ 24 июн 2014, 06:32 ]
Заголовок сообщения:  [6.1] WebService InetServService inetServTree

Пытаюсь обернуть InetServService, а именно надо изменить inetServTree:

dynservice:ru.bitel.bgbilling.modules.inet.api.InetServService=ru.iks.dyn.myInetServServiceImpl

Код:
@WebService(endpointInterface = "ru.bitel.bgbilling.modules.inet.api.common.service.InetServService")
public class myInetServServiceImpl
   extends ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl
   implements InetServService
{
   @Override
    public InetServ inetServTree(int contractId)
        throws BGException
    {
      return super.inetServTree(contractId);
    }
}


Получаю ошибку в клиенте:

Код:
javax.xml.ws.soap.SOAPFaultException: java.lang.NullPointerException
   at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:193)
   at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:134)
   at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:123)
   at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:93)
   at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:144)
   at com.sun.proxy.$Proxy36.inetServTree(Unknown Source)
   at ru.bitel.bgbilling.modules.inet.api.client.contract.InetServPanel$2.actionPerformedImpl(InetServPanel.java:227)
   at ru.bitel.common.client.AbstractBGUPanel.actionPerformed(AbstractBGUPanel.java:237)
   at ru.bitel.common.client.AbstractBGUPanel$DefaultAction.actionPerformed(AbstractBGUPanel.java:91)
   at ru.bitel.bgbilling.modules.inet.api.client.ServicePropertiesPanel.fireAction(ServicePropertiesPanel.java:76)
   at ru.bitel.bgbilling.modules.inet.api.client.ServicePropertiesPanel.setData(ServicePropertiesPanel.java:36)
   at bitel.billing.module.contract.ContractSubPanel_Module.setData(ContractSubPanel_Module.java:145)
   at bitel.billing.module.contract.ContractPanel_Parameters$5.run(ContractPanel_Parameters.java:628)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$200(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.NullPointerException
   at ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl.inetServTree(InetServServiceImpl.java:177)
   at ru.iks.dyn.myInetServServiceImpl.inetServTree(myInetServServiceImpl.java:50)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:606)
   at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:101)
   at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke(AbstractJaxWsHandler.java:244)
   at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.access$1(JaxWsHandler.java:1)
   at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler$2.run(JaxWsHandler.java:336)
   at java.security.AccessController.doPrivileged(Native Method)
   at javax.security.auth.Subject.doAs(Subject.java:415)
   at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.invoke(JaxWsHandler.java:330)
   at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$ServiceInstanceResolver$1.invoke(AbstractJaxWsHandler.java:356)
   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.common.server.JaxWSAdapter.handle(JaxWSAdapter.java:388)
   at bitel.billing.server.Executer.doPost(Unknown Source)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
   at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
   at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
   at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
   at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
   at java.lang.Thread.run(Thread.java:745)


Научите, как правильно сделать?

Автор:  Cromeshnic [ 24 июн 2014, 07:29 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Интересно, я аж загуглил.

Цитата:
public Method[] getDeclaredMethods()
throws SecurityException
Returns an array of Method objects reflecting all the methods declared by the class or interface represented by this Class object. This includes public, protected, default (package) access, and private methods, but excludes inherited methods.


Т.е. при инициализации сервиса не был вызван метод init() родительского класса, т.к. он ищет его только у конечного класса.

Автор:  Cromeshnic [ 24 июн 2014, 07:30 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Короче, добавьте в ваш класс такой метод:

Код:
@PostConstruct
  void init()
    throws BGException
  {
    super.init();
  }

Автор:  Bazhutyan [ 24 июн 2014, 07:33 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Насколько я смог разобраться, там проблема в том, что в InetServServiceImpl не инициализируются куча объектов, которые в init().
А init() самому вызывать не получается, т.к. он private.
И еще там какой-то @PostConstruct, который я вообще не знаю что это.

Автор:  Bazhutyan [ 24 июн 2014, 07:34 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Пока писал ответ, вы уже успели свой написать.
Ну собственно как я и написал, private:
init() is not public in ru.bitel.bgbilling.modules.inet.api.server.service.InetServServiceImpl; cannot be accessed from outside package /usr/local/bg/BGBillingServer/dyn/ru/iks/dyn/myInetServServiceImpl.java

Автор:  Cromeshnic [ 24 июн 2014, 07:35 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

щиит, ну тогда похоже только копипастить их метод :(

Автор:  Cromeshnic [ 24 июн 2014, 07:36 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Или, как вариант, переместить свой класс в тот же package, чтобы родительский init стал доступен:

ru.bitel.bgbilling.modules.inet.api.server.service.myInetServServiceImpl

Автор:  Bazhutyan [ 24 июн 2014, 07:40 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Уважаемые разработчики,
а нельзя сделать init public'ом?

Автор:  Cromeshnic [ 24 июн 2014, 07:45 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Достаточно protected, на самом деле

Автор:  stark [ 24 июн 2014, 12:06 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Исправлено, в следующем обновлении будет.

Автор:  Bazhutyan [ 25 июн 2014, 06:56 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Спасибо! Работает.
А нельзя-ли еще до getTitlePattern доступ дать?

P.S.
И нельзя-ли вообще отказаться от private в пользу protected?

Автор:  Bazhutyan [ 25 июн 2014, 09:42 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

getTitlePattern меня не спасёт, так что можете ничего не менять.
Хотел в клиенте выводить закрытие на текущий момент сервисы серым цветом, но это можно только на половину, т.е. можно покрасить только поля *title*, остальное всё-равно будет как обычно.

Автор:  nikav80 [ 10 май 2016, 17:12 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Уважаемые разработчики!
А можно тоже самое сделать с ru.bitel.bgbilling.kernel.tariff.option.server.service.TariffOptionServiceImpl?

Автор:  nikav80 [ 11 май 2016, 12:03 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Версия 6.2

Автор:  nikav80 [ 13 май 2016, 17:18 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

В 7.0 тоже самое!
Код:
@PostConstruct
  void init()
    throws BGException
  {

Сделайте
Код:
@PostConstruct
  protected void init()
    throws BGException
  {

Версия 6.2 и 7.0 - Пожалуйста!

Автор:  dmitry_P [ 16 май 2016, 15:27 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Ну тогда уж и 5.2 до кучи

Автор:  nikav80 [ 17 май 2016, 19:52 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Разработчики, ответьте пожалуйста!

Автор:  stark [ 24 май 2016, 14:45 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

nikav80 писал(а):
Уважаемые разработчики!
А можно тоже самое сделать с ru.bitel.bgbilling.kernel.tariff.option.server.service.TariffOptionServiceImpl?


Исправлено. Будет в следующем обновлении.

Автор:  nikav80 [ 24 май 2016, 14:54 ]
Заголовок сообщения:  Re: [6.1] WebService InetServService inetServTree

Спасибо! :D

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