当前位置:编程学习 > JAVA >>

jbpm4.4问题

	@RequestMapping("/getProcessList")
@ResponseBody
public List<ProcessDefinition> getProcessList(){
              List<ProcessDefinition> list=repositoryService.createProcessDefinitionQuery().list();

return list;
}

list能转换为json吗
我用的是jbpm4.4+springMVC+extJs3.3,
jbpm里的都是接口,除了用字符串一点一点拼接值,还有什么别的办法吗?
现在调用controller中的方法返回这个集合总是500错误 --------------------编程问答-------------------- List要转json,要看<>里的对象是否能转json --------------------编程问答--------------------
引用 1 楼 oh_Maxy 的回复:
List要转json,要看<>里的对象是否能转json

	/**
 * 获取流程定义信息
 * @return
 */
@RequestMapping("/getProcessList")
@ResponseBody
public Object getProcessList(){
ProcessDefinition p=new ProcessDefinitionImpl();
//泛型是个接口
List<ProcessDefinition> list=repositoryService.createProcessDefinitionQuery().list();
        //泛型是上面接口的实现类
List<ProcessDefinitionImpl> list2=new ArrayList<ProcessDefinitionImpl>();
for(int i=0;i<list.size();i++){
// ProcessDefinition processDefinition=list.get(i);
//将值赋给实现类,这个类里有变量的set get方法,
ProcessDefinitionImpl processDefinitionImpl=(ProcessDefinitionImpl) list.get(i);
//然后加到list里
list2.add(processDefinitionImpl);
}
return list2;//返回依然是500错误
}
--------------------编程问答-------------------- 500错误 ,具体的错误信息呢。 --------------------编程问答--------------------
引用 3 楼 rui888 的回复:
500错误 ,具体的错误信息呢。
<html><head>
<title>Apache Tomcat/6.0.32 - Error report</title>
 </head>
<body>
<h1>HTTP Status 500 - </h1>
<HR size="1" noshade="noshade">
<p><b>type</b> Status report</p>
<p><b>message</b> <u></u></p><p>
<b>description</b>
 <u>The server encountered an internal error () that prevented it from fulfilling this request.</u>
</p><HR size="1" noshade="noshade"><h3>Apache Tomcat/6.0.32</h3>
</body></html>
--------------------编程问答-------------------- 具体看错误信息才知道 --------------------编程问答--------------------
引用 5 楼 huxiweng 的回复:
具体看错误信息才知道
错误信息在4楼 --------------------编程问答--------------------
引用 6 楼 liloking1 的回复:
Quote: 引用 5 楼 huxiweng 的回复:

具体看错误信息才知道
错误信息在4楼

还是不全! --------------------编程问答--------------------
引用 4 楼 liloking1 的回复:
Quote: 引用 3 楼 rui888 的回复:

500错误 ,具体的错误信息呢。
<html><head>
<title>Apache Tomcat/6.0.32 - Error report</title>
 </head>
<body>
<h1>HTTP Status 500 - </h1>
<HR size="1" noshade="noshade">
<p><b>type</b> Status report</p>
<p><b>message</b> <u></u></p><p>
<b>description</b>
 <u>The server encountered an internal error () that prevented it from fulfilling this request.</u>
</p><HR size="1" noshade="noshade"><h3>Apache Tomcat/6.0.32</h3>
</body></html>

嗯,这个只是说服务端出错了,需要具体看看服务端的日志,到底哪错了。tomcat/logs/catalina.out --------------------编程问答--------------------
引用 8 楼 oh_Maxy 的回复:
Quote: 引用 4 楼 liloking1 的回复:

Quote: 引用 3 楼 rui888 的回复:

500错误 ,具体的错误信息呢。
<html><head>
<title>Apache Tomcat/6.0.32 - Error report</title>
 </head>
<body>
<h1>HTTP Status 500 - </h1>
<HR size="1" noshade="noshade">
<p><b>type</b> Status report</p>
<p><b>message</b> <u></u></p><p>
<b>description</b>
 <u>The server encountered an internal error () that prevented it from fulfilling this request.</u>
</p><HR size="1" noshade="noshade"><h3>Apache Tomcat/6.0.32</h3>
</body></html>

嗯,这个只是说服务端出错了,需要具体看看服务端的日志,到底哪错了。tomcat/logs/catalina.out
tomcat的日志中没有输出错误信息啊 --------------------编程问答--------------------
		RepositoryService repositoryService = processEngine.getRepositoryService();
// 泛型是个接口
List<ProcessDefinition> list = repositoryService
.createProcessDefinitionQuery().list();
Gson gson=new Gson();
gson.toJson(list);//这里转换报异常

return list;
严重: Servlet.service() for servlet spring-mvc threw exception
java.lang.IllegalStateException: Circular reference found: activity(start1)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:128)
at com.google.gson.JsonSerializationVisitor.getJsonElementForChild(JsonSerializationVisitor.java:163)
at com.google.gson.JsonSerializationVisitor.addAsChildOfObject(JsonSerializationVisitor.java:137)
at com.google.gson.JsonSerializationVisitor.visitObjectField(JsonSerializationVisitor.java:132)
at com.google.gson.ObjectNavigator.navigateClassFields(ObjectNavigator.java:179)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:151)
at com.google.gson.JsonSerializationVisitor.getJsonElementForChild(JsonSerializationVisitor.java:163)
at com.google.gson.JsonSerializationVisitor.addAsArrayElement(JsonSerializationVisitor.java:150)
at com.google.gson.JsonSerializationVisitor.visitCollection(JsonSerializationVisitor.java:78)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:137)
at com.google.gson.JsonSerializationVisitor.getJsonElementForChild(JsonSerializationVisitor.java:163)
at com.google.gson.JsonSerializationVisitor.addAsChildOfObject(JsonSerializationVisitor.java:137)
at com.google.gson.JsonSerializationVisitor.visitCollectionField(JsonSerializationVisitor.java:103)
at com.google.gson.ObjectNavigator.navigateClassFields(ObjectNavigator.java:174)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:151)
at com.google.gson.JsonSerializationVisitor.getJsonElementForChild(JsonSerializationVisitor.java:163)
at com.google.gson.JsonSerializationVisitor.addAsChildOfObject(JsonSerializationVisitor.java:137)
at com.google.gson.JsonSerializationVisitor.visitObjectField(JsonSerializationVisitor.java:132)
at com.google.gson.ObjectNavigator.navigateClassFields(ObjectNavigator.java:179)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:151)
at com.google.gson.JsonSerializationVisitor.getJsonElementForChild(JsonSerializationVisitor.java:163)
at com.google.gson.JsonSerializationVisitor.addAsArrayElement(JsonSerializationVisitor.java:150)
at com.google.gson.JsonSerializationVisitor.visitCollection(JsonSerializationVisitor.java:78)
at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:137)
at com.google.gson.JsonSerializationContextDefault.serialize(JsonSerializationContextDefault.java:47)
at com.google.gson.Gson.toJson(Gson.java:273)
at com.google.gson.Gson.toJson(Gson.java:229)
at com.google.gson.Gson.toJson(Gson.java:209)
at com.jbpm.test.controller.JbpmController.getProcessList(JbpmController.java:232)
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.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:212)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
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:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
--------------------编程问答-------------------- 确定是gson.toJson(list);这里出错了?怎么看异常,像是get出错了?
--------------------编程问答--------------------
引用 11 楼 oh_Maxy 的回复:
确定是gson.toJson(list);这里出错了?怎么看异常,像是get出错了?
是getProcessList方法中的gson.toJson(list);出错
/**
 * 获取流程定义信息
 * 
 * @return
 */
@RequestMapping("/getProcessList")
@ResponseBody
public Object getProcessList() {
RepositoryService repositoryService = processEngine.getRepositoryService();
// 泛型是个接口
List<ProcessDefinition> list = repositoryService
.createProcessDefinitionQuery().list();
Gson gson=new Gson();
gson.toJson(list);//这里转换报异常

return list;
}
--------------------编程问答--------------------
引用 12 楼 liloking1 的回复:
Quote: 引用 11 楼 oh_Maxy 的回复:

确定是gson.toJson(list);这里出错了?怎么看异常,像是get出错了?
是getProcessList方法中的gson.toJson(list);出错
/**
 * 获取流程定义信息
 * 
 * @return
 */
@RequestMapping("/getProcessList")
@ResponseBody
public Object getProcessList() {
RepositoryService repositoryService = processEngine.getRepositoryService();
// 泛型是个接口
List<ProcessDefinition> list = repositoryService
.createProcessDefinitionQuery().list();
Gson gson=new Gson();
gson.toJson(list);//这里转换报异常

return list;
}

ProcessDefinition类什么结构? --------------------编程问答-------------------- 看异常,像是存在循环引用,死循环了的 --------------------编程问答--------------------
引用 13 楼 oh_Maxy 的回复:
ProcessDefinition类什么结构?
/** a graphical process which is deployed in the {@link RepositoryService}.
 * 
 * @author Tom Baeyens
 */
public interface ProcessDefinition extends Serializable {

  /** the short display name given to this process definition. 
   * Multiple process definitions can have the same as long 
   * as they are given a different {@link #getVersion() version}.  */
  String getName();

  /** the user defined short representation of the name. Just 
   * like the name, multiple versions of a process definition 
   * can have the same key. */
  String getKey();

  /** the unique id for this process definition that is used as a reference in the service methods. */
  String getId();

  /** automatically assigned during deployment of a process that 
   * represents the sequence number for process definitions with 
   * the same {@link #getName() name}. */ 
  int getVersion();
  
  /** references the deployment in which this process definition is
   * deployed. */
  String getDeploymentId();
  
  /** the name of the resource in the deployment which contains the image 
   * file for this process */
  String getImageResourceName();

  /** description of the process definition */
  String getDescription();
  
  /** Returns whether this process definition is currently suspended. */
  boolean isSuspended();
  
}
--------------------编程问答-------------------- --------------------编程问答-------------------- repositoryService                 .createProcessDefinitionQuery().list(); 
这个操作返回的list的数据结构式什么样的?

引用 14 楼 oh_Maxy 的回复:
看异常,像是存在循环引用,死循环了的
--------------------编程问答-------------------- 具体看错误信息才知道  --------------------编程问答--------------------
引用 17 楼 oh_Maxy 的回复:
repositoryService                 .createProcessDefinitionQuery().list(); 
这个操作返回的list的数据结构式什么样的?
  ArrayList --------------------编程问答-------------------- 出现了循环引用
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,