Java 返回接口实例数组
我正在做一个小项目,在这个项目中,我必须返回一个特定接口的实例数组。当我返回接口的单个实例时,一切正常。返回实例数组时,会出现以下错误:Java 返回接口实例数组,java,jaxb,glassfish,jax-rs,jersey-2.0,Java,Jaxb,Glassfish,Jax Rs,Jersey 2.0,我正在做一个小项目,在这个项目中,我必须返回一个特定接口的实例数组。当我返回接口的单个实例时,一切正常。返回实例数组时,会出现以下错误: 编辑2013年8月2日 如果我使用抽象类,同样的代码可以完美地工作。接口似乎是个问题 如何处理使用JAXB和JAX-RS返回接口实例数组的问题 我正在使用Gassfish 4,并尝试了以下方法。数据代码: @XmlRootElement public interface Person { @XmlAttribute public String ge
编辑2013年8月2日
如果我使用抽象类,同样的代码可以完美地工作。接口似乎是个问题
如何处理使用JAXB和JAX-RS返回接口实例数组的问题 我正在使用Gassfish 4,并尝试了以下方法。数据代码:
@XmlRootElement
public interface Person {
@XmlAttribute
public String getId();
@XmlElement
public String getName();
}
@XmlRootElement
public class P1 implements Person {
@Override
@XmlAttribute
public String getId() {
return "1";
}
@Override
@XmlElement
public String getName() {
return this.getClass().getSimpleName();
}
}
@XmlRootElement
public class P2 implements Person {
@Override
@XmlAttribute
public String getId() {
return "2";
}
@Override
@XmlElement
public String getName() {
return this.getClass().getSimpleName();
}
}
JAX-RS代码:
Person[] persons = {new P1(), new P2()};
@GET
@Path("/query")
@Produces({ MediaType.APPLICATION_JSON })
public Person[] findByQuery(@QueryParam("name") String name) {
return persons;
}
谢谢 尝试指向接口类中的实现类,如:
@XmlRootElement
@XmlSeeAlso({P1.class, P2.class})
public interface Person {
@XmlAttribute
public String getId();
@XmlElement
public String getName();
}
尝试指向接口类中的实现类,如:
@XmlRootElement
@XmlSeeAlso({P1.class, P2.class})
public interface Person {
@XmlAttribute
public String getId();
@XmlElement
public String getName();
}
如果将默认空构造函数添加到
P1
和P2
类(P1(){super();}
),会发生什么情况?@drvdijk感谢您的回复。我在向P1和P2类添加默认空构造函数时引发了相同的异常。如果向P1
和P2
类(P1(){super();}
)添加默认空构造函数会发生什么情况?@drvdijk谢谢您的回复。当我在P1和P2类中添加默认的空构造函数时,也会引发同样的异常。谢谢你的回答。我试过了,但也出现了同样的异常。如果我使用抽象类,同样的代码也能完美地工作。接口似乎是个问题。您知道JAX-B可以处理一系列接口吗?谢谢您的回答。我试过了,但也出现了同样的异常。如果我使用抽象类,同样的代码也能完美地工作。接口似乎是个问题。您知道JAX-B可以处理一系列接口吗?