@Override public org.apache.cxf.service.Service create() { org.apache.cxf.service.Service s = super.create(); s.put(ENDPOINT_CLASS, implInfo.getEndpointClass()); if (s.getDataBinding() != null) { setMTOMFeatures(s.getDataBinding()); } return s; }
private synchronized WrapperHelper getWrapperHelper(Message message, MessageInfo messageInfo, MessageInfo wrappedMessageInfo, Class<?> wrapClass, MessagePartInfo messagePartInfo) { WrapperHelper helper = messagePartInfo.getProperty("WRAPPER_CLASS", WrapperHelper.class); if (helper == null) { Service service = ServiceModelUtil.getService(message.getExchange()); DataBinding dataBinding = service.getDataBinding(); if (dataBinding instanceof WrapperCapableDatabinding) { helper = createWrapperHelper((WrapperCapableDatabinding)dataBinding, messageInfo, wrappedMessageInfo, wrapClass); messagePartInfo.setProperty("WRAPPER_CLASS", helper); } } return helper; }
= service.getDataBinding().createWriter(XMLStreamWriter.class);
if (helper == null) { Service service = ServiceModelUtil.getService(message.getExchange()); DataBinding dataBinding = service.getDataBinding(); if (dataBinding instanceof WrapperCapableDatabinding) { helper = createWrapperHelper((WrapperCapableDatabinding)dataBinding,
public void handleMessage(SoapMessage message) throws Fault { Exchange ex = message.getExchange(); BindingOperationInfo bop = ex.getBindingOperationInfo(); if (bop == null) { return; } if (bop.isUnwrapped()) { bop = bop.getWrappedOperation(); } boolean client = isRequestor(message); BindingMessageInfo bmi = client ? bop.getInput() : bop.getOutput(); if (bmi == null) { return; } SoapBodyInfo sbi = bmi.getExtensor(SoapBodyInfo.class); if (sbi == null || sbi.getAttachments() == null || sbi.getAttachments().isEmpty()) { Service s = ex.getService(); DataBinding db = s.getDataBinding(); if (db instanceof JAXBDataBinding && hasSwaRef((JAXBDataBinding) db)) { setupAttachmentOutput(message); } return; } processAttachments(message, sbi); } protected void processAttachments(SoapMessage message, SoapBodyInfo sbi) {
@Override public org.apache.cxf.service.Service create() { org.apache.cxf.service.Service s = super.create(); s.put(ENDPOINT_CLASS, implInfo.getEndpointClass()); if (s.getDataBinding() != null) { setMTOMFeatures(s.getDataBinding()); } return s; }
protected boolean supportsDataReader(Message message, Class<?> input) { Service service = ServiceModelUtil.getService(message.getExchange()); Class<?> cls[] = service.getDataBinding().getSupportedReaderFormats(); for (Class<?> c : cls) { if (c.equals(input)) { return true; } } return false; } protected <T> DataReader<T> getDataReader(Message message, Class<T> input) {
protected boolean supportsDataReader(Message message, Class<?> input) { Service service = ServiceModelUtil.getService(message.getExchange()); Class<?>[] cls = service.getDataBinding().getSupportedReaderFormats(); for (Class<?> c : cls) { if (c.equals(input)) { return true; } } return false; } protected <T> DataReader<T> getDataReader(Message message, Class<T> input) {
protected boolean supportsDataReader(Message message, Class<?> input) { Service service = ServiceModelUtil.getService(message.getExchange()); Class<?>[] cls = service.getDataBinding().getSupportedReaderFormats(); for (Class<?> c : cls) { if (c.equals(input)) { return true; } } return false; } protected <T> DataReader<T> getDataReader(Message message, Class<T> input) {
protected boolean supportsDataReader(Message message, Class<?> input) { Service service = ServiceModelUtil.getService(message.getExchange()); Class<?> cls[] = service.getDataBinding().getSupportedReaderFormats(); for (Class<?> c : cls) { if (c.equals(input)) { return true; } } return false; } protected <T> DataReader<T> getDataReader(Message message, Class<T> input) {
public static DataWriter<XMLEventWriter> getDataWriter(CorbaMessage message) { Service service = ServiceModelUtil.getService(message.getExchange()); DataWriter<XMLEventWriter> dataWriter = service.getDataBinding().createWriter(XMLEventWriter.class); if (dataWriter == null) { //throw a fault //throw new Fault(new org.apache.cxf.common.i18n.Message("NO_DATAWRITER", BUNDLE, service // .getName())); } return dataWriter; }
public static DataReader<XMLEventReader> getDataReader(CorbaMessage message) { Service service = ServiceModelUtil.getService(message.getExchange()); DataReader<XMLEventReader> dataReader = service.getDataBinding().createReader(XMLEventReader.class); if (dataReader == null) { //throw a fault //throw new Fault(new org.apache.cxf.common.i18n.Message("NO_DATAREADER", BUNDLE, service // .getName())); } return dataReader; }
@Override protected <T> DataWriter<T> getDataWriter(Message message, Service service, Class<T> output) { DataWriter<T> writer = service.getDataBinding().createWriter(output); writer.setProperty(DataWriter.ENDPOINT, message.getExchange() .getEndpoint()); writer.setProperty(Message.class.getName(), message); return writer; }
protected DataReader<XMLStreamReader> getDataReader(CorbaMessage message) { Service serviceModel = ServiceModelUtil.getService(message.getExchange()); DataReader<XMLStreamReader> dataReader = serviceModel.getDataBinding().createReader(XMLStreamReader.class); if (dataReader == null) { throw new CorbaBindingException("Couldn't create data reader for incoming fault message"); } return dataReader; } }
protected DataWriter<XMLStreamWriter> getDataWriter(CorbaMessage message) { Service serviceModel = ServiceModelUtil.getService(message.getExchange()); DataWriter<XMLStreamWriter> dataWriter = serviceModel.getDataBinding().createWriter(XMLStreamWriter.class); if (dataWriter == null) { throw new CorbaBindingException("Couldn't create data writer for outgoing fault message"); } return dataWriter; }
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; }
protected DataWriter<XMLStreamWriter> getDataWriter(Message message) { Service service = ServiceModelUtil.getService(message.getExchange()); DataWriter<XMLStreamWriter> dataWriter = service.getDataBinding().createWriter(XMLStreamWriter.class); if (dataWriter == null) { throw new Fault(new org.apache.cxf.common.i18n.Message("NO_DATAWRITER", BUNDLE, service .getName())); } dataWriter.setAttachments(message.getAttachments()); setDataWriterValidation(service, message, dataWriter); return dataWriter; } private void setDataWriterValidation(Service service, Message message, DataWriter<?> writer) {
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; }
protected DataWriter<XMLStreamWriter> getDataWriter(Message message) { Service service = ServiceModelUtil.getService(message.getExchange()); DataWriter<XMLStreamWriter> dataWriter = service.getDataBinding().createWriter(XMLStreamWriter.class); if (dataWriter == null) { throw new Fault(new org.apache.cxf.common.i18n.Message("NO_DATAWRITER", BUNDLE, service .getName())); } dataWriter.setAttachments(message.getAttachments()); setDataWriterValidation(service, message, dataWriter); return dataWriter; } private void setDataWriterValidation(Service service, Message message, DataWriter<?> writer) {
@Test public void verifyServices() throws Exception { JaxWsClientFactoryBean cf = new JaxWsClientFactoryBean(); cf.setAddress("local://services/Alger"); cf.setServiceClass(IWebServiceRUs.class); Client client = cf.create(); String response = (String)client.invoke("consultTheOracle")[0]; assertEquals("All your bases belong to us.", response); Service service = WebServiceRUs.getService(); assertEquals(JAXBDataBinding.class, service.getDataBinding().getClass()); }