【发布时间】:2011-06-03 03:13:42
【问题描述】:
我有一个问题,我有一个转换器类,例如称为 aConverter:
@XmlRootElement(name = "aConverter")
public class aConverter implements ConverterBase{
private A a;
private Set<B> bs;
/// some constructor code here
...
@XmlElement(name="B")
public Set<B> getBs() {
bs = a.getBs();
return bs;
}
public void setBs(Set<B> bs) {
a.setBs(bs);
}
}
A 类和 B 类分别以循环方式定义:
public class A {
private Set <B> bs;
//constructor code here
...
public Set<B> getBs() {
return this.bs;
}
public void setBs(Set<B> bs) {
this.bs = bs;
}
}
>
public class B {
private A a;
// some constructor code here
...
public A getA() {
return this.a;
}
public void setA(A a) {
this.a = a;
}
}
现在,当我使用网络服务时,我看到以下错误:
[com.sun.istack.internal.SAXException2:在对象图中检测到循环。这将导致无限深的 XML:B@1105452 -> A@1 -> B@1105452] 在 com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(AbstractRootElementProvider.java:152) 在 com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:294) 在 com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1140) 在 com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1053) 在 com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1043) 在 com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:406) 在 com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:477) 在 com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:662) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 在 java.lang.Thread.run(Thread.java:680) 引起:javax.xml.bind.MarshalException - 有链接异常:
我真的没有想法,对此的任何反馈都非常好。
干杯!
【问题讨论】:
标签: web-services spring-mvc jaxb jersey