use of com.sun.xml.ws.api.server.PortAddressResolver in project metro-jax-ws by eclipse-ee4j.
the class HttpAdapter method publishWSDL.
/**
* Sends out the WSDL (and other referenced documents)
* in response to the GET requests to URLs like "?wsdl" or "?xsd=2".
*
* @param con
* The connection to which the data will be sent.
*
* @throws java.io.IOException when I/O errors happen
*/
public void publishWSDL(@NotNull WSHTTPConnection con) throws IOException {
con.getInput().close();
SDDocument doc = wsdls.get(con.getQueryString());
if (doc == null) {
writeNotFoundErrorPage(con, "Invalid Request");
return;
}
con.setStatus(HttpURLConnection.HTTP_OK);
con.setContentTypeResponseHeader("text/xml;charset=utf-8");
OutputStream os = con.getProtocol().contains("1.1") ? con.getOutput() : new Http10OutputStream(con);
PortAddressResolver portAddressResolver = getPortAddressResolver(con.getBaseAddress());
DocumentAddressResolver resolver = getDocumentAddressResolver(portAddressResolver);
doc.writeTo(portAddressResolver, resolver, os);
os.close();
}
use of com.sun.xml.ws.api.server.PortAddressResolver in project metro-jax-ws by eclipse-ee4j.
the class ServerConnectionImpl method getEPRAddress.
@NotNull
public String getEPRAddress(Packet request, WSEndpoint endpoint) {
// return WSHttpHandler.getRequestAddress(httpExchange);
PortAddressResolver resolver = adapter.owner.createPortAddressResolver(getBaseAddress(), endpoint.getImplementationClass());
String address = resolver.getAddressFor(endpoint.getServiceName(), endpoint.getPortName().getLocalPart());
if (address == null)
throw new WebServiceException(WsservletMessages.SERVLET_NO_ADDRESS_AVAILABLE(endpoint.getPortName()));
return address;
}
use of com.sun.xml.ws.api.server.PortAddressResolver in project metro-jax-ws by eclipse-ee4j.
the class HelidonConnectionImpl method getEPRAddress.
@Override
public String getEPRAddress(Packet request, WSEndpoint endpoint) {
PortAddressResolver resolver = adapter.owner.createPortAddressResolver(getBaseAddress(), endpoint.getImplementationClass());
String address = resolver.getAddressFor(endpoint.getServiceName(), endpoint.getPortName().getLocalPart());
if (address == null) {
throw APISupport.createException(WsservletMessages.SERVLET_NO_ADDRESS_AVAILABLE(endpoint.getPortName()));
}
return address;
}
use of com.sun.xml.ws.api.server.PortAddressResolver in project metro-jax-ws by eclipse-ee4j.
the class HelidonAdapter method publishWSDLX.
public void publishWSDLX(WSHTTPConnection c) throws IOException {
// res.status(Http.Status.OK_200);
// res.headers().add("Content-Type", Collections.singletonList("text/xml;charset=utf-8"));
// res.send();
HelidonConnectionImpl con = (HelidonConnectionImpl) c;
// con.getInput().close();
SDDocument doc = wsdls.get(con.getQueryString());
if (doc == null) {
// writeNotFoundErrorPage(con,"Invalid Request");
return;
}
// con.req.
ServerResponse res = con.getResponse();
res.status(Http.Status.OK_200);
res.headers().add("Content-Type", Collections.singletonList("text/xml;charset=utf-8"));
// res.send(con.getOutput(), OutputStream.class);
// res.send("<s>hello</s>");
// con.setStatus(HttpURLConnection.HTTP_OK);
// con.setContentTypeResponseHeader("text/xml;charset=utf-8");
//
// // OutputStream os = con.getProtocol().contains("1.1") ? con.getOutput() : new Http10OutputStream(con);
// //con.res.
// OutputStream os = con.getOutput();
// OutputStream os = new ByteArrayOutputStream();
MultiFromOutputStream os = IoMulti.outputStreamMulti();
PortAddressResolver portAddressResolver = getPortAddressResolver(con.getBaseAddress());
DocumentAddressResolver resolver = getDocumentAddressResolver(portAddressResolver);
res.send(os.map(byteBuffer -> DataChunk.create(false, true, byteBuffer)));
doc.writeTo(portAddressResolver, resolver, os);
// con.res.send(() -> {
// });
os.close();
}
use of com.sun.xml.ws.api.server.PortAddressResolver in project metro-jax-ws by eclipse-ee4j.
the class PortableConnectionImpl method getEPRAddress.
@Override
@NotNull
public String getEPRAddress(Packet request, WSEndpoint endpoint) {
PortAddressResolver resolver = adapter.owner.createPortAddressResolver(getBaseAddress(), endpoint.getImplementationClass());
String address = resolver.getAddressFor(endpoint.getServiceName(), endpoint.getPortName().getLocalPart());
if (address == null) {
throw new WebServiceException(WsservletMessages.SERVLET_NO_ADDRESS_AVAILABLE(endpoint.getPortName()));
}
return address;
}
Aggregations