0

JAX-RS サービス内XmlValidatonReaderでは、ディレクトリにある既存の xsd ファイルに対して着信 XML ドキュメントを検証するを提供したくありませんWebContent

ここに画像の説明を入力

xsd ファイルはWebContent、クライアントからアクセスできる必要があるため、フォルダー内にある必要があります。着信 XML ファイルを検証するには、xsd リソースが必要です。/WebContent/Category.xsd

これをどのようにロードできますかsrc/at/fhj/ase/XmlValidationReader.java

4

1 に答える 1

0

だから私はそれを走らせました。

@Provider
@Consumes(MediaType.APPLICATION_XML)
public class XmlValidationReader implements MessageBodyReader<Category> {

    protected Providers providers;
    protected ServletContext servletContext;
    private final String xsdFileName = "/Category.xsd";
    private Schema schema;

    public XmlValidationReader(@Context Providers providers,
            @Context ServletContext servletContext) {
        this.providers = providers;
        this.servletContext = servletContext;

        try {
            SchemaFactory sf = SchemaFactory
                    .newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            File xsd = new File(servletContext.getRealPath(xsdFileName));
            schema = sf.newSchema(xsd);
        } catch (Exception e) {
            throw new RuntimeException(
                    "Unable to create XSD validation schema", e);
        }
    }

    @Override
    public boolean isReadable(Class<?> type, Type genericType,
            Annotation[] annotations, MediaType mediaType) {
        ...
    }


    @Override
    public Category readFrom(Class<Category> type, Type genericType,
            Annotation[] annotations, MediaType mediaType,
            MultivaluedMap<String, String> httpHeaders, InputStream entityStream)
            throws IOException, WebApplicationException {
        ...
    }
于 2013-07-24T14:16:40.503 に答える