Настраиваемое приложение, не относящееся к JCR, с содержимым sqlcontainer contentContainer, не может внедрить ContentConnector или EventBus в определение действия
Я работаю над приложением нестандартного контента для JCR для Magnolia 5.5.4, я создал такой контейнер:
public class ArticlesContainer extends SQLContainer {
public ArticlesContainer(QueryDelegate delegate) throws SQLException {
super(delegate);
// TODO Auto-generated constructor stub
}
}
и treePresenter, где я инициализирую контейнер следующим образом:
public Container initializeContainer() {
JDBCConnectionPool pool;
ArticlesContainer container = null;
try {
pool = new SimpleJDBCConnectionPool("com.mysql.jdbc.Driver", "jdbc:mysql://localhost:3306/pfeapp", "admindxbIwZL", "HduX7BJJaBAD");
QueryDelegate tq = new TableQuery("articles", pool);
container = new ArticlesContainer(tq);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return container;
}
до сих пор все отлично, работает отлично. Проблема в том, что когда я пытаюсь создать действие, например, я добавляю действие AddArticleAction, например так:
public class AddArticleAction<T extends AddArticleActionDefinition> extends AbstractAction<T>{
private ContentConnector contentConnector;
private EventBus eventBus;
@Inject
public AddArticleAction(T definition, @Named(AdmincentralEventBus.NAME)EventBus eventBus) {
super(definition);
this.eventBus = eventBus;
// TODO Auto-generated constructor stub
}
@Override
public void execute() throws ActionExecutionException {
// TODO Auto-generated method stub
}
}
когда я нажимаю на ссылку добавления статьи в панели действий браузера, я получаю следующее исключение:
2017-05-20 00: 28: 22,321 ОШИБКА fo.magnolia.ui.contentapp.browser.BrowserPresenter: Произошла ошибка при выполнении действия [addArticle] info.magnolia.ui.api.action.ActionExecutionException: не удалось выполнить действие для действия: addArticle в info.magnolia.ui.api.action.AbstractActionExecutor.execute(AbstractActionExecutor.java:64) в info.magnolia.ui.contentapp.browser.BrowserPresenter.executeAction(BrowserPresenter.java:347) в info.magnolia.ui.contentapp.browser.BrowserPresenter.onActionbarItemClicked(BrowserPresenter.java:306) по адресу info.magnolia.ui.actionbar.ActionbarPresenter.onActionbarItemClicked(ActionbarPresenter.java:205) по адресу info.magnolia.ui.actionbar.ActionbarImpImpIm:67) at sun.reflect.NativeMethodAccessorImpl.invoke0(родной метод) в sun.reflect.NativeMethodAccessorImpl.invoke(неизвестный источник) в sun.reflect.DelegatingMethodAccessorImpl.invoke(неизвестный источник) в java.voket.hog Неизвестный источник) на com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508) на com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198) на com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161) на com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:1008) в info.magnolia.ui.vaadin.actionbar.Actionbar.access$000(Actionbar.java:59) в info.magnolia.ui.vaadin.actionbar.Actionbar$1.onActionTriggered(панель действий).java:72) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(неизвестный источник) в sun.reflect.DelegatingMethodAccessorImpl.invoke(неизвестный источник) в java. invoke (Неизвестный источник) в com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:158) в com.vaadin.server.ServerRpcManager.applyInvocation(ServerRpcManager.java:118) в com.vaverinserser.Herver.handleInvocation(ServerRpcHandler.java:437) в com.vaadin.server.communication.ServerRpcHandler.handleInvocations(ServerRpcHandler.java:408) в com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:273) в com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequestHandlerRequestH:.SynchronizedRequestHandler. ui.admincentral. по адресу info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) по адресу info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) по адресу info.magnolia.cms.fildoFlterFlter.Milter.gnter(MgnlFilterChain.java:81) на info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) по адресу info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) по адресу info.magnolia.cms.filters.CompositeFilter.doFilter(инфо-файл:65).magnolia.cms.filters..java:69) на info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) на info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) на info.magnolia.module.cache.executor.Bypass.processCacheRequest(Bypass.java:58) по адресу info.magnolia.module.cache.executor.CompositeExecutor.processCacheRequest(CompositeExecutor.java:67) по адресу info.magnolia.module.cache.filter.CacheFilter.doFilter(CacheFilter.java:220) на info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) на info.magnolia.cms.filters.MgnlFil terChain.doFilter (MgnlFilterChain.java:79) по адресу info.magnolia.cms.i18n.I18nContentSupportFilter.doFilter(I18nContentSupportFilter.java:74) по адресу info.magnolia.cms.filters.AbstractMgnlFilter (Abstract).Milter.M..magnolia.cms.filters.MgnlFilterChain..java: 85) в info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) в info.magnolia.cms.security.BaseSecurityFilter.doFilter(BaseSecurityFilter.java:57) в info.magnolia.cms. фильтры в info.magnolia.cms.security.SecurityCallbackFilter.doFilter(SecurityCallbackFilter.java:84) в info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter. на info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) на info.magnolia.cms.filters.MgnlFilterChain.doFilter (MgnlFilterChain.ilite.Filter.Mate.Merter.Mava.inava.79)79.doFilter(SiteMergeFilter.java:119) на info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) на info.magnolia.cms.filters.MgnlFilterChain.doFilter (MgnlFilter79 at). magnolia.cms.filters. Java: 79) на info.magnolia.module.cache.filter.GZipFilter.doFilter(GZipFilter. Ява:73) на info.magnolia.cms.filters.OncePerRequestAbstractMgnlFilter.doFilter(OncePerRequestAbstractMgnlFilter.java:59) на info.magnolia.cms.filters.MgnlFilterChain.doFilter (MgnlFilnam.info.ha.).in)..MgnlFilterChain.doFilter(MgnlFilterChain.java:81) по адресу info.magnolia.cms.security.auth.login.LoginFilter.doFilter(LoginFilter.java:127) по адресу info.magnolia.cms.filters.AbstractMgnlFilter.java.jt.: 85) на info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) на info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:81) на info.magnolia.cms. MgnlFilterChain.doFilter(MgnlFilterChain.java:81) на info.magnolia.cms.filters.ContentTypeFilter.doFilter(ContentTypeFilter.java:155) на info.magnolia.cms.filters.AbstractMgnlFilter.jFF:.magnolia.cms.filters.MgnlFilterChain.doFilter (MgnlFilterChain.java:79) в info.magnolia.cms.filters.ContextFilter.doFilter(ContextFilter. Java:128) на info.magnolia.cms.filters.AbstractMgnlFilter.doFilter(AbstractMgnlFilter.java:85) на info.magnolia.cms.filters.MgnlFilterChain.doFilter(MgnlFilterChain.java:79) на info.magnolia.cms..CompositeFilter. info.magnolia.cms.filters.MgnlFilterDispatcher.doDispatch(MgnlFilterDispatcher.java:67) в info.magnolia.cms.filters.MgnlMainFilter.doFilter(MgnlMainFilter.java:108) в info.magnolia.clmFilter (MilFilters) MgnlMainFilter.java:94) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) в org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCapin.cat) jacj.jj)..core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) в org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) в org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) в org.apache.catalina.valves.ErrorReportValve.invoke.Reve.Reg.Reg.Reve.Reg.Reg.Reg.Reg.Reg.Reg.Reg.Reg.Reg.Reg.Reg.Reg..apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) в org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) в org.apache.catoyina Coter..java:342) в org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:498) в org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) в org.apache.coyote.bstract ConnectionHandler.process(AbstractProtocol.java:796) в org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1368) в org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) в java.util.concurrent.ThreadPoolExecutor.runWorker(неизвестный источник) в java.util.concurrent.ThreadPool Исполнитель $Worker.run(Неизвестный источник) в org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) в java.lang.Thread.run(Неизвестный источник). Причина: java.lang.NullPointerException в info.magnolia.objectfactory.CandidateParameterResolver.resolveParameter(CandidateParameterResolver.java:78) в info.magnolia.objectfactory.:143) по адресу info.magnolia.objectfactory.ObjectManufacturer.newInstance(ObjectManufacturer.java:86) по адресу info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstanceWithParameterResolvers(GuiceComponentProvider.javamagn.obence.omject.obob.object.object.obob.newInstance(GuiceComponentProvider.java:107) на info.magnolia.ui.api.action.AbstractActionExecutor.createAction(AbstractActionExecutor.java:90) на info.magnolia.ui.api.action.AbstractActionExecutor.execute(AbstractActionExecutor.java:61) ... еще 107
Я действительно не понимаю, где проблема.
1 ответ
Что вы устанавливаете как implementationClass
в вашем AddArticleActionDefinition
? Это должно указывать на AddArticleAction
, Я подозреваю, что это не так, следовательно, Caused by: java.lang.NullPointerException
исключение. Исполнитель не может вызвать ваше действие, потому что оно не установлено.