public void handleMessage(Message message) { if (isGET(message) && message.getContent(List.class) != null) { LOG.fine("StaxDataBindingInterceptor skipped in HTTP GET method"); return; MessageContentsList parameters = new MessageContentsList(); Exchange exchange = message.getExchange(); BindingOperationInfo bop = exchange.get(BindingOperationInfo.class); if (!StaxUtils.toNextElement(xmlReader) && bop != null) { Endpoint ep = exchange.get(Endpoint.class); bop = ep.getBinding().getBindingInfo().getOperations().iterator().next(); message.getExchange().put(BindingOperationInfo.class, bop); parameters.put(bop.getOutput().getMessageParts().get(0), dr.read(xmlReader)); } else { parameters.put(bop.getInput().getMessageParts().get(0), dr.read(xmlReader));
protected <T> DataReader<T> getDataReader(Message message, Class<T> input) { Service service = ServiceModelUtil.getService(message.getExchange()); DataReader<T> dataReader = service.getDataBinding().createReader(input); if (dataReader == null) { throw new Fault(new org.apache.cxf.common.i18n.Message("NO_DATAREADER", BUNDLE, service.getName())); } dataReader.setAttachments(message.getAttachments()); dataReader.setProperty(DataReader.ENDPOINT, message.getExchange().getEndpoint()); dataReader.setProperty(Message.class.getName(), message); setDataReaderValidation(service, message, dataReader); return dataReader; }
/** * Based on the Schema Validation configuration, will initialise the * DataReader with or without the schema set. * * Can also be called to override schema validation at operation level, thus the reader.setSchema(null) * to remove schema validation */ protected void setDataReaderValidation(Service service, Message message, DataReader<?> reader) { if (shouldValidate(message)) { //all serviceInfos have the same schemas Schema schema = EndpointReferenceUtils.getSchema(service.getServiceInfos().get(0), message.getExchange().getBus()); reader.setSchema(schema); } else { reader.setSchema(null); // if this is being called for an operation, then override the service level } }
public void handleMessage(Message message) { if (isGET(message) && message.getContent(List.class) != null) { LOG.fine("StaxDataBindingInterceptor skipped in HTTP GET method"); return; MessageContentsList parameters = new MessageContentsList(); Exchange exchange = message.getExchange(); BindingOperationInfo bop = exchange.getBindingOperationInfo(); if (!StaxUtils.toNextElement(xmlReader) && bop != null) { Endpoint ep = exchange.getEndpoint(); bop = ep.getBinding().getBindingInfo().getOperations().iterator().next(); message.getExchange().put(BindingOperationInfo.class, bop); parameters.put(bop.getOutput().getMessageParts().get(0), dr.read(xmlReader)); } else { parameters.put(bop.getInput().getMessageParts().get(0), dr.read(xmlReader));
MessageContentsList parameters = new MessageContentsList(); Exchange exchange = message.getExchange(); BindingOperationInfo bop = exchange.getBindingOperationInfo(); if (bop != null && !StaxUtils.toNextElement(xmlReader)) { if (!forceDocLitBare && bop != null && bop.isUnwrappedCapable()) { Object wrappedObject = dr.read(mpi, xmlReader); parameters.put(mpi, wrappedObject); } else { StaxUtils.nextEvent(xmlReader); Endpoint ep = exchange.getEndpoint(); ServiceInfo si = ep.getEndpointInfo().getService(); if (bop != null) { //for xml binding or client side exchange.setOneWay(true); operations.addAll(si.getInterface().getOperations()); if (xmlReader == null || !StaxUtils.toNextElement(xmlReader)) { o = dr.read(p, xmlReader); if (forceDocLitBare && parameters.isEmpty()) {
return; XMLStreamReader xsr = message.getContent(XMLStreamReader.class); Endpoint ep = message.getExchange().get(Endpoint.class); BindingInfo binding = ep.getEndpointInfo().getBinding(); if (!(binding instanceof JBIBindingInfo)) { if (!StaxUtils.toNextElement(reader)) { throw new Fault(new org.apache.cxf.common.i18n.Message( "NO_OPERATION_ELEMENT", BUNDLE)); Exchange ex = message.getExchange(); QName startQName = reader.getName(); throw new Fault(new org.apache.cxf.common.i18n.Message( "NO_JBI_MESSAGE_ELEMENT", BUNDLE)); parameters.put(part, dr.read(part, reader)); ev = reader.next(); Object wrappedObject = dr.read( msgInfo.getMessageParts().get(0), xsr); parameters.put(msgInfo.getMessageParts().get(0), wrappedObject); parameters.put(part, dr.read(part, reader));
return; XMLStreamReader xsr = message.getContent(XMLStreamReader.class); Endpoint ep = message.getExchange().get(Endpoint.class); BindingInfo binding = ep.getEndpointInfo().getBinding(); if (!(binding instanceof NMRBindingInfo)) { if (!StaxUtils.toNextElement(reader)) { throw new Fault(new org.apache.cxf.common.i18n.Message("NO_OPERATION_ELEMENT", BUNDLE)); Exchange ex = message.getExchange(); QName startQName = reader.getName(); throw new Fault(new org.apache.cxf.common.i18n.Message( "NO_JBI_MESSAGE_ELEMENT", BUNDLE)); if (!StaxUtils.toNextElement(reader)) { throw new Fault(new org.apache.cxf.common.i18n.Message("EXPECTED_ELEMENT_IN_PART", BUNDLE)); parameters.add(dr.read(part, reader));
if (!StaxUtils.toNextElement(xmlReader)) { message.setContent(Exception.class, new RuntimeException("There must be a method name element.")); if (message.getExchange().getBindingOperationInfo() == null) { operation = getOperation(message, new QName(xmlReader.getNamespaceURI(), opName)); if (operation == null) { operation = message.getExchange().getBindingOperationInfo(); msg = operation.getOperationInfo().getInput(); } else { msg = operation.getOperationInfo().getOutput(); message.put(MessageInfo.class, msg); MessageContentsList parameters = new MessageContentsList(); StaxUtils.nextEvent(xmlReader); MessagePartInfo part = itr.next(); if (hasNext) { hasNext = StaxUtils.toNextElement(xmlReader); parameters.put(part, dr.read(part, xmlReader)); } catch (Fault f) { if (!isRequestor(message)) { f.setFaultCode(Fault.FAULT_CODE_CLIENT);
if (boi.isUnwrapped()) { boi = boi.getWrappedOperation(); for (FaultInfo faultInfo : boi.getOperationInfo().getFaults()) { for (MessagePartInfo mpi : faultInfo.getMessageParts()) { if (qname.equals(mpi.getConcreteName())) { return; Service s = msg.getExchange().get(Service.class); DataBinding dataBinding = s.getDataBinding(); if (isDOMSupported(dataBinding)) { DataReader<Node> reader = this.getNodeDataReader(msg); reader.setProperty(DataReader.FAULT, fault); e = reader.read(part, exDetail); } else { DataReader<XMLStreamReader> reader = this.getDataReader(msg); xsr.nextTag(); } catch (XMLStreamException e1) { throw new Fault(e1); reader.setProperty(DataReader.FAULT, fault); e = reader.read(part, xsr); e = constructor.newInstance(new Object[]{fault.getMessage()}); } else {
if (boi.isUnwrapped()) { boi = boi.getWrappedOperation(); for (FaultInfo faultInfo : boi.getOperationInfo().getFaults()) { for (MessagePartInfo mpi : faultInfo.getMessageParts()) { if (qname.equals(mpi.getConcreteName())) { return; Service s = msg.getExchange().getService(); DataBinding dataBinding = s.getDataBinding(); if (isDOMSupported(dataBinding)) { DataReader<Node> reader = this.getNodeDataReader(msg); reader.setProperty(DataReader.FAULT, fault); e = reader.read(part, exDetail); } else { DataReader<XMLStreamReader> reader = this.getDataReader(msg); xsr.nextTag(); } catch (XMLStreamException e1) { throw new Fault(e1); reader.setProperty(DataReader.FAULT, fault); e = reader.read(part, xsr); e = constructor.newInstance(fault.getMessage()); } else {
public static void convertSourceToObject(Message message) { List<Object> content = CastUtils.cast(message.getContent(List.class)); if (content == null || content.size() < 1) { // nothing to convert return; } // only supporting the wrapped style for now (one pojo <-> one source) Source source = (Source)content.get(0); DataReader<XMLStreamReader> reader = message.getExchange().getService().getDataBinding().createReader(XMLStreamReader.class); MessagePartInfo mpi = getMessageInfo(message).getMessagePart(0); XMLStreamReader streamReader = null; Object wrappedObject = null; try { streamReader = StaxUtils.createXMLStreamReader(source); wrappedObject = reader.read(mpi, streamReader); } finally { try { StaxUtils.close(streamReader); } catch (XMLStreamException e) { // Ignore } } MessageContentsList parameters = new MessageContentsList(); parameters.put(mpi, wrappedObject); message.setContent(List.class, parameters); }
Fault formula405 = new Fault("HTTP verb was not GET or POST", LOG); formula405.setStatusCode(405); throw formula405; throw new RuntimeException("Can't find input stream in message"); xmlReader = StaxUtils.createXMLStreamReader(in); closeNeeded = true; Document doc = null; if (writer != null) { StaxUtils.copy(filteredReader, writer); doc = writer.getDocument(); } else if (nd instanceof Document) { doc = (Document)nd; StaxUtils.readDocElements(doc, doc, filteredReader, false, false); } else { final boolean addNC = dataBinding = p.getDataBinding(); DataReader<Node> dataReader = dataBinding.createReader(Node.class); dataReader.setAttachments(message.getAttachments()); dataReader.setProperty(DataReader.ENDPOINT, message.getExchange().getEndpoint()); dataReader.setProperty(Message.class.getName(), message); obj = dataReader.read(hel);
Exchange exchange = message.getExchange(); MessageContentsList parameters = MessageContentsList.getContentsList(message); parameters = new MessageContentsList(); BindingOperationInfo bop = exchange.getBindingOperationInfo(); if (null == bop) { return; if (bop.isUnwrapped()) { bop = bop.getWrappedOperation(); BindingMessageInfo bmi = client ? bop.getOutput() : bop.getInput(); if (bmi == null) { f.setFaultCode(Fault.FAULT_CODE_CLIENT); object = getNodeDataReader(message).read(mpi, source); } else { W3CDOMStreamReader reader = new W3CDOMStreamReader((Element)source); object = getDataReader(message, XMLStreamReader.class).read(mpi, reader); parameters.put(mpi, object);
DataReader<XMLStreamReader> reader = getDataReader(message); BindingOperationInfo bopInfo = message.getExchange().getBindingOperationInfo(); OperationInfo opInfo = bopInfo.getOperationInfo(); ServiceInfo service = message.getExchange().getEndpoint().getEndpointInfo().getService(); orb = message.getExchange().get(org.omg.CORBA.ORB.class); CorbaStreamReader streamReader = new CorbaStreamReader(faultEventProducer); Object e = reader.read(fault.getMessageParts().get(0), streamReader); if (!(e instanceof Exception)) { Class<?> exClass = fault.getProperty(Class.class.getName(), Class.class);
MessagePartInfo part = itr.next(); if (hasNext) { hasNext = StaxUtils.toNextElement(xmlReader); parameters.put(part, null); obj = dr.read(part, xmlReader); parameters.put(part, obj);
public T readFrom(Class<T> clazz, Type genericType, Annotation[] annotations, MediaType type, MultivaluedMap<String, String> headers, InputStream is) throws IOException { XMLStreamReader reader = null; try { reader = createReader(clazz, genericType, is); DataReader<XMLStreamReader> dataReader = binding.createReader(XMLStreamReader.class); Object o = dataReader.read(null, reader, clazz); return o == null ? null : clazz.cast(o); } catch (Exception ex) { throw ExceptionUtils.toBadRequestException(ex, null); } finally { StaxUtils.close(reader); } }
public void handleMessage(Message message) { if (isGET(message) && message.getContent(List.class) != null) { LOG.fine("StaxDataBindingInterceptor skipped in HTTP GET method"); return; MessageContentsList parameters = new MessageContentsList(); Exchange exchange = message.getExchange(); BindingOperationInfo bop = exchange.getBindingOperationInfo(); if (!StaxUtils.toNextElement(xmlReader) && bop != null) { Endpoint ep = exchange.getEndpoint(); bop = ep.getBinding().getBindingInfo().getOperations().iterator().next(); message.getExchange().put(BindingOperationInfo.class, bop); parameters.put(bop.getOutput().getMessageParts().get(0), dr.read(xmlReader)); } else { parameters.put(bop.getInput().getMessageParts().get(0), dr.read(xmlReader));
MessageContentsList parameters = new MessageContentsList(); Exchange exchange = message.getExchange(); BindingOperationInfo bop = exchange.getBindingOperationInfo(); if (bop != null && !StaxUtils.toNextElement(xmlReader)) { if (!forceDocLitBare && bop != null && bop.isUnwrappedCapable()) { Object wrappedObject = dr.read(msgInfo.getMessageParts().get(0), xmlReader); parameters.put(msgInfo.getMessageParts().get(0), wrappedObject); } else { StaxUtils.nextEvent(xmlReader); Endpoint ep = exchange.get(Endpoint.class); ServiceInfo si = ep.getEndpointInfo().getService(); if (bop != null) { //for xml binding or client side exchange.setOneWay(true); operations.addAll(si.getInterface().getOperations()); if (xmlReader == null || !StaxUtils.toNextElement(xmlReader)) { o = dr.read(p, xmlReader); if (forceDocLitBare && parameters.isEmpty()) {
if (!StaxUtils.toNextElement(xmlReader)) { message.setContent(Exception.class, new RuntimeException("There must be a method name element.")); if (message.getExchange().getBindingOperationInfo() == null) { operation = getOperation(message, new QName(xmlReader.getNamespaceURI(), opName)); if (operation == null) { operation = message.getExchange().getBindingOperationInfo(); msg = operation.getOperationInfo().getInput(); } else { msg = operation.getOperationInfo().getOutput(); message.put(MessageInfo.class, msg); MessageContentsList parameters = new MessageContentsList(); StaxUtils.nextEvent(xmlReader); MessagePartInfo part = itr.next(); if (hasNext) { hasNext = StaxUtils.toNextElement(xmlReader); parameters.put(part, dr.read(part, xmlReader)); } catch (Fault f) { if (!isRequestor(message)) { f.setFaultCode(Fault.FAULT_CODE_CLIENT);