Wie erzeugt JSON-schema aus einer JAXB annotierte Klasse?
Ich habe eine entity-Klasse sieht wie folgt aus.
@XmlRootElement
public class ImageSuffix {
@XmlAttribute
private boolean canRead;
@XmlAttribute
private boolean canWrite;
@XmlValue;
private String value;
}
Und ich bin mit der folgenden Abhängigkeit für JSON-generation.
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>2.1.4</version>
</dependency>
Wenn ich habe versucht, mit folgenden code (die genannten von Generierung von JSON-Schemas mit Jackson)
@Path("/imageSuffix.jsd")
public class ImageSuffixJsdResource {
@GET
@Produces({MediaType.APPLICATION_JSON})
public String read() throws JsonMappingException {
final ObjectMapper objectMapper = new ObjectMapper();
final JsonSchema jsonSchema =
objectMapper.generateJsonSchema(ImageSuffix.class);
final String jsonSchemaString = jsonSchema.toString();
return jsonSchemaString;
}
}
Server beschwert sich mit folgenden Fehlermeldung
java.lang.IllegalArgumentException: Class com.googlecode.jinahya.test.ImageSuffix would not be serialized as a JSON object and therefore has no schema
at org.codehaus.jackson.map.ser.StdSerializerProvider.generateJsonSchema(StdSerializerProvider.java:299)
at org.codehaus.jackson.map.ObjectMapper.generateJsonSchema(ObjectMapper.java:2527)
at org.codehaus.jackson.map.ObjectMapper.generateJsonSchema(ObjectMapper.java:2513)
Wie kann ich dieses Problem beheben?
- FYI - Wir sind derzeit hinzufügen dieser Unterstützung zu MOXy s JSON-Bindung. Sie können verfolgen, diese Arbeit mit dem folgenden link: bugs.eclipse.org/404452
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht, die Konfiguration Ihres ObjectMapper zu gehören jaxb-introspector? Wir verwenden spring mvc3 für die Umsetzung von REST-services und nutzen dieselben model-Objekte zu serialisieren in xml/json.
BEARBEITEN: Hier ist die Ausgabe, die ich von jackson:
Hoffe, das hilft!