![JAR search and dependency download from the Maven repository](/logo.png)
com.sun.xml.ws.client.dispatch.RESTSourceDispatch Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of webservices-rt Show documentation
Show all versions of webservices-rt Show documentation
This module contains the Metro runtime code.
/*
* Copyright (c) 1997, 2020 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Distribution License v. 1.0, which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package com.sun.xml.ws.client.dispatch;
import com.sun.xml.ws.api.addressing.WSEndpointReference;
import com.sun.xml.ws.api.message.Message;
import com.sun.xml.ws.api.message.Messages;
import com.sun.xml.ws.api.message.Packet;
import com.sun.xml.ws.api.pipe.Tube;
import com.sun.xml.ws.api.client.WSPortInfo;
import com.sun.xml.ws.binding.BindingImpl;
import com.sun.xml.ws.client.WSServiceDelegate;
import com.sun.xml.ws.client.PortInfo;
import com.sun.xml.ws.encoding.xml.XMLMessage;
import com.sun.xml.ws.message.source.PayloadSourceMessage;
import static com.sun.xml.ws.binding.WebServiceFeatureList.toFeatureArray;
import javax.xml.namespace.QName;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import jakarta.xml.ws.Dispatch;
import jakarta.xml.ws.Service.Mode;
import java.io.IOException;
/**
* {@link Dispatch} implementation for {@link Source} and XML/HTTP binding.
*
* @author Kathy Walsh
* @author Kohsuke Kawaguchi
* @see SOAPSourceDispatch
*/
final class RESTSourceDispatch extends DispatchImpl {
@Deprecated
public RESTSourceDispatch(QName port, Mode mode, WSServiceDelegate owner, Tube pipe, BindingImpl binding, WSEndpointReference epr) {
super(port, mode, owner, pipe, binding, epr);
assert isXMLHttp(binding);
}
public RESTSourceDispatch(WSPortInfo portInfo, Mode mode, BindingImpl binding, WSEndpointReference epr) {
super(portInfo, mode, binding, epr);
assert isXMLHttp(binding);
}
@Override
Source toReturnValue(Packet response) {
Message msg = response.getMessage();
try {
return new StreamSource(XMLMessage.getDataSource(msg, binding.getFeatures()).getInputStream());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
Packet createPacket(Source msg) {
Message message;
if(msg==null)
message = Messages.createEmpty(soapVersion);
else
message = new PayloadSourceMessage(null, msg, setOutboundAttachments(), soapVersion);
return new Packet(message);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy