Всем привет. Ребят, по мере необходимости пришлось осваивать сабжевую технологию.... За неделю голову пока что не сломал, но МОСК выкипел нафик.... Так как хорошей литературы по созданию реальных проектов с этой гадиной я не нашел, пришлось по крупицам собирать все по инету... Итак что получилось: 1 Разработал processdefinition.xml туда понакидовал state-ов и decision-ов. Всем этим гадинам подавал обработчики событий Action\Decision handler (Node-enter event --- Handler...) 2. В этом же проекте создал main для проверки работоспособности кода | Код |
public void main(...) {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource("process/processdefinition.xml"); ProcessInstance processInstance = new ProcessInstance(processDefinition); ContextInstance contextInstance = processInstance.getContextInstance();
// тут - куча сигналов processInstance.signal(); . . . processInstance.signal(); }
|
Тут все отлично отработало, все как в сказке.... Далее деплою прложение, в вкладке Java Classes and Resorces помечаю все классы и external jar которые валяются в проекте. Тут все отлично тоже... Мне jbpm-ая гадюка сказало что все отлично, все задеплоено можешь запускать и радоваться. В jbpm-console вижу этот процесс запускаю его, перехожу по cсылке exam и по нажатию signal.... оно мне выдвет вот такой вот exception | Код | [JDBCExceptionReporter] SQL Error: 0, SQLState: 22001 13:01:55,637 ERROR [JDBCExceptionReporter] Data truncation: Data too long for column 'EXCEPTION_' at row 1 13:11:53,229 WARN [ProxyWarnLog] Narrowing proxy to class org.jbpm.graph.node.State - this operation breaks == 13:11:53,282 ERROR [GraphElement] action threw exception: couldn't get value for file 'classes/com/provoxlab/model/MailSender$SMTPAuthenticator.class' org.jbpm.JbpmException: couldn't get value for file 'classes/com/model/MailSender$SMTPAuthenticator.class' at org.jbpm.file.def.FileDefinition.getBytes(FileDefinition.java:196) at org.jbpm.instantiation.ProcessClassLoader.findClass(ProcessClassLoader.java:116) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at com.provoxlab.handlers.State1Handler.execute(State1Handler.java:13) at org.jbpm.graph.def.Action.execute(Action.java:125) at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:281) at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:238) at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:212) at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:195) at org.jbpm.graph.def.Node.enter(Node.java:369) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197) at org.jbpm.graph.def.Node_$$_javassist_81.enter(Node_$$_javassist_81.java) at org.jbpm.graph.def.Transition.take(Transition.java:166) at org.jbpm.graph.def.Node.leave(Node.java:477) at org.jbpm.graph.node.StartState.leave(StartState.java:80) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197) at org.jbpm.graph.def.Node_$$_javassist_81.leave(Node_$$_javassist_81.java) at org.jbpm.graph.exe.Token.signal(Token.java:226) at org.jbpm.graph.exe.Token.signal(Token.java:149) at org.jbpm.jsf.core.action.SignalActionListener.handleAction(SignalActionListener.java:52) at org.jbpm.jsf.core.impl.JbpmActionListenerWrapper.processAction(JbpmActionListenerWrapper.java:82) at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88) at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:771) at javax.faces.component.UICommand.broadcast(UICommand.java:372) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.NullPointerException at org.jbpm.file.def.FileDefinition.getBytesFromDb(FileDefinition.java:213) at org.jbpm.file.def.FileDefinition.getBytes(FileDefinition.java:193) ... 59 more
|
Вот сообственно у меня два вопроса 1 Как побороть вот эту ошибку? (дело в том что если в самом обработчике определить какию нибидь логику в виде метода он все отлично прохавывает, но если в обаботчике вызывать классы которые находятся в других пакетах этого же проекта то получается вот такая ошибка) 2 Как работать с помощью jbpm-console назначить временные интервалы запуска этого процесса? Т.е. запускать его скажем через каждые 5 часов? Ребята, кто работал с этой технологией подскажите плз... или ссылку. Очень нужно
|