下面列出了javax.xml.bind.helpers.DefaultValidationEventHandler#javax.xml.bind.UnmarshallerHandler 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public MultiDeleteRequest readFrom(Class<MultiDeleteRequest> type,
Type genericType, Annotation[] annotations, MediaType mediaType,
MultivaluedMap<String, String> httpHeaders, InputStream entityStream) {
try {
UnmarshallerHandler unmarshallerHandler =
context.createUnmarshaller().getUnmarshallerHandler();
XmlNamespaceFilter filter =
new XmlNamespaceFilter("http://s3.amazonaws.com/doc/2006-03-01/");
filter.setContentHandler(unmarshallerHandler);
filter.setParent(xmlReader);
filter.parse(new InputSource(entityStream));
return (MultiDeleteRequest) unmarshallerHandler.getResult();
} catch (Exception e) {
throw new WebApplicationException("Can't parse request body to XML.", e);
}
}
@Override
public CompleteMultipartUploadRequest readFrom(
Class<CompleteMultipartUploadRequest> aClass, Type type,
Annotation[] annotations, MediaType mediaType,
MultivaluedMap<String, String> multivaluedMap,
InputStream inputStream) throws IOException, WebApplicationException {
try {
UnmarshallerHandler unmarshallerHandler =
context.createUnmarshaller().getUnmarshallerHandler();
XmlNamespaceFilter filter =
new XmlNamespaceFilter(S3_XML_NAMESPACE);
filter.setContentHandler(unmarshallerHandler);
filter.setParent(xmlReader);
filter.parse(new InputSource(inputStream));
return (CompleteMultipartUploadRequest) unmarshallerHandler.getResult();
} catch (Exception e) {
throw new WebApplicationException("Can't parse request body to XML.", e);
}
}
protected org.kuali.rice.core.impl.config.property.Config unmarshal(Unmarshaller unmarshaller, InputStream in)
throws SAXException, ParserConfigurationException, IOException,
IllegalStateException, JAXBException {
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setNamespaceAware(true);
XMLFilter filter = new ConfigNamespaceURIFilter();
filter.setParent(spf.newSAXParser().getXMLReader());
UnmarshallerHandler handler = unmarshaller.getUnmarshallerHandler();
filter.setContentHandler(handler);
filter.parse(new InputSource(in));
return (org.kuali.rice.core.impl.config.property.Config) handler.getResult();
}
public static <T> T getPersistence(final Class<T> clazz, final InputStream persistenceDescriptor) throws Exception {
final JAXBContext jc = clazz.getClassLoader() == JaxbPersistenceFactory.class.getClassLoader() ?
JaxbJavaee.getContext(clazz) : JAXBContextFactory.newInstance(clazz);
final Unmarshaller u = jc.createUnmarshaller();
final UnmarshallerHandler uh = u.getUnmarshallerHandler();
// create a new XML parser
final SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setValidating(true);
final SAXParser parser = factory.newSAXParser();
final XMLReader xmlReader = parser.getXMLReader();
// Create a filter to intercept events
final PersistenceFilter xmlFilter = new PersistenceFilter(xmlReader);
// Be sure the filter has the JAXB content handler set (or it wont work)
xmlFilter.setContentHandler(uh);
final SAXSource source = new SAXSource(xmlFilter, new InputSource(persistenceDescriptor));
return (T) u.unmarshal(source);
}
@Override
protected void parsingCompleted(Exchange exchange, Message msg, AsyncXMLReader xmlReader){
UnmarshallerHandler handler = (UnmarshallerHandler)xmlReader.getContentHandler();
try{
String contentType = msg.getPayload().getMediaType().withCharset(IOUtil.UTF_8.name()).toString();
msg.setPayload(new JAXBPayload(contentType, handler.getResult(), jaxbContext));
}catch(Throwable thr){
exchange.resume(thr);
return;
}
super.parsingCompleted(exchange, msg, xmlReader);
}
public UnmarshallerHandler getUnmarshallerHandler() {
return getUnmarshallerHandler(true,null);
}
public UnmarshallerHandler getUnmarshallerHandler() {
return getUnmarshallerHandler(true,null);
}
public UnmarshallerHandler getUnmarshallerHandler() {
return getUnmarshallerHandler(true,null);
}
public UnmarshallerHandler getUnmarshallerHandler() {
return getUnmarshallerHandler(true,null);
}
public UnmarshallerHandler getUnmarshallerHandler() {
return getUnmarshallerHandler(true,null);
}
public UnmarshallerHandler getUnmarshallerHandler() {
return getUnmarshallerHandler(true,null);
}
public UnmarshallerHandler getUnmarshallerHandler() {
return getUnmarshallerHandler(true,null);
}
public UnmarshallerHandler getUnmarshallerHandler() {
return getUnmarshallerHandler(true,null);
}
/**
* Delegates to the wrapped unmarshaller.
*/
@Override
public UnmarshallerHandler getUnmarshallerHandler() {
return unmarshaller.getUnmarshallerHandler();
}