forum.bitel.ru http://forum.bitel.ru/ |
|
Обещанный платеж http://forum.bitel.ru/viewtopic.php?f=19&t=13260 |
Страница 1 из 1 |
Автор: | DVShatskikh [ 15 мар 2019, 16:53 ] |
Заголовок сообщения: | Обещанный платеж |
Пытаюсь сделать услугу "обещанный платеж" для абонентов. Но так, чтобы абонент не выбирал срок и сумму, а просто нажал на кнопку в новом ЛК. Срок фиксированный, а недостающая для активации сумма вычисляется и на нее понижается лимит. Но как-то криво все выходит: 1. Событие понижения лимита пользователем вызывается после его понижения, что убивает возможность внесения изменений в сумму и срок постфактум, т.е. стандартный limitBean использовать не получается, ибо до его вызова надо как-то просчитать необходимую для активации сумму, но как воспользоваться calculator в limit.xhtml вариантов не вижу. 2. Можно сделать через дополнительное действие, но там надо тогда делать разнообразные проверки, типа не заблокирована ли у абонента возможность управления лимитом через web, есть ли у него просроченные платежи. Готовых инструментов для работы с этим я не нашел, остается вариант прямой работы с базой contract_limit_manage_mode. Встает вопрос, я правильно мыслю, или чего-то не догоняю? |
Автор: | Phricker [ 15 мар 2019, 17:02 ] |
Заголовок сообщения: | Re: Обещанный платеж |
Код: import java.io.Serializable; import javax.annotation.PostConstruct; import javax.enterprise.context.SessionScoped; import javax.inject.Inject; import javax.inject.Named; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.bitel.bgbilling.common.BGException; import ru.bitel.bgbilling.common.BGMessageException; import ru.bitel.mybgbilling.kernel.common.AbstractBean; import ru.bitel.mybgbilling.kernel.common.inject.BGInject; import ru.bitel.mybgbilling.kernel.common.inject.BGInjection; import ru.bitel.mybgbilling.kernel.contract.BalanceBean; import ru.bitel.mybgbilling.kernel.contract.LimitBean; import ru.bitel.mybgbilling.kernel.contract.StatusBean; import ru.ellco.bgbilling.kernel.scripts.mybgbilling.MyBGBillingService; @Named @ViewScoped @BGInjection public class MyLimitBean extends AbstractBean implements Serializable { private static final Logger logger = LoggerFactory.getLogger(MyLimitBean.class); @Inject private BalanceBean balanceBean; @Inject private LimitBean limitBean; @Inject private StatusBean statusBean; @BGInject private MyBGBillingService myBGBillingService; public MyLimitBean() { } @PostConstruct protected void init() throws BGException { super.init(); this.populate(); } public void populate() throws BGException { } public void lowerLimit() throws BGException { try { this.myBGBillingService.lowerLimit(this.getContractId()); this.balanceBean.populateCurrentContractBalance(); this.limitBean.populate(); this.statusBean.populate(); this.addInfoMessage((String)null, "Доверительный платёж подключен на 3 дня"); } catch (BGMessageException var5) { this.addErrorMessage((String)null, var5.getMessage()); } finally { this.populate(); } } public String getContractMoveTasks() throws BGException { return this.myBGBillingService.getContractMoveTasks(this.getContractId()); } } Код: @Override public void lowerLimit(int contractId) throws BGMessageException { try { ContractService contractService = this.context.getService(ContractService.class, 0); ContractStatusService contractStatusService = this.context.getService(ContractStatusService.class, 0); ContractLimitService contractLimitService = this.context.getService(ContractLimitService.class, 0); BalanceService balanceService = this.context.getService(BalanceService.class, 0); Calendar cal = Calendar.getInstance(); Calendar cal2 = (Calendar) cal.clone(); cal2.add(Calendar.MONTH, -2); Contract contract = contractService.contractGet(contractId); if (contract.getBalanceMode() != 1 || contract.getPersonType() != 0) { throw new BGMessageException("Возможность получения доверительного платежа заблокирована"); } else if (contract.getStatus() != 0 && contract.getStatus() != 3) { throw new BGMessageException("Текущий статус договора не позволяет воспользоваться доверительным платежом"); } else if (balanceService.contractBalanceGet(contractId, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1).toBalance().compareTo(BigDecimal.ZERO) < 0) { throw new BGMessageException("Доверительный платёж можно получить при положительном балансе"); } else if (contractLimitService.getCurrentContractLimit(contractId).compareTo(BigDecimal.ZERO) < 0) { throw new BGMessageException("Доверительный платёж уже подключён"); } else if (TimeUtils.dateBefore(cal2.getTime(), contract.getDateFrom())) { throw new BGMessageException("Договор действует менее 2 месяцев"); } else { BigDecimal newLimit = getLimitAmount(contractId); if (newLimit.compareTo(BigDecimal.ZERO) == 0) { AlarmSender.sendAlarm(new AlarmErrorMessage("mybgbilling.limitService", "Ошибка при подключении доверительного платежа " + MyBGBillingServiceImpl.class, "Какая-то хуйня на договоре с id=" + contractId + " при подключении лимита из ЛК\n. Не удалось вычислить сумму тарифа."), System.currentTimeMillis()); throw new BGMessageException("Не удалось вычислить цену тарифного плана. Администраторы уведомлены о возникшей проблеме. Пожалуйста, попробуйте позже."); } contractLimitService.updateContractLimitPeriod(contractId, newLimit.negate(), COUNT_DAYS_LIMIT, "Доверительный платёж"); if (contract.getStatus() != 0) { ContractStatus contractStatus = new ContractStatus(); contractStatus.setStatus(0); contractStatus.setDateFrom(new Date()); contractStatus.setContractId(contractId); contractStatus.setComment("Установлен при взятии доверительного платежа"); contractStatusService.contractStatusChange(contractId, contractStatus, false); } } } catch (BGMessageException e) { throw new BGMessageException(e.getMessage()); } catch (BGException e) { AlarmSender.sendAlarm(new AlarmErrorMessage("mybgbilling.limitService", "Ошибка при подключении доверительного платежа " + MyBGBillingServiceImpl.class, "Какая-то хуйня на договоре с id=" + contractId + " при подключении лимита из ЛК\n" + e), System.currentTimeMillis()); } } Код: private BigDecimal getLimitAmount(int contractId) { BigDecimal result = BigDecimal.ZERO; try { ContractTariffService contractTariffService = this.context.getService(ContractTariffService.class, 0); TariffService tariffService = this.context.getService(TariffService.class, 0); List<ContractTariff> contractTariffList = contractTariffService.contractTariffList(contractId, new Date(), 0, 0); for (ContractTariff contractTariff : contractTariffList) { BigDecimal tariffPrice = Utils.parseBigDecimal(tariffService.tariffPlanGet(contractTariff.getTariffPlanId()).getConfigPreferences().get("price"), BigDecimal.ZERO); String tariffType = tariffService.tariffPlanGet(contractTariff.getTariffPlanId()).getConfigPreferences().get("type"); if (tariffType != null && tariffType.equals("month") && tariffPrice.compareTo(BigDecimal.ZERO) > 0) { tariffPrice = tariffPrice.divide(new BigDecimal(30), RoundingMode.HALF_UP); } tariffPrice = tariffPrice.multiply(new BigDecimal(COUNT_DAYS_LIMIT)); tariffPrice = tariffPrice.divide(new BigDecimal(50), RoundingMode.CEILING).multiply(new BigDecimal(50)); result = result.add(tariffPrice); } } catch (BGException e) { logger.error(e); } return result; } Код: <ui:define name="page-content-header"> <h1>#{msg['myLimit.title']}</h1> <!--<f:event listener="#{limitBean.populate}" type="preRenderView" /> --> </ui:define> <ui:define name="page-content-data"> <div class="panel panel-default"> <div class="panel-body"> <div jsf:id="currentLimit" class="well "> <!-- Текущий лимит: x руб --> <strong>#{msg['myLimit.currentLimit']} <h:outputText value="#{limitBean.contractLimit}" converter="#{currencyConverter}"/></strong> <br /> <br /> <em jsf:rendered="#{not empty myLimitBean.getContractMoveTasks()}"><h:outputText value="#{myLimitBean.getContractMoveTasks()}"/></em> </div> <em><h:outputText value="#{msg['myLimit.about']}" escape="false" /></em> <br /> <br /> <div class="form-group"> <h:commandButton type="button" class="btn btn-primary" value="Подключить доверительный платёж" action="#{myLimitBean.lowerLimit()}" a:update-target="page-content-data"> <f:ajax render=":page-content-data :currentLimit " listener="#{limitBean.populate}"/> </h:commandButton> </div> </div> </div> </ui:define> https://www.youtube.com/watch?v=2Kgzc1sUSWg P.S. Видео снято до изменений, на рабочем уже не так как выше, но в целом путь ясен. |
Автор: | Phricker [ 15 мар 2019, 17:05 ] |
Заголовок сообщения: | Re: Обещанный платеж |
Я даже уверен что на рабочем уже не так, т.к. человек заводящий и редактирующий тарифы вечно косячит с установкой month/day и я туда впилил еще проверку на сумму лимита. Так же через AlarmSender. А может и еще параллельно что-то поправил. |
Автор: | DVShatskikh [ 15 мар 2019, 17:51 ] |
Заголовок сообщения: | Re: Обещанный платеж |
Большое спасибо! |
Автор: | DVShatskikh [ 19 мар 2019, 18:08 ] |
Заголовок сообщения: | Re: Обещанный платеж |
Прошу прощения за глупый вопрос, но...как это скомпилировать? То javax... не находит, то ru.bitel.bgbilling... |
Автор: | olegasp [ 04 апр 2019, 14:04 ] |
Заголовок сообщения: | Re: Обещанный платеж |
UP! DVShatskikh, выше приведены отдельные куски кода. Попробуйте почитать тему "Создание собственной страницы" в документации к новому ЛК. У меня же вопрос следующий возник. Задача все та же, по нажатию 1 кнопки делать клиенту хорошо. Исходя из примера я сделал следующее (прошу прощения если что-то не то сделал, впервые делаю свой экшен в ЛК): Интерфейс: Код: // MyLimitService.java package net.sparktell.Scripts; import javax.jws.WebService; import ru.bitel.bgbilling.common.*; @WebService public interface MyLimitService { public void lowerLimit(int contractId) throws BGMessageException; } который положил в ЛК биллинга. Класс: Код: // MyLimitServiceImpl.java package net.sparktell.Scripts.impl; import net.sparktell.Scripts.MyLimitService; import org.apache.log4j.Logger; import org.w3c.dom.Document; import org.w3c.dom.Element; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; import java.util.Date; import java.util.Calendar; import java.util.List; import java.util.Map; import javax.jws.WebService; import bitel.billing.server.admin.errorlog.bean.*; import bitel.billing.server.admin.errorlog.*; import ru.bitel.common.Utils; import ru.bitel.common.TimeUtils; import ru.bitel.bgbilling.kernel.container.service.server.AbstractService; import ru.bitel.bgbilling.kernel.contract.api.common.bean.*; import ru.bitel.bgbilling.kernel.contract.api.common.service.*; import ru.bitel.bgbilling.kernel.tariff.common.service.*; import ru.bitel.bgbilling.kernel.contract.limit.common.service.ContractLimitService; import ru.bitel.bgbilling.kernel.contract.balance.common.BalanceService; import ru.bitel.bgbilling.server.util.Setup; import ru.bitel.bgbilling.common.*; @WebService(name = "MyLimitService", endpointInterface = "net.sparktell.Scripts.MyLimitService") public class MyLimitServiceImpl extends AbstractService implements MyLimitService { private int COUNT_DAYS_LIMIT = 3; private Logger logger = Logger.getLogger("MyLimitServiceImpl"); @Override public void lowerLimit(int contractId) throws BGMessageException { try { ContractService contractService = this.context.getService(ContractService.class, 0); ContractStatusService contractStatusService = this.context.getService(ContractStatusService.class, 0); ContractLimitService contractLimitService = this.context.getService(ContractLimitService.class, 0); BalanceService balanceService = this.context.getService(BalanceService.class, 0); Calendar cal = Calendar.getInstance(); Calendar cal2 = (Calendar) cal.clone(); cal2.add(Calendar.MONTH, -2); Contract contract = contractService.contractGet(contractId); if (contract.getBalanceMode() != 1 || contract.getPersonType() != 0) { throw new BGMessageException("Возможность получения доверительного платежа заблокирована"); } else if (contract.getStatus() != 0 && contract.getStatus() != 3) { throw new BGMessageException("Текущий статус договора не позволяет воспользоваться доверительным платежом"); } else if (balanceService.contractBalanceGet(contractId, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1).toBalance().compareTo(BigDecimal.ZERO) < 0) { throw new BGMessageException("Доверительный платёж можно получить при положительном балансе"); } else if (contractLimitService.getCurrentContractLimit(contractId).compareTo(BigDecimal.ZERO) < 0) { throw new BGMessageException("Доверительный платёж уже подключён"); } else if (TimeUtils.dateBefore(cal2.getTime(), contract.getDateFrom())) { throw new BGMessageException("Договор действует менее 2 месяцев"); } else { BigDecimal newLimit = getLimitAmount(contractId); if (newLimit.compareTo(BigDecimal.ZERO) == 0) { AlarmSender.sendAlarm(new AlarmErrorMessage("mybgbilling.limitService", "Ошибка при подключении доверительного платежа " + MyLimitServiceImpl.class, "Какая-то фигня на договоре с id=" + contractId + " при подключении лимита из ЛК\n. Не удалось вычислить сумму тарифа."), System.currentTimeMillis()); throw new BGMessageException("Не удалось вычислить цену тарифного плана. Администраторы уведомлены о возникшей проблеме. Пожалуйста, попробуйте позже."); } contractLimitService.updateContractLimitPeriod(contractId, newLimit.negate(), COUNT_DAYS_LIMIT, "Доверительный платёж"); if (contract.getStatus() != 0) { ContractStatus contractStatus = new ContractStatus(); contractStatus.setStatus(0); contractStatus.setDateFrom(new Date()); contractStatus.setContractId(contractId); contractStatus.setComment("Установлен при взятии доверительного платежа"); contractStatusService.contractStatusChange(contractId, contractStatus, false); } } } catch (BGMessageException e) { throw new BGMessageException(e.getMessage()); } catch (BGException e) { AlarmSender.sendAlarm(new AlarmErrorMessage("mybgbilling.limitService", "Ошибка при подключении доверительного платежа " + MyLimitServiceImpl.class, "Какая-то фигня на договоре с id=" + contractId + " при подключении лимита из ЛК\n" + e), System.currentTimeMillis()); } } private BigDecimal getLimitAmount(int contractId) { BigDecimal result = BigDecimal.ZERO; try { ContractTariffService contractTariffService = this.context.getService(ContractTariffService.class, 0); TariffService tariffService = this.context.getService(TariffService.class, 0); List<ContractTariff> contractTariffList = contractTariffService.contractTariffList(contractId, new Date(), 0, 0); for (ContractTariff contractTariff : contractTariffList) { BigDecimal tariffPrice = Utils.parseBigDecimal(tariffService.tariffPlanGet(contractTariff.getTariffPlanId()).getConfigPreferences().get("price"), BigDecimal.ZERO); String tariffType = tariffService.tariffPlanGet(contractTariff.getTariffPlanId()).getConfigPreferences().get("type"); if (tariffType != null && tariffType.equals("month") && tariffPrice.compareTo(BigDecimal.ZERO) > 0) { tariffPrice = tariffPrice.divide(new BigDecimal(30), RoundingMode.HALF_UP); } tariffPrice = tariffPrice.multiply(new BigDecimal(COUNT_DAYS_LIMIT)); tariffPrice = tariffPrice.divide(new BigDecimal(50), RoundingMode.CEILING).multiply(new BigDecimal(50)); result = result.add(tariffPrice); } } catch (BGException e) { logger.error(e); } return result; } } который лежит в самом биллинге - динамический код. Контроллер: Код: import java.io.Serializable; import javax.annotation.PostConstruct; import javax.enterprise.context.RequestScoped; import javax.enterprise.context.SessionScoped; import javax.faces.view.ViewScoped; import javax.inject.Inject; import javax.inject.Named; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ru.bitel.bgbilling.common.BGException; import ru.bitel.bgbilling.common.BGMessageException; import ru.bitel.mybgbilling.kernel.common.AbstractBean; import ru.bitel.mybgbilling.kernel.common.inject.BGInject; import ru.bitel.mybgbilling.kernel.common.inject.BGInjection; import ru.bitel.mybgbilling.kernel.contract.BalanceBean; import ru.bitel.mybgbilling.kernel.contract.LimitBean; import ru.bitel.mybgbilling.kernel.contract.StatusBean; import net.sparktell.Scripts.MyLimitService; @Named @ViewScoped // 1. @BGInjection // 2. public class MyLimitBean extends AbstractBean implements Serializable { private static final Logger logger = LoggerFactory.getLogger(MyLimitBean.class); @Inject private BalanceBean balanceBean; @Inject private LimitBean limitBean; @Inject private StatusBean statusBean; @BGInject private MyLimitService myLimitService; @Override protected void init() throws BGException { populate(); } public void populate() throws BGException { } public void lowerLimit() throws BGException { try { myLimitService.lowerLimit(60); balanceBean.populateCurrentContractBalance(); limitBean.populate(); statusBean.populate(); addInfoMessage((String)null, "Доверительный платёж подключен на 3 дня"); } catch (BGMessageException var5) { addErrorMessage((String)null, var5.getMessage()); } finally { populate(); } } public String getContractMoveTasks() throws BGException { return myLimitService.getContractMoveTasks(this.getContractId()); } } который так же лежит в ЛК биллинга. View: Код: <?xml version="1.0" encoding="UTF-8"?> <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:jsf="http://xmlns.jcp.org/jsf" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:b="http://java.sun.com/jsf/composite/composite" xmlns:namespace="http://java.sun.com/jsf/composite/namespace" xmlns:bts="http://java.sun.com/jsf/composite/bts" xmlns:a="http://xmlns.jcp.org/jsf/passthrough" template="/WEB-INF/template/page-wrapper.xhtml"> <ui:define name="page-content-header"> <h1>Доверительный платеж</h1> </ui:define> <ui:define name="page-content-data"> <div class="panel panel-default"> <div class="panel-body"> <div jsf:id="currentLimit" class="well "> <strong>#{msg['limitBean.currentLimit']} <h:outputText value="#{limitBean.contractLimit}" converter="#{currencyConverter}"/></strong> <br /> <br /> </div> <em><h:outputText value="#{msg['myLimit.about']}" escape="false" /></em> <br /> <br /> <div class="form-group"> <h:commandButton type="button" class="btn btn-primary" value="Подключить доверительный платёж" action="#{myLimitBean.lowerLimit()}" a:update-target="page-content-data"> <f:ajax render=":page-content-data :currentLimit " listener="#{limitBean.populate}"/> </h:commandButton> </div> </div> </div> </ui:define> </ui:composition> то же в ЛК биллинга; Так вот, при нажатии на кнопку Подключить платеж, в логах ЛК вижу следующее: Код: 2019-04-04 10:59:18,524 INFO [ru.bitel.mybgbilling.kernel.navigation.NavigationBean] (default task-57) page=limit/myLimit => WEB-INF/content/limit/myLimit 2019-04-04 10:59:18,524 INFO [ru.bitel.mybgbilling.kernel.navigation.NavigationBean] (default task-57) moduleId=0 2019-04-04 10:59:19,500 INFO [stdout] (default task-58) http://billing.sparktell.net/bgbilling/executer/net.sparktell.Scripts/MyLimitService?wsdl 2019-04-04 10:59:19,512 INFO [stdout] (default task-58) http://billing.sparktell.net/bgbilling/executer/net.sparktell.Scripts/MyLimitService?wsdl 2019-04-04 10:59:19,519 ERROR [ru.bitel.mybgbilling.kernel.common.inject.InjectManager] (default task-58) org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service.: javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service. at org.apache.cxf.jaxws.ServiceImpl.initialize(ServiceImpl.java:163) at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:129) at org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.<init>(ProviderImpl.java:572) at org.jboss.wsf.stack.cxf.client.ProviderImpl.createServiceDelegate(ProviderImpl.java:256) at javax.xml.ws.Service.<init>(Service.java:57) at javax.xml.ws.Service.create(Service.java:687) at ru.bitel.bgbilling.kernel.container.ws.common.WSClient.getService(WSClient.java:293) at ru.bitel.bgbilling.kernel.container.ws.common.WSClient.getPort(WSClient.java:356) at ru.bitel.mybgbilling.kernel.ws.WSClient.getPort(WSClient.java:199) at ru.bitel.mybgbilling.kernel.ws.WSClient.getPort(WSClient.java:62) at ru.bitel.mybgbilling.kernel.common.MySessionBean.lambda$null$0(MySessionBean.java:130) at ru.bitel.mybgbilling.kernel.ws.Pool.take(Pool.java:78) at ru.bitel.mybgbilling.kernel.common.MySessionBean.lambda$getPort$2(MySessionBean.java:131) at java.util.HashMap.computeIfAbsent(HashMap.java:1127) at ru.bitel.mybgbilling.kernel.common.MySessionBean.getPort(MySessionBean.java:129) at ru.bitel.mybgbilling.kernel.common.MySessionBean$Proxy$_$$_WeldClientProxy.getPort(Unknown Source) at ru.bitel.mybgbilling.kernel.ws.WSInjectManager$1.process(WSInjectManager.java:127) at ru.bitel.mybgbilling.kernel.common.inject.InjectPlan.process(InjectPlan.java:33) at ru.bitel.mybgbilling.kernel.common.inject.InjectManager.process(InjectManager.java:35) at ru.bitel.mybgbilling.kernel.ws.WSInjectManager$Proxy$_$$_WeldClientProxy.process(Unknown Source) at ru.bitel.mybgbilling.kernel.ws.WSInjectInterceptor.initialize(WSInjectInterceptor.java:139) at sun.reflect.GeneratedMethodAccessor124.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:74) at org.jboss.weld.interceptor.proxy.WeldInvocationContext.invokeNext(WeldInvocationContext.java:83) at org.jboss.weld.interceptor.proxy.WeldInvocationContext.proceed(WeldInvocationContext.java:115) at ru.bitel.mybgbilling.kernel.directory.DirectoryInjectInterceptor.initialize(DirectoryInjectInterceptor.java:51) at sun.reflect.GeneratedMethodAccessor123.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:74) at org.jboss.weld.interceptor.proxy.WeldInvocationContext.invokeNext(WeldInvocationContext.java:83) at org.jboss.weld.interceptor.proxy.WeldInvocationContext.proceed(WeldInvocationContext.java:115) at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeLifecycleInterception(InterceptorMethodHandler.java:78) at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeInterception(InterceptorMethodHandler.java:74) at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.invoke(InterceptorMethodHandler.java:48) at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:84) at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:61) at org.jboss.weld.proxies.MyLimitBean$Proxy$_$$_WeldSubclass.lifecycle_mixin_$$_postConstruct(Unknown Source) at org.jboss.weld.interceptor.util.InterceptionUtils.executePostConstruct(InterceptionUtils.java:49) at org.jboss.weld.interceptor.util.InterceptionUtils.executePostConstruct(InterceptionUtils.java:61) at org.jboss.weld.injection.producer.DefaultLifecycleCallbackInvoker.postConstruct(DefaultLifecycleCallbackInvoker.java:79) at org.jboss.weld.injection.producer.BasicInjectionTarget.postConstruct(BasicInjectionTarget.java:126) at org.jboss.weld.bean.ManagedBean.create(ManagedBean.java:162) at org.jboss.weld.util.bean.IsolatedForwardingBean.create(IsolatedForwardingBean.java:45) at com.sun.faces.application.view.ViewScopeContextManager.createBean(ViewScopeContextManager.java:144) at com.sun.faces.application.view.ViewScopeContext.get(ViewScopeContext.java:137) at org.jboss.weld.context.PassivatingContextWrapper$AbstractPassivatingContextWrapper.get(PassivatingContextWrapper.java:76) at org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:101) at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50) at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:742) at org.jboss.weld.el.AbstractWeldELResolver.lookup(AbstractWeldELResolver.java:107) at org.jboss.weld.el.AbstractWeldELResolver.getValue(AbstractWeldELResolver.java:90) at org.jboss.as.jsf.injection.weld.ForwardingELResolver.getValue(ForwardingELResolver.java:46) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:188) at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:116) at com.sun.el.parser.AstValue.getBase(AstValue.java:150) at com.sun.el.parser.AstValue.getTarget(AstValue.java:169) at com.sun.el.parser.AstValue.invoke(AstValue.java:274) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304) at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) at javax.faces.component.UICommand.broadcast(UICommand.java:315) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658) at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) at io.undertow.server.handlers.DisableCacheHandler.handleRequest(DisableCacheHandler.java:33) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:53) at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:59) at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292) at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.cxf.service.factory.ServiceConstructionException: Failed to create service. at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:87) at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:218) at org.apache.cxf.jaxws.ServiceImpl.initialize(ServiceImpl.java:161) ... 116 more Caused by: javax.wsdl.WSDLException: WSDLException: faultCode=PARSER_ERROR: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character 'd' (code 100) after '<!' (malformed comment?) at [row,col,system-id]: [1,3,"http://billing.sparktell.net/bgbilling/executer/net.sparktell.Scripts/MyLimitService?wsdl"] at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:228) at org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:163) at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:85) ... 118 more Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character 'd' (code 100) after '<!' (malformed comment?) at [row,col,system-id]: [1,3,"http://billing.sparktell.net/bgbilling/executer/net.sparktell.Scripts/MyLimitService?wsdl"] at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:647) at com.ctc.wstx.sr.BasicStreamReader.nextFromPrologBang(BasicStreamReader.java:2424) at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2065) at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1131) at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:1346) at org.apache.cxf.staxutils.StaxUtils.readDocElements(StaxUtils.java:1240) at org.apache.cxf.staxutils.StaxUtils.read(StaxUtils.java:1168) at org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:219) ... 120 more 2019-04-04 10:59:19,529 WARNING [javax.enterprise.resource.webcontainer.jsf.lifecycle] (default task-58) #{myLimitBean.lowerLimit()}: java.lang.NullPointerException: Cannot invoke method lowerLimit() on null object: javax.faces.FacesException: #{myLimitBean.lowerLimit()}: java.lang.NullPointerException: Cannot invoke method lowerLimit() on null object at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118) at javax.faces.component.UICommand.broadcast(UICommand.java:315) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658) at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) at io.undertow.server.handlers.DisableCacheHandler.handleRequest(DisableCacheHandler.java:33) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:53) at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:59) at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292) at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: javax.faces.el.EvaluationException: java.lang.NullPointerException: Cannot invoke method lowerLimit() on null object at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) ... 47 more Caused by: java.lang.NullPointerException: Cannot invoke method lowerLimit() on null object at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at MyLimitBean.lowerLimit(myLimitBean.java:44) at org.jboss.weld.proxies.MyLimitBean$Proxy$_$$_WeldSubclass.lowerLimit$$super(Unknown Source) 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 org.jboss.weld.interceptor.proxy.TerminalAroundInvokeInvocationContext.proceedInternal(TerminalAroundInvokeInvocationContext.java:49) at org.jboss.weld.interceptor.proxy.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:77) at ru.bitel.mybgbilling.kernel.ws.WSInjectInterceptor.aroundInvoke(WSInjectInterceptor.java:62) at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:74) at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeAroundInvoke(InterceptorMethodHandler.java:84) at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeInterception(InterceptorMethodHandler.java:72) at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.invoke(InterceptorMethodHandler.java:56) at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:79) at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:68) at org.jboss.weld.proxies.MyLimitBean$Proxy$_$$_WeldSubclass.lowerLimit(Unknown Source) 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 javax.el.ELUtil.invokeMethod(ELUtil.java:300) at javax.el.BeanELResolver.invoke(BeanELResolver.java:415) at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256) at com.sun.el.parser.AstValue.invoke(AstValue.java:285) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304) at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) ... 48 more 2019-04-04 10:59:19,530 INFO [ru.bitel.mybgbilling.kernel.common.MyExceptionHandler] (default task-58) ERROR class javax.faces.FacesException 2019-04-04 10:59:19,530 SEVERE [javax.enterprise.resource.webcontainer.jsf.context] (default task-58) javax.faces.el.EvaluationException: java.lang.NullPointerException: Cannot invoke method lowerLimit() on null object at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) at javax.faces.component.UICommand.broadcast(UICommand.java:315) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658) at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85) at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131) at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) at io.undertow.server.handlers.DisableCacheHandler.handleRequest(DisableCacheHandler.java:33) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:53) at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:59) at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:292) at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:81) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:138) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:135) at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:272) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:104) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:805) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException: Cannot invoke method lowerLimit() on null object at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at MyLimitBean.lowerLimit(myLimitBean.java:44) at org.jboss.weld.proxies.MyLimitBean$Proxy$_$$_WeldSubclass.lowerLimit$$super(Unknown Source) 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 org.jboss.weld.interceptor.proxy.TerminalAroundInvokeInvocationContext.proceedInternal(TerminalAroundInvokeInvocationContext.java:49) at org.jboss.weld.interceptor.proxy.AroundInvokeInvocationContext.proceed(AroundInvokeInvocationContext.java:77) at ru.bitel.mybgbilling.kernel.ws.WSInjectInterceptor.aroundInvoke(WSInjectInterceptor.java:62) at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.weld.interceptor.reader.SimpleInterceptorInvocation$SimpleMethodInvocation.invoke(SimpleInterceptorInvocation.java:74) at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeAroundInvoke(InterceptorMethodHandler.java:84) at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.executeInterception(InterceptorMethodHandler.java:72) at org.jboss.weld.interceptor.proxy.InterceptorMethodHandler.invoke(InterceptorMethodHandler.java:56) at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:79) at org.jboss.weld.bean.proxy.CombinedInterceptorAndDecoratorStackMethodHandler.invoke(CombinedInterceptorAndDecoratorStackMethodHandler.java:68) at org.jboss.weld.proxies.MyLimitBean$Proxy$_$$_WeldSubclass.lowerLimit(Unknown Source) 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 javax.el.ELUtil.invokeMethod(ELUtil.java:300) at javax.el.BeanELResolver.invoke(BeanELResolver.java:415) at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:256) at com.sun.el.parser.AstValue.invoke(AstValue.java:285) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304) at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40) at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50) at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) ... 48 more В логах сервера: Код: 04-04/10:59:19 WARN [http-nio-0.0.0.0-80-exec-1] AbstractJaxWsHandler - Class not found for net.sparktell.Scripts:MyLimitService 04-04/10:59:19 ERROR [http-nio-0.0.0.0-80-exec-1] JaxWSAdapter - java.lang.NullPointerException at java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011) at java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.getTarget(AbstractJaxWsHandler.java:179) at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.getTarget(AbstractJaxWsHandler.java:111) at ru.bitel.bgbilling.kernel.container.ws.server.JaxWSAdapter.handle(JaxWSAdapter.java:300) at bitel.billing.server.Executer.doPost(SourceFile:175) at bitel.billing.server.Executer.doGet(SourceFile:145) at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) Подскажите пожалуйста в какую сторону копать. В доках по собственной странице рассматривается простой пример без использования своего класса в рамках дин кода, да и здесь не удалось найти пример может более простой, но рабочий. |
Автор: | Phricker [ 04 апр 2019, 16:45 ] |
Заголовок сообщения: | Re: Обещанный платеж |
В динкоде тоже должен быть сервис. И совсем забыл. Надо в конфиг сервера добавить строку навроде Код: dynservice:ru.ellco.bgbilling.kernel.scripts.mybgbilling.MyBGBillingService=ru.ellco.bgbilling.kernel.scripts.mybgbilling.MyBGBillingServiceImpl
|
Автор: | Phricker [ 04 апр 2019, 16:49 ] |
Заголовок сообщения: | Re: Обещанный платеж |
https://forum.bitel.ru/viewtopic.php?f=19&t=12831 Отсюда |
Автор: | olegasp [ 04 апр 2019, 16:56 ] |
Заголовок сообщения: | Re: Обещанный платеж |
Спасибо, Phricker! Буду пробовать. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |