Ich bin nach wie vor an meinem Vaadin-Activitiprojekt dran, mit H2 gibt es keine Probleme mehr, aber nun habe ich eine rätselhafte Nullpointerexception in Vaadin, obgleich ich versucht habe, die ProcessEngine streng nach Kochbuch zu erzeugen:
Ich habe die Activiti-Jars in das WEG-INF/lib verzeichnis meines Tomcat Webservers gesetzt, die Activiti-Wars befinden sich im webapps Verzeichnis und die activiti.cfg.xml-Datei habe ich an verschiedene Stellen gesetzt, aber ich bekomme, da die Process-Engine offenbar immer null ist, immer meine Notification angezeigt (siehe Code):
Ich habe die erwähnte activiti.cfg.xml mal n das WEB-INF/lib-VZ gesetzt, mal nach WEB-INF, dann in das Package, in dem sich auch meine Servletklasse TestservletUI befindet, aber ich bekomme immer und immer wieder eine Nullpointerexception, obwohl ich genau die activiti.cfg.xml des Activiti-Usermanuals genommen habe:
Um die Frage zu auf den Punkt zu bringen: Was mache ich falsch?
Code:
package com.example.testservlet; import javax.servlet.annotation.WebServlet; import com.vaadin.annotations.Theme; import com.vaadin.annotations.VaadinServletConfiguration; import com.vaadin.server.VaadinRequest; import com.vaadin.server.VaadinServlet; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Label; import com.vaadin.ui.Notification; import com.vaadin.ui.UI; import com.vaadin.ui.VerticalLayout; import org.activiti.engine.*; @SuppressWarnings("serial") @Theme("testservlet") public class TestservletUI extends UI { @WebServlet(value = "/*", asyncSupported = true) @VaadinServletConfiguration(productionMode = false, ui = TestservletUI.class) public static class Servlet extends VaadinServlet { } @Override protected void init(VaadinRequest request) { final VerticalLayout layout = new VerticalLayout(); layout.setMargin(true); setContent(layout); ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); if(processEngine == null){ Notification.show("Here we go with a nil engine."); } Button button = new Button("Click Me"); button.addClickListener(new Button.ClickListener() { public void buttonClick(ClickEvent event) { layout.addComponent(new Label("Thank you for clicking")); } }); layout.addComponent(button); } }
Ich habe die Activiti-Jars in das WEG-INF/lib verzeichnis meines Tomcat Webservers gesetzt, die Activiti-Wars befinden sich im webapps Verzeichnis und die activiti.cfg.xml-Datei habe ich an verschiedene Stellen gesetzt, aber ich bekomme, da die Process-Engine offenbar immer null ist, immer meine Notification angezeigt (siehe Code):
Ich habe die erwähnte activiti.cfg.xml mal n das WEB-INF/lib-VZ gesetzt, mal nach WEB-INF, dann in das Package, in dem sich auch meine Servletklasse TestservletUI befindet, aber ich bekomme immer und immer wieder eine Nullpointerexception, obwohl ich genau die activiti.cfg.xml des Activiti-Usermanuals genommen habe:
Code:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> <property name="jdbcUrl" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000" /> <property name="jdbcDriver" value="org.h2.Driver" /> <property name="jdbcUsername" value="sa" /> <property name="jdbcPassword" value="" /> <property name="databaseSchemaUpdate" value="true" /> <property name="jobExecutorActivate" value="false" /> <property name="mailServerHost" value="mail.my-corp.com" /> <property name="mailServerPort" value="5025" /> </bean> </beans>
Comment