- 浏览: 81761 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
白菜1578:
Unable to update index for cent ...
Drools规则引擎介绍PPT及利用Drools实现的信用卡申请审批规则实例 -
sinodragon21:
学习 留爪
《深入浅出jBPM》一书中第7章与第9章相关工程的源码 -
glorysongglory:
org.jbpm.JbpmException: closed ...
《深入浅出jBPM》一书中第7章与第9章相关工程的源码 -
chancong:
貌似跟杨大川视频上讲的内容很像
多维查询表达式——MDX教程系列一 -
chengguogen:
请您给我们作个培训吧,如何?我们需要专业支持。chenggg@ ...
jbpm工作流引擎介绍
《深入浅出jBPM》一书中第7章与第9章相关工程的源码。本书由人民邮电出版社出版。
第7章介绍的报销及采购流程的完整工程及其源代码: jbpm-web-test.rar
第9章企业级应用里涉及到的工程及相关EJB的源代码:jbpm-ent-test.ear.rar
我发现ManagerAssignment这个handler根本没有被调用,请高老师解释下
要在 destinations-service.xml 配置文件中配置队列吗?
第7章介绍的报销及采购流程的完整工程及其源代码: jbpm-web-test.rar
第9章企业级应用里涉及到的工程及相关EJB的源代码:jbpm-ent-test.ear.rar
- jbpm-web-test.rar (5.4 MB)
- 下载次数: 6216
- jbpm-ent-test.ear.rar (5.3 MB)
- 下载次数: 2826
评论
171 楼
sinodragon21
2014-03-26
学习 留爪
170 楼
glorysongglory
2012-11-12
org.jbpm.JbpmException: closed JbpmContext in different order then they were created... check your try-finally's around JbpmContexts blocks
org.jbpm.JbpmConfiguration.popJbpmContext(JbpmConfiguration.java:580)
org.jbpm.JbpmConfiguration.jbpmContextClosed(JbpmConfiguration.java:592)
org.jbpm.JbpmContext.close(JbpmContext.java:144)
org.jbpm.web.JbpmContextFilter.doFilter(JbpmContextFilter.java:85)
这样的问题怎么解决呢?高老师
org.jbpm.JbpmConfiguration.popJbpmContext(JbpmConfiguration.java:580)
org.jbpm.JbpmConfiguration.jbpmContextClosed(JbpmConfiguration.java:592)
org.jbpm.JbpmContext.close(JbpmContext.java:144)
org.jbpm.web.JbpmContextFilter.doFilter(JbpmContextFilter.java:85)
这样的问题怎么解决呢?高老师
169 楼
SB1006
2010-11-21
高老师 您好 我有个问题,就是第一个流程我创建实例的时候我后台打出下面部分后没有报错,但是我查了下jbpm_taskinstance这个表 没有任务实例数据,创建实例没成功,麻烦帮我看下,谢谢
2010-11-21 22:05:12,812 WARN (org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog:581) - Narrowing proxy to class org.jbpm.graph.node.StartState - this operation breaks ==
2010-11-21 22:05:12,843 WARN (org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog:581) - Narrowing proxy to class org.jbpm.graph.node.TaskNode - this operation breaks ==
2010-11-21 22:05:12,812 WARN (org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog:581) - Narrowing proxy to class org.jbpm.graph.node.StartState - this operation breaks ==
2010-11-21 22:05:12,843 WARN (org.hibernate.engine.StatefulPersistenceContext.ProxyWarnLog:581) - Narrowing proxy to class org.jbpm.graph.node.TaskNode - this operation breaks ==
168 楼
SB1006
2010-11-18
您好,能不能把建表sql上传下,这样跑实例代码更容易些,谢谢
167 楼
eminemning
2010-11-12
高洁写的垃圾书,他tm难看




166 楼
ye无痕
2010-11-10
郁闷,为什么我这里也没有配置文件呢,请指点下!!!
165 楼
roy2008linkage
2010-09-27
同问167楼的。第七章的采购流程实例。
看了高老师的jbpm的mail配置,怎么发邮件不用用户名、密码啊。一直报错,和167楼的一样的错
看了高老师的jbpm的mail配置,怎么发邮件不用用户名、密码啊。一直报错,和167楼的一样的错
164 楼
liyunqi
2010-09-19
高老师,首先感谢你出的这本《深入浅出jBPM》,对我帮助很大。不过,我是入门新手,在认真看本书中遇到一些问题,希望你帮助解决一下:
我从第一章看到第七章(目前看到第七章),所有的例子基本都可以正常运行,也仔细的按照书中所写的内容实现了相当的代码,不过,也发现一些问题,都是与邮件发送有关的。
问题分别来自:
1、第107-111页的mail node节点示例
2、第127-131页的tasknotify流程示例
3、第七章的采购流程示例中的邮件发送功能
以上3处问题都出现在邮件发送失败。
按照书中所写,配置jbpm.cfg.xml(已放在classpath下),增加内容:
<string name="jbpm.mail.smtp.host" value="smtp.gmail.com"/>
<bean name="jbpm.mail.address.resolver" class="test.TestMailResolver" singleton="true"/>
<string name="jbpm.mail.from.address" value="liyunqi168@gmail.com"/>
以上内容,我当然改成了自己所使用的邮箱,
,
我当时也在想,这样应该是不能发邮件吧,理由是:邮件的用户名和密码都没有配置出来,这样就能发邮件了吗,感觉不行?
果然在测试是发送不了邮件,报出程度异常错误,如:运行第七章的采购流程示例TestPurchaseProcess.java报错如下:
org.jbpm.graph.def.DelegationException: couldn't send email
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:259)
at org.jbpm.taskmgmt.exe.TaskInstance.assign(TaskInstance.java:198)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:197)
at org.jbpm.graph.node.TaskNode.execute(TaskNode.java:168)
at org.jbpm.graph.def.Node.enter(Node.java:318)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$9daea9b7.enter(<generated>)
at org.jbpm.graph.def.Transition.take(Transition.java:151)
at org.jbpm.graph.def.Node.leave(Node.java:393)
at org.jbpm.graph.def.Node.leave(Node.java:368)
at org.jbpm.graph.node.Fork.execute(Fork.java:140)
at org.jbpm.graph.def.Node.enter(Node.java:318)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$9daea9b7.enter(<generated>)
at org.jbpm.graph.def.Transition.take(Transition.java:151)
at org.jbpm.graph.def.Node.leave(Node.java:393)
at org.jbpm.graph.node.StartState.leave(StartState.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$9daea9b7.leave(<generated>)
at org.jbpm.graph.exe.Token.signal(Token.java:192)
at org.jbpm.graph.exe.Token.signal(Token.java:140)
at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:479)
at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:393)
at test.testprocess.TestPurchaseProcess.newProcessInstance(TestPurchaseProcess.java:46)
at test.testprocess.TestPurchaseProcess.testPurchaseProcess(TestPurchaseProcess.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: org.jbpm.JbpmException: couldn't send email
at org.jbpm.mail.Mail.send(Mail.java:208)
at org.jbpm.mail.Mail.send(Mail.java:160)
at org.jbpm.mail.Mail.execute(Mail.java:81)
at org.jbpm.graph.def.Action.execute(Action.java:122)
at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:259)
at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:215)
at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:185)
at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:169)
at org.jbpm.taskmgmt.exe.TaskInstance.setActorId(TaskInstance.java:292)
at org.jbpm.taskmgmt.exe.TaskInstance.setActorId(TaskInstance.java:262)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignmentActorIdExpr(TaskMgmtInstance.java:287)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:247)
... 54 more
Caused by: javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. 33sm10603102wad.6
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at org.jbpm.mail.Mail.send(Mail.java:206)
... 65 more
另外,我也查看了高老师这里前面的几个回贴,如你回的第26楼贴,说这样配置:
<string name="jbpm.mail.smtp.host" value="smtp.gmail.com" />
<!-- 配置邮件来源地址 -->
<string name="jbpm.mail.from.address" value="aaa@gmail.com" />
<!-- 邮件安全验证 -->
<string name="jbpm.mail.smtp.auth" value="true" />
<!-- 用户名 -->
<string name="jbpm.mail.user" value="aaa@gmail.com" />
<!-- 密码 -->
<string name="jbpm.mail.password" value="****" />
我参考了这里的方法,我更改成这样依然邮件发送不成功。
另,又有回帖说,更改jBPM源码org.jbpm.mail包下的Mail.java文件,这一步,我没有试过,不知真的能否成功。
相信其他书友也遇到同样的问题,
麻烦高老师把邮件发送的这个功能详细指点一下,谢谢!
我从第一章看到第七章(目前看到第七章),所有的例子基本都可以正常运行,也仔细的按照书中所写的内容实现了相当的代码,不过,也发现一些问题,都是与邮件发送有关的。
问题分别来自:
1、第107-111页的mail node节点示例
2、第127-131页的tasknotify流程示例
3、第七章的采购流程示例中的邮件发送功能
以上3处问题都出现在邮件发送失败。
按照书中所写,配置jbpm.cfg.xml(已放在classpath下),增加内容:
<string name="jbpm.mail.smtp.host" value="smtp.gmail.com"/>
<bean name="jbpm.mail.address.resolver" class="test.TestMailResolver" singleton="true"/>
<string name="jbpm.mail.from.address" value="liyunqi168@gmail.com"/>
以上内容,我当然改成了自己所使用的邮箱,

我当时也在想,这样应该是不能发邮件吧,理由是:邮件的用户名和密码都没有配置出来,这样就能发邮件了吗,感觉不行?
果然在测试是发送不了邮件,报出程度异常错误,如:运行第七章的采购流程示例TestPurchaseProcess.java报错如下:
org.jbpm.graph.def.DelegationException: couldn't send email
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:259)
at org.jbpm.taskmgmt.exe.TaskInstance.assign(TaskInstance.java:198)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:197)
at org.jbpm.graph.node.TaskNode.execute(TaskNode.java:168)
at org.jbpm.graph.def.Node.enter(Node.java:318)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$9daea9b7.enter(<generated>)
at org.jbpm.graph.def.Transition.take(Transition.java:151)
at org.jbpm.graph.def.Node.leave(Node.java:393)
at org.jbpm.graph.def.Node.leave(Node.java:368)
at org.jbpm.graph.node.Fork.execute(Fork.java:140)
at org.jbpm.graph.def.Node.enter(Node.java:318)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$9daea9b7.enter(<generated>)
at org.jbpm.graph.def.Transition.take(Transition.java:151)
at org.jbpm.graph.def.Node.leave(Node.java:393)
at org.jbpm.graph.node.StartState.leave(StartState.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$9daea9b7.leave(<generated>)
at org.jbpm.graph.exe.Token.signal(Token.java:192)
at org.jbpm.graph.exe.Token.signal(Token.java:140)
at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:479)
at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:393)
at test.testprocess.TestPurchaseProcess.newProcessInstance(TestPurchaseProcess.java:46)
at test.testprocess.TestPurchaseProcess.testPurchaseProcess(TestPurchaseProcess.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: org.jbpm.JbpmException: couldn't send email
at org.jbpm.mail.Mail.send(Mail.java:208)
at org.jbpm.mail.Mail.send(Mail.java:160)
at org.jbpm.mail.Mail.execute(Mail.java:81)
at org.jbpm.graph.def.Action.execute(Action.java:122)
at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:259)
at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:215)
at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:185)
at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:169)
at org.jbpm.taskmgmt.exe.TaskInstance.setActorId(TaskInstance.java:292)
at org.jbpm.taskmgmt.exe.TaskInstance.setActorId(TaskInstance.java:262)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignmentActorIdExpr(TaskMgmtInstance.java:287)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:247)
... 54 more
Caused by: javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. 33sm10603102wad.6
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at org.jbpm.mail.Mail.send(Mail.java:206)
... 65 more
另外,我也查看了高老师这里前面的几个回贴,如你回的第26楼贴,说这样配置:
<string name="jbpm.mail.smtp.host" value="smtp.gmail.com" />
<!-- 配置邮件来源地址 -->
<string name="jbpm.mail.from.address" value="aaa@gmail.com" />
<!-- 邮件安全验证 -->
<string name="jbpm.mail.smtp.auth" value="true" />
<!-- 用户名 -->
<string name="jbpm.mail.user" value="aaa@gmail.com" />
<!-- 密码 -->
<string name="jbpm.mail.password" value="****" />
我参考了这里的方法,我更改成这样依然邮件发送不成功。
另,又有回帖说,更改jBPM源码org.jbpm.mail包下的Mail.java文件,这一步,我没有试过,不知真的能否成功。
相信其他书友也遇到同样的问题,
麻烦高老师把邮件发送的这个功能详细指点一下,谢谢!
163 楼
showtime520
2010-09-12
summerweiyang 写道
刚才翻阅前面的同志出现的异常和我的很像,高老师说是否把变量ISSEU_PERSON放入流程实例当中,看后果然发现是个错误。
于是我尝试着修改拉Constans.java中,String final ISSEU_PERSON="issueperson"
或者把流程其他文件里的issueperson改为issue_person则都不会使junit报错。
但是无论修改于否,整个流程只能进行到部门经理这个环节,不能向下进行。
我也尝试修改TestProcess.java中关于关于部门经理是否同意的参数,调整为不同意,但是仍然流不到财务报销结果的Node当中,望指教啊。。。
是不是就是
package test.assignment;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.taskmgmt.def.AssignmentHandler;
import org.jbpm.taskmgmt.exe.Assignable;
import test.Constants;
public class ManagerAssignment implements AssignmentHandler,Constants
{
public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception
{
//从当前流程实例上下文中取得当前报销人
String issueperson = executionContext.getContextInstance().getVariable(Constants.ISSUE_PERSON).toString();
if(issueperson.equals("user1"))
{
//当前报销人为user1,部门经理为manager1;
assignable.setActorId("manager1");
}
else
{
//当报销人为其他人时manager2
assignable.setActorId("manager2");
}
}
}
当中String issueperson = executionContext.getContextInstance().getVariable(Constants.ISSUE_PERSON).toString();
无法获取ISSUE_PERSON在上下文当中的传进来的数据呢?怎么可以传进来呢?
还有,如果有可能的话,能不能发一份带有第一个报销流程的TestPaymentProcess.java的文件给我呢,谢谢拉。
于是我尝试着修改拉Constans.java中,String final ISSEU_PERSON="issueperson"
或者把流程其他文件里的issueperson改为issue_person则都不会使junit报错。
但是无论修改于否,整个流程只能进行到部门经理这个环节,不能向下进行。
我也尝试修改TestProcess.java中关于关于部门经理是否同意的参数,调整为不同意,但是仍然流不到财务报销结果的Node当中,望指教啊。。。
是不是就是
package test.assignment;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.taskmgmt.def.AssignmentHandler;
import org.jbpm.taskmgmt.exe.Assignable;
import test.Constants;
public class ManagerAssignment implements AssignmentHandler,Constants
{
public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception
{
//从当前流程实例上下文中取得当前报销人
String issueperson = executionContext.getContextInstance().getVariable(Constants.ISSUE_PERSON).toString();
if(issueperson.equals("user1"))
{
//当前报销人为user1,部门经理为manager1;
assignable.setActorId("manager1");
}
else
{
//当报销人为其他人时manager2
assignable.setActorId("manager2");
}
}
}
当中String issueperson = executionContext.getContextInstance().getVariable(Constants.ISSUE_PERSON).toString();
无法获取ISSUE_PERSON在上下文当中的传进来的数据呢?怎么可以传进来呢?
还有,如果有可能的话,能不能发一份带有第一个报销流程的TestPaymentProcess.java的文件给我呢,谢谢拉。
我发现ManagerAssignment这个handler根本没有被调用,请高老师解释下
162 楼
summerweiyang
2010-08-24
楼下的同志们,有没有会连接TOMCAT6。0到SQL2005啊,求帮助啊。。。
161 楼
xufang123456
2010-08-20
高老师,在采购流程中我在点击“我的待办任务”菜单中的操作列表下的“处理该流程”出现如下异常:
java.sql.SQLException: 未执行语句句柄: getMetaData
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.OracleResultSetImpl.getMetaData(OracleResultSetImpl.java:134)
at oracle.jdbc.driver.OraclePreparedStatement.getMetaData(OraclePreparedStatement.java:3984)
at test.dao.BusinessDAO.query(BusinessDAO.java:45)
at org.apache.jsp.cancel_002dapply_jsp._jspService(cancel_002dapply_jsp.java:96)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
这是什么原因?希望你帮我解决一下
java.sql.SQLException: 未执行语句句柄: getMetaData
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.OracleResultSetImpl.getMetaData(OracleResultSetImpl.java:134)
at oracle.jdbc.driver.OraclePreparedStatement.getMetaData(OraclePreparedStatement.java:3984)
at test.dao.BusinessDAO.query(BusinessDAO.java:45)
at org.apache.jsp.cancel_002dapply_jsp._jspService(cancel_002dapply_jsp.java:96)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
这是什么原因?希望你帮我解决一下
160 楼
summerweiyang
2010-08-20
刚才翻阅前面的同志出现的异常和我的很像,高老师说是否把变量ISSEU_PERSON放入流程实例当中,看后果然发现是个错误。
于是我尝试着修改拉Constans.java中,String final ISSEU_PERSON="issueperson"
或者把流程其他文件里的issueperson改为issue_person则都不会使junit报错。
但是无论修改于否,整个流程只能进行到部门经理这个环节,不能向下进行。
我也尝试修改TestProcess.java中关于关于部门经理是否同意的参数,调整为不同意,但是仍然流不到财务报销结果的Node当中,望指教啊。。。
是不是就是
package test.assignment;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.taskmgmt.def.AssignmentHandler;
import org.jbpm.taskmgmt.exe.Assignable;
import test.Constants;
public class ManagerAssignment implements AssignmentHandler,Constants
{
public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception
{
//从当前流程实例上下文中取得当前报销人
String issueperson = executionContext.getContextInstance().getVariable(Constants.ISSUE_PERSON).toString();
if(issueperson.equals("user1"))
{
//当前报销人为user1,部门经理为manager1;
assignable.setActorId("manager1");
}
else
{
//当报销人为其他人时manager2
assignable.setActorId("manager2");
}
}
}
当中String issueperson = executionContext.getContextInstance().getVariable(Constants.ISSUE_PERSON).toString();
无法获取ISSUE_PERSON在上下文当中的传进来的数据呢?怎么可以传进来呢?
还有,如果有可能的话,能不能发一份带有第一个报销流程的TestPaymentProcess.java的文件给我呢,谢谢拉。
于是我尝试着修改拉Constans.java中,String final ISSEU_PERSON="issueperson"
或者把流程其他文件里的issueperson改为issue_person则都不会使junit报错。
但是无论修改于否,整个流程只能进行到部门经理这个环节,不能向下进行。
我也尝试修改TestProcess.java中关于关于部门经理是否同意的参数,调整为不同意,但是仍然流不到财务报销结果的Node当中,望指教啊。。。
是不是就是
package test.assignment;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.taskmgmt.def.AssignmentHandler;
import org.jbpm.taskmgmt.exe.Assignable;
import test.Constants;
public class ManagerAssignment implements AssignmentHandler,Constants
{
public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception
{
//从当前流程实例上下文中取得当前报销人
String issueperson = executionContext.getContextInstance().getVariable(Constants.ISSUE_PERSON).toString();
if(issueperson.equals("user1"))
{
//当前报销人为user1,部门经理为manager1;
assignable.setActorId("manager1");
}
else
{
//当报销人为其他人时manager2
assignable.setActorId("manager2");
}
}
}
当中String issueperson = executionContext.getContextInstance().getVariable(Constants.ISSUE_PERSON).toString();
无法获取ISSUE_PERSON在上下文当中的传进来的数据呢?怎么可以传进来呢?
还有,如果有可能的话,能不能发一份带有第一个报销流程的TestPaymentProcess.java的文件给我呢,谢谢拉。
159 楼
summerweiyang
2010-08-20
Dear Jacky
在第七章报销流程进行junit进行测试的时候,出现错误。错误代码如下。
org.jbpm.graph.def.DelegationException
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:259)
at org.jbpm.taskmgmt.exe.TaskInstance.assign(TaskInstance.java:198)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:197)
at org.jbpm.graph.node.TaskNode.execute(TaskNode.java:168)
at org.jbpm.graph.def.Node.enter(Node.java:318)
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.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$fd4ef93d.enter(<generated>)
at org.jbpm.graph.def.Transition.take(Transition.java:151)
at org.jbpm.graph.def.Node.leave(Node.java:393)
at org.jbpm.graph.node.StartState.leave(StartState.java:70)
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.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$fd4ef93d.leave(<generated>)
at org.jbpm.graph.exe.Token.signal(Token.java:192)
at org.jbpm.graph.exe.Token.signal(Token.java:140)
at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:479)
at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:393)
at test.testprocess.TestProcess.newProcessInstance(TestProcess.java:66)
at test.testprocess.TestProcess.testPayProcess(TestProcess.java:25)
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 junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:243)
at junit.framework.TestSuite.run(TestSuite.java:238)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.NullPointerException
at test.assignment.ManagerAssignment.assign(ManagerAssignment.java:15)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignmentDelegation(TaskMgmtInstance.java:271)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:244)
... 44 more
指向的句子是
String issueperson = executionContext.getContextInstance().getVariable(this.ISSUE_PERSON).toString();
请问该怎么处理啊,搞拉好久拉。
在第七章报销流程进行junit进行测试的时候,出现错误。错误代码如下。
org.jbpm.graph.def.DelegationException
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:259)
at org.jbpm.taskmgmt.exe.TaskInstance.assign(TaskInstance.java:198)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:197)
at org.jbpm.graph.node.TaskNode.execute(TaskNode.java:168)
at org.jbpm.graph.def.Node.enter(Node.java:318)
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.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$fd4ef93d.enter(<generated>)
at org.jbpm.graph.def.Transition.take(Transition.java:151)
at org.jbpm.graph.def.Node.leave(Node.java:393)
at org.jbpm.graph.node.StartState.leave(StartState.java:70)
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.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:157)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$fd4ef93d.leave(<generated>)
at org.jbpm.graph.exe.Token.signal(Token.java:192)
at org.jbpm.graph.exe.Token.signal(Token.java:140)
at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:479)
at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:393)
at test.testprocess.TestProcess.newProcessInstance(TestProcess.java:66)
at test.testprocess.TestProcess.testPayProcess(TestProcess.java:25)
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 junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:243)
at junit.framework.TestSuite.run(TestSuite.java:238)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.NullPointerException
at test.assignment.ManagerAssignment.assign(ManagerAssignment.java:15)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignmentDelegation(TaskMgmtInstance.java:271)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:244)
... 44 more
指向的句子是
String issueperson = executionContext.getContextInstance().getVariable(this.ISSUE_PERSON).toString();
请问该怎么处理啊,搞拉好久拉。
158 楼
xufang123456
2010-08-13
做采购流程时,项目代码写完后运行,出现如下错误:
java.lang.NullPointerException
at org.apache.jsp.write_002dpurchase_jsp._jspService(write_002dpurchase_jsp.java:110)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
提示的是项目中write-purchase.jsp中的
ProcessDefinition pd=jbpmContext.getGraphSession().findLatestProcessDefinition("purchase");
ProcessInstance pi=pd.createProcessInstance();
ContextInstance ci=pi.getContextInstance();
ci.setVariable("issueperson",issueperson);中ProcessInstance pi=pd.createProcessInstance();出现错误,请问高老师这是什么原因,我找了好久都不知道,现在很急这两个问题。你能帮我解决一下吗?谢谢
java.lang.NullPointerException
at org.apache.jsp.write_002dpurchase_jsp._jspService(write_002dpurchase_jsp.java:110)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
提示的是项目中write-purchase.jsp中的
ProcessDefinition pd=jbpmContext.getGraphSession().findLatestProcessDefinition("purchase");
ProcessInstance pi=pd.createProcessInstance();
ContextInstance ci=pi.getContextInstance();
ci.setVariable("issueperson",issueperson);中ProcessInstance pi=pd.createProcessInstance();出现错误,请问高老师这是什么原因,我找了好久都不知道,现在很急这两个问题。你能帮我解决一下吗?谢谢
157 楼
xufang123456
2010-08-13
做p173的例子运行出来时候出现这个错误是怎么回事啊,高老师?
java.lang.NullPointerException
at test.testprocess.TestProcess.newProcessInstance(TestProcess.java:50)
at test.testprocess.TestProcess.testPayProcess(TestProcess.java:21)
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 junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
TaskInstance ti = pi.getTaskMgmtInstance().createStartTaskInstance();
//向任务实例当中写入相关变量
ti.setVariable("title", "测试报销");
ti.setVariable("money_count", "1111");
ti.setVariable("remark", "测试报销的备注");
就是这一行ti.setVariable("title", "测试报销");
它报空指针。很急
java.lang.NullPointerException
at test.testprocess.TestProcess.newProcessInstance(TestProcess.java:50)
at test.testprocess.TestProcess.testPayProcess(TestProcess.java:21)
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 junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
TaskInstance ti = pi.getTaskMgmtInstance().createStartTaskInstance();
//向任务实例当中写入相关变量
ti.setVariable("title", "测试报销");
ti.setVariable("money_count", "1111");
ti.setVariable("remark", "测试报销的备注");
就是这一行ti.setVariable("title", "测试报销");
它报空指针。很急
156 楼
dblin_xm
2010-07-02
解决了,需要在 destinations-service.xml 文件内配置好相应的队列!
155 楼
dblin_xm
2010-06-30
dblin_xm 写道
在学习9.1 EJB方式的异步和任务调度章节时,按书上的要求部署,出现如下错误:
16:49:28,176 WARN [JMSContainerInvoker] JMS provider failure detected for CommandListenerBean
org.jboss.deployment.DeploymentException: Could not find the queue destination-jndi-name=queue/JbpmCommandQueue; - neste
d throwable: (javax.naming.NameNotFoundException: JbpmCommandQueue not bound)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:872)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.startService(JMSContainerInvoker.java:944)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
....
请问是不是还要手工配置队列:JbpmCommandQueue
原因?
16:49:28,176 WARN [JMSContainerInvoker] JMS provider failure detected for CommandListenerBean
org.jboss.deployment.DeploymentException: Could not find the queue destination-jndi-name=queue/JbpmCommandQueue; - neste
d throwable: (javax.naming.NameNotFoundException: JbpmCommandQueue not bound)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:872)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.startService(JMSContainerInvoker.java:944)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
....
请问是不是还要手工配置队列:JbpmCommandQueue
原因?
要在 destinations-service.xml 配置文件中配置队列吗?
154 楼
dblin_xm
2010-06-30
在学习9.1 EJB方式的异步和任务调度章节时,按书上的要求部署,出现如下错误:
16:49:28,176 WARN [JMSContainerInvoker] JMS provider failure detected for CommandListenerBean
org.jboss.deployment.DeploymentException: Could not find the queue destination-jndi-name=queue/JbpmCommandQueue; - neste
d throwable: (javax.naming.NameNotFoundException: JbpmCommandQueue not bound)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:872)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.startService(JMSContainerInvoker.java:944)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
....
请问是不是还要手工配置队列:JbpmCommandQueue
原因?
16:49:28,176 WARN [JMSContainerInvoker] JMS provider failure detected for CommandListenerBean
org.jboss.deployment.DeploymentException: Could not find the queue destination-jndi-name=queue/JbpmCommandQueue; - neste
d throwable: (javax.naming.NameNotFoundException: JbpmCommandQueue not bound)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerStartDelivery(JMSContainerInvoker.java:872)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.startService(JMSContainerInvoker.java:944)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
....
请问是不是还要手工配置队列:JbpmCommandQueue
原因?
153 楼
sofeik
2010-05-01
我现在发不了邮件 报错如下:
org.jbpm.JbpmException: couldn't send email
楼上说“然后是重写org.jbpm.mail包里面的Mail文件”
我该怎样重写jbpm-jpdl.jar 这可是一个.jar包呀 里面有mail.class文件 不明白
org.jbpm.JbpmException: couldn't send email
楼上说“然后是重写org.jbpm.mail包里面的Mail文件”
我该怎样重写jbpm-jpdl.jar 这可是一个.jar包呀 里面有mail.class文件 不明白
152 楼
matthewtmj_ynnu
2010-04-20
高老师,你好!买了你的书,并对第七章的应用进行了部署,感觉很有收获。但目前有个问题:在查看流程进度的时候,process-image.jsp页面老是出现问题。如,org.apache.jasper.JasperException: javax.servlet.ServletException: org.dom4j.DocumentException: Error on line 24 of document : Element type "node" must be followed by either attribute specifications, ">" or "/>". Nested exception: Element type "node" must be followed by either attribute specifications, ">" or "/>".
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
但之前发布的流程,有成功显示过。个人感觉是解析gpd.xml文件的时候出现问题,但经过修改乱码问题后,目前好像没错。
谢谢!
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
但之前发布的流程,有成功显示过。个人感觉是解析gpd.xml文件的时候出现问题,但经过修改乱码问题后,目前好像没错。
谢谢!
相关推荐
《深入浅出JPBM》是一本专注于Java流程管理(Business Process Management, BPM)技术的书籍,其中第9章可能详细探讨了JPBM的核心概念、设计原则以及实际应用。源代码通常用于辅助理解书中的理论知识,使读者能够...
内容概要:本文详细介绍了基于三菱PLC和三菱触摸屏构建的停车场智能管理系统。系统分为入口、出口和管理中心三大部分,分别负责车辆身份识别、车位检测、道闸控制、缴费结算等功能。三菱PLC作为核心控制器,通过梯形图编程实现了车辆检测、道闸控制等关键逻辑;三菱触摸屏提供人机交互界面,支持参数设置、状态监控等功能。文中还讨论了PLC与触摸屏之间的通信配置,以及如何通过物联网技术将系统接入云端。 适合人群:从事智能交通系统开发的技术人员,尤其是熟悉三菱PLC编程和触摸屏应用的工程师。 使用场景及目标:适用于新建或改造停车场项目,旨在提高停车场管理效率和服务质量,减少人工干预,实现智能化运营。 其他说明:文中提供了具体的硬件配置建议、PLC编程实例、触摸屏界面设计指南及通信协议解析,有助于读者快速理解和实施类似项目。
内容概要:本文深入探讨了基于汇川AM401/AM403系列PLC和CODESYS高级编程模式构建的全自动N95口罩机控制系统。该系统涵盖了多个关键技术,包括轴控制(如绝对定位、相对定位)、凸轮同步控制、超声波焊接机控制、放卷张力控制、封边轴焊耳轴随动跟随控制、高速低速切换控制、步进电机精细控制等。此外,还介绍了IT7070系列触摸屏提供的友好交互界面及其产量统计功能。文章详细解析了各部分的具体实现方式,如通过ST语言编写复杂的控制逻辑,利用CAM_Profile生成器动态调整凸轮曲线,以及通过PID算法实现张力控制等。同时,强调了程序的模块化设计和详细的注释,便于维护和扩展。 适合人群:从事自动化生产设备开发的技术人员,尤其是熟悉PLC编程和CODESYS平台的工程师。 使用场景及目标:适用于希望深入了解全自动N95口罩机控制系统设计和实现的专业人士。主要目标是展示如何通过先进的编程技术和控制策略提升口罩生产的效率和质量。 其他说明:文中提到的实际案例和技术细节有助于读者更好地理解和应用相关技术,同时也为类似项目的开发提供了宝贵的参考资料。
内容概要:本文详细介绍了Linux内核移植在嵌入式开发中的重要性及其具体实施步骤。首先,强调了Linux内核移植作为连接硬件与软件桥梁的重要性,特别是在智能穿戴设备、工业自动化控制系统等广泛应用中的角色。文章随后解析了Linux内核移植的主要步骤,包括准备阶段(选择合适的内核版本、获取源码、配置交叉编译环境)、内核源码修改(硬件平台支持、时钟调整、机器码适配)、内核配置(通过make config、make menuconfig或make xconfig进行配置)、内核编译与安装。此外,还探讨了常见的移植问题及其解决方案,如串口打印异常、文件系统挂载故障和驱动适配难题。最后,通过一个具体的ARM架构开发板移植案例,展示了整个移植流程的实际操作,并展望了Linux内核移植技术的发展趋势。 适合人群:具备一定嵌入式开发基础,特别是对Linux内核有一定了解的研发人员和技术爱好者。 使用场景及目标:①帮助开发者理解Linux内核移植的基本概念和流程;②指导开发者在实际项目中进行Linux内核移植,解决常见问题;③为从事嵌入式系统开发的人员提供理论支持和技术参考。 其他说明:Linux内核移植是一项复杂但极具价值的任务,不仅需要扎实的理论知识,还需要丰富的实践经验。随着技术的进步,Linux内核移植技术也在不断发展,未来的方向将更加注重自动化和智能化,以提高移植效率和成功率。建议读者在学习过程中结合实际案例进行练习,逐步积累经验,掌握这一关键技术。
实现全面的系统表征,包括候选项生成、结构检测、参数估计以及动态和静态模型验证。该软件包特别适用于分析具有固有噪声和误差的流动工厂系统,这些系统被建模为受白噪声破坏的二次多项式。 主要特点: 动态数据分析:处理输入和输出的时间序列数据,并验证数据集以进行识别和验证。 结构检测:删除不合适的聚类,并应用AIC和ERR等优化算法来细化模型结构。 参数估计:使用扩展最小二乘(ELS)或受限扩展最小二乘(RELS)计算模型参数。 模型验证:通过残差分析和相关系数评估模型性能。 静态模型仿真:生成静态响应并模拟各种输入条件下的系统行为。 方法概述: 该类包括支持识别过程的几种方法: generateCandidateTerms:构造一个用于系统特征描述的候选术语矩阵。 detectStructure:应用算法精确识别模型结构。 estimateParameters ELS:使用扩展最小二乘法估计动态模型参数。 estimateParameters RELS:使用受限扩展最小二乘法计算参数。 validateModel:分析模型准确性并验证残差行为。 buildStaticResponse:模拟静态模型对不同输入的响应。 displayModel:以文本和面板格式显示已识别的动态模型。 displayStaticModel:展示静态模型及其仿真结果。
内容概要:本文详细介绍了如何使用 COMSOL Multiphysics 对变压器进行时域和频域分析,探讨了磁致伸缩、噪声和洛伦兹力的影响。文中通过具体的代码示例展示了如何设置时域和频域的边界条件,定义磁致伸缩系数,计算洛伦兹力,并通过多物理场耦合模拟变压器的振动和噪声。此外,还讨论了一些常见的仿真技巧和注意事项,如相位对齐、材料非线性特性和边界条件设置等。 适合人群:从事电力系统研究、变压器设计和仿真的工程师和技术人员。 使用场景及目标:适用于希望深入了解变压器内部物理机制及其对外界因素响应的专业人士。通过掌握这些方法,可以优化变压器设计,减少噪声,提升电力系统的稳定性和可靠性。 其他说明:文章不仅提供了理论背景,还给出了实用的代码片段和仿真技巧,帮助读者更好地理解和应用 COMSOL 进行变压器建模。
linux系统~~~~~~~~~~~~~
TheIntroductionOfApache(Apache的有关介绍)
2025免费微信小程序毕业设计成品,包括源码+数据库+往届论文资料,附带启动教程和安装包。 启动教程:https://www.bilibili.com/video/BV1BfB2YYEnS 讲解视频:https://www.bilibili.com/video/BV1BVKMeZEYr 技术栈:Uniapp+Vue.js+SpringBoot+MySQL。 开发工具:Idea+VSCode+微信开发者工具。
内容概要:本文详细介绍了Matlab/Simulink在电气仿真领域的应用,涵盖多个方面。首先讨论了三相逆变器建模的关键参数设置,如载波频率和死区时间。接着探讨了电机控制中PI参数整定的方法,特别是永磁同步电机的矢量控制。对于新能源发电,着重讲解了光伏阵列的MPPT算法及其优化策略。此外,还涉及电力系统仿真的技巧,如自定义变压器模型和故障穿越功能的实现。文中提供了大量实用的代码片段,帮助读者更好地理解和应用这些技术。 适合人群:从事电力电子、电机控制、新能源发电以及电力系统仿真的工程师和技术人员。 使用场景及目标:①快速搭建和优化电力电子设备的仿真模型;②提高电机控制系统的设计效率和性能;③优化新能源发电系统的MPPT算法;④增强电力系统仿真的准确性和可靠性。 其他说明:文章强调了仿真过程中常见的问题及解决方案,提供了丰富的实战经验和技巧,有助于读者在实际工作中少走弯路。同时,鼓励读者利用Simulink自带的案例库进行学习和参考。
MATLAB统计工具箱中的回归分析命令.pptx
NSAC全国重点标准化考试联盟认证试题计算机辅助设计AutoCAD.doc
精灵传信支持在线提交发送短信,查看回复短信,在线购买额度,自定义对接易支付,设置违禁词,支持网站+小程序双端。 环境要求: PHP >= 73 MySQL>=5.6 Nginx>=1.6 系统安装教程 1.导入安装包里的数据库 2.打开.env文件填写数据库信息 3.设置运行目录public 4.设置伪静态thinkphp 后台账号密码分别是admin,123456
1. 插上手机后会自动检测手机是否连接,连接成功后会自动重启; 2. 电脑上有adb 环境; 3. 电脑上装有grep 程序
Matlab-第七讲:编程基础II(-函数-).pptx
内容概要:本文详细介绍了利用遗传算法和免疫算法解决物流配送中心选址问题的方法,并提供了完整的MATLAB源码及注释。文章首先阐述了物流配送中心选址的重要性和挑战,然后重点讲解了适应度函数的设计,包括处理容量约束和超载惩罚。接着介绍了种群初始化、交叉操作、变异操作的具体实现细节,以及如何通过动态调整变异率来避免早熟收敛。此外,还探讨了免疫算法的应用,通过引入抗体浓度机制防止算法陷入局部最优。最后展示了算法的实际效果,包括运输成本的显著降低和车辆满载率的提升。文中提供的代码具有良好的扩展性,能够适应不同的物流网络规模和需求。 适合人群:从事物流管理、运筹优化领域的研究人员和技术人员,特别是对遗传算法、免疫算法感兴趣的开发者。 使用场景及目标:适用于需要优化物流配送中心选址的企业和个人。主要目标是通过合理的数学建模和智能算法,降低运输成本,提高运营效率,实现资源的最佳配置。 其他说明:本文不仅提供理论解释,还包括详细的代码实现和调优建议,帮助读者更好地理解和应用相关算法。同时,代码中预留了多种扩展接口,方便进一步研究和改进。
内容概要:本文详细介绍了一套基于西门子S7-200 PLC的六位密码锁系统的设计与实现。首先介绍了系统的硬件配置,包括六个数字输入点、四个功能键以及三个状态指示灯。接着深入讲解了密码锁的关键代码,如输入检测、密码比对、错误处理和防破解机制。文中还分享了许多实际调试的经验和技术细节,如按键防抖、移位寄存器的应用、指针寻址和循环比较等。此外,作者还讨论了如何优化程序性能,提高系统的稳定性和安全性。 适合人群:具备一定PLC编程基础的技术人员,尤其是从事工业自动化领域的工程师。 使用场景及目标:适用于需要高安全性和可靠性的门禁控制系统,如工厂车间、仓库等场所的安全门管理。主要目标是通过PLC实现一个稳定的六位密码锁系统,防止未经授权的访问。 其他说明:文中提供了详细的代码示例和调试技巧,帮助读者更好地理解和实现该系统。同时,作者还提到未来可能加入指纹识别等高级功能,进一步提升系统的安全性。
JSP重点技术基础习题.doc
家居项目,前端技术栈vue
内容概要:本文详细介绍了光伏发电系统中最大功率点跟踪(MPPT)技术的经典实现方法——扰动观察法(Perturb and Observe),并通过MATLAB/Simulink搭建了一个完整的仿真模型。文章首先解释了扰动观察法的基本原理,即通过不断施加小扰动并监测功率变化来逐步逼近最大功率点。随后展示了具体的Simulink模型构建步骤,包括光伏阵列、Boost电路和控制器的设计。文中特别强调了几个关键参数的选择,如步长(step size)、采样周期(sample time)以及电容值(capacitance value),并对常见错误进行了提示。此外,作者分享了一些实用技巧,如采用动态步长策略以提高响应速度和平滑度,以及在PV模块输出端并联大电容以抑制功率波动。最后,通过实测波形验证了该方法的有效性和可行性。 适合人群:对光伏发电系统及其控制算法感兴趣的工程技术人员,尤其是希望深入了解MPPT原理及其实现方式的研究者和技术爱好者。 使用场景及目标:适用于需要进行光伏发电系统性能优化的研究项目或工业应用场合。主要目标是帮助读者掌握如何利用MATLAB/Simulink平台快速建立可靠的MPPT仿真模型,从而为实际系统的开发提供理论依据和技术支持。 其他说明:文章不仅提供了详细的理论讲解,还包括了大量实践经验的分享,有助于读者更好地理解和应用所学知识。同时,文中提到的所有代码片段和配置建议均经过实际测试,确保其可行性和可靠性。