下面列出了javax.xml.transform.stream.StreamResult#getOutputStream ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public XMLStreamWriter createXMLStreamWriter(Result result) throws XMLStreamException {
// Can only support simplest of Result impls:
if (result instanceof StreamResult) {
StreamResult sr = (StreamResult) result;
OutputStream out = sr.getOutputStream();
if (out != null) {
return createXMLStreamWriter(out);
}
Writer w = sr.getWriter();
if (w != null) {
return createXMLStreamWriter(w);
}
throw new UnsupportedOperationException("Only those javax.xml.transform.stream.StreamResult instances supported that have an OutputStream or Writer");
}
throw new UnsupportedOperationException("Only javax.xml.transform.stream.StreamResult type supported");
}
/**
* Template method for handling {@code StreamResult}s.
* <p>This implementation delegates to {@code marshalOutputStream} or {@code marshalWriter},
* depending on what is contained in the {@code StreamResult}
* @param graph the root of the object graph to marshal
* @param streamResult the {@code StreamResult}
* @throws IOException if an I/O Exception occurs
* @throws XmlMappingException if the given object cannot be marshalled to the result
* @throws IllegalArgumentException if {@code streamResult} does neither
* contain an {@code OutputStream} nor a {@code Writer}
*/
protected void marshalStreamResult(Object graph, StreamResult streamResult)
throws XmlMappingException, IOException {
if (streamResult.getOutputStream() != null) {
marshalOutputStream(graph, streamResult.getOutputStream());
}
else if (streamResult.getWriter() != null) {
marshalWriter(graph, streamResult.getWriter());
}
else {
throw new IllegalArgumentException("StreamResult contains neither OutputStream nor Writer");
}
}
public StreamSerializer(StreamResult streamResult) {
// if this method opened a stream, let it close it
final OutputStream[] autoClose = new OutputStream[1];
if (streamResult.getWriter() != null)
writer = createWriter(streamResult.getWriter());
else if (streamResult.getOutputStream() != null)
writer = createWriter(streamResult.getOutputStream());
else if (streamResult.getSystemId() != null) {
String fileURL = streamResult.getSystemId();
fileURL = convertURL(fileURL);
try {
FileOutputStream fos = new FileOutputStream(fileURL);
autoClose[0] = fos;
writer = createWriter(fos);
} catch (IOException e) {
throw new TxwException(e);
}
} else
throw new IllegalArgumentException();
// now delegate to the SaxSerializer
serializer = new SaxSerializer(writer,writer,false) {
public void endDocument() {
super.endDocument();
if(autoClose[0]!=null) {
try {
autoClose[0].close();
} catch (IOException e) {
throw new TxwException(e);
}
autoClose[0] = null;
}
}
};
}
/**
* Use a StreamResult to initialize the output for this XMLStreamWriter. Check
* for OutputStream, Writer and then systemId, in that order.
*
* @param sr StreamResult encapsulating output information
* @param encoding Encoding to be used except when a Writer is available
*/
public void setOutput(StreamResult sr, String encoding)
throws IOException {
if (sr.getOutputStream() != null) {
setOutputUsingStream(sr.getOutputStream(), encoding);
}
else if (sr.getWriter() != null) {
setOutputUsingWriter(sr.getWriter());
}
else if (sr.getSystemId() != null) {
setOutputUsingStream(new FileOutputStream(sr.getSystemId()),
encoding);
}
}
/**
* Template method for handling {@code StreamResult}s.
* <p>This implementation delegates to {@code marshalOutputStream} or {@code marshalWriter},
* depending on what is contained in the {@code StreamResult}
* @param graph the root of the object graph to marshal
* @param streamResult the {@code StreamResult}
* @throws IOException if an I/O Exception occurs
* @throws XmlMappingException if the given object cannot be marshalled to the result
* @throws IllegalArgumentException if {@code streamResult} does neither
* contain an {@code OutputStream} nor a {@code Writer}
*/
protected void marshalStreamResult(Object graph, StreamResult streamResult)
throws XmlMappingException, IOException {
if (streamResult.getOutputStream() != null) {
marshalOutputStream(graph, streamResult.getOutputStream());
}
else if (streamResult.getWriter() != null) {
marshalWriter(graph, streamResult.getWriter());
}
else {
throw new IllegalArgumentException("StreamResult contains neither OutputStream nor Writer");
}
}
public StreamSerializer(StreamResult streamResult) {
// if this method opened a stream, let it close it
final OutputStream[] autoClose = new OutputStream[1];
if (streamResult.getWriter() != null)
writer = createWriter(streamResult.getWriter());
else if (streamResult.getOutputStream() != null)
writer = createWriter(streamResult.getOutputStream());
else if (streamResult.getSystemId() != null) {
String fileURL = streamResult.getSystemId();
fileURL = convertURL(fileURL);
try {
FileOutputStream fos = new FileOutputStream(fileURL);
autoClose[0] = fos;
writer = createWriter(fos);
} catch (IOException e) {
throw new TxwException(e);
}
} else
throw new IllegalArgumentException();
// now delegate to the SaxSerializer
serializer = new SaxSerializer(writer,writer,false) {
public void endDocument() {
super.endDocument();
if(autoClose[0]!=null) {
try {
autoClose[0].close();
} catch (IOException e) {
throw new TxwException(e);
}
autoClose[0] = null;
}
}
};
}
/**
* Use a StreamResult to initialize the output for this XMLStreamWriter. Check
* for OutputStream, Writer and then systemId, in that order.
*
* @param sr StreamResult encapsulating output information
* @param encoding Encoding to be used except when a Writer is available
*/
public void setOutput(StreamResult sr, String encoding)
throws IOException {
if (sr.getOutputStream() != null) {
setOutputUsingStream(sr.getOutputStream(), encoding);
}
else if (sr.getWriter() != null) {
setOutputUsingWriter(sr.getWriter());
}
else if (sr.getSystemId() != null) {
setOutputUsingStream(new FileOutputStream(sr.getSystemId()),
encoding);
}
}
public StreamSerializer(StreamResult streamResult) {
// if this method opened a stream, let it close it
final OutputStream[] autoClose = new OutputStream[1];
if (streamResult.getWriter() != null)
writer = createWriter(streamResult.getWriter());
else if (streamResult.getOutputStream() != null)
writer = createWriter(streamResult.getOutputStream());
else if (streamResult.getSystemId() != null) {
String fileURL = streamResult.getSystemId();
fileURL = convertURL(fileURL);
try {
FileOutputStream fos = new FileOutputStream(fileURL);
autoClose[0] = fos;
writer = createWriter(fos);
} catch (IOException e) {
throw new TxwException(e);
}
} else
throw new IllegalArgumentException();
// now delegate to the SaxSerializer
serializer = new SaxSerializer(writer,writer,false) {
public void endDocument() {
super.endDocument();
if(autoClose[0]!=null) {
try {
autoClose[0].close();
} catch (IOException e) {
throw new TxwException(e);
}
autoClose[0] = null;
}
}
};
}
/**
* Use a StreamResult to initialize the output for this XMLStreamWriter. Check
* for OutputStream, Writer and then systemId, in that order.
*
* @param sr StreamResult encapsulating output information
* @param encoding Encoding to be used except when a Writer is available
*/
public void setOutput(StreamResult sr, String encoding)
throws IOException {
if (sr.getOutputStream() != null) {
setOutputUsingStream(sr.getOutputStream(), encoding);
}
else if (sr.getWriter() != null) {
setOutputUsingWriter(sr.getWriter());
}
else if (sr.getSystemId() != null) {
setOutputUsingStream(new FileOutputStream(sr.getSystemId()),
encoding);
}
}
public StreamSerializer(StreamResult streamResult) {
// if this method opened a stream, let it close it
final OutputStream[] autoClose = new OutputStream[1];
if (streamResult.getWriter() != null)
writer = createWriter(streamResult.getWriter());
else if (streamResult.getOutputStream() != null)
writer = createWriter(streamResult.getOutputStream());
else if (streamResult.getSystemId() != null) {
String fileURL = streamResult.getSystemId();
fileURL = convertURL(fileURL);
try {
FileOutputStream fos = new FileOutputStream(fileURL);
autoClose[0] = fos;
writer = createWriter(fos);
} catch (IOException e) {
throw new TxwException(e);
}
} else
throw new IllegalArgumentException();
// now delegate to the SaxSerializer
serializer = new SaxSerializer(writer,writer,false) {
public void endDocument() {
super.endDocument();
if(autoClose[0]!=null) {
try {
autoClose[0].close();
} catch (IOException e) {
throw new TxwException(e);
}
autoClose[0] = null;
}
}
};
}
/**
* Use a StreamResult to initialize the output for this XMLStreamWriter. Check
* for OutputStream, Writer and then systemId, in that order.
*
* @param sr StreamResult encapsulating output information
* @param encoding Encoding to be used except when a Writer is available
*/
public void setOutput(StreamResult sr, String encoding)
throws IOException {
if (sr.getOutputStream() != null) {
setOutputUsingStream(sr.getOutputStream(), encoding);
}
else if (sr.getWriter() != null) {
setOutputUsingWriter(sr.getWriter());
}
else if (sr.getSystemId() != null) {
setOutputUsingStream(new FileOutputStream(sr.getSystemId()),
encoding);
}
}
/**
* Use a StreamResult to initialize the output for this XMLStreamWriter. Check
* for OutputStream, Writer and then systemId, in that order.
*
* @param sr StreamResult encapsulating output information
* @param encoding Encoding to be used except when a Writer is available
*/
public void setOutput(StreamResult sr, String encoding)
throws IOException {
if (sr.getOutputStream() != null) {
setOutputUsingStream(sr.getOutputStream(), encoding);
}
else if (sr.getWriter() != null) {
setOutputUsingWriter(sr.getWriter());
}
else if (sr.getSystemId() != null) {
setOutputUsingStream(new FileOutputStream(sr.getSystemId()),
encoding);
}
}
public void execute(ConnectorExecutionContext executionContext) throws Exception {
if (StringUtil.isEmpty(namespaceURI)) {
throw new FoxBPMConnectorException("连接器(执行一个Web服务)命名空间表达式为空!");
}
if (StringUtil.isEmpty(portName)) {
throw new FoxBPMConnectorException("连接器(执行一个Web服务)端口名表达式为空!");
}
if (StringUtil.isEmpty(serviceName)) {
throw new FoxBPMConnectorException("连接器(执行一个Web服务)服务名表达式为空!");
}
if (StringUtil.isEmpty(endpointAddress)) {
throw new FoxBPMConnectorException("连接器(执行一个Web服务)端点地址表达式为空!");
}
if (StringUtil.isEmpty(request)) {
throw new FoxBPMConnectorException("连接器(执行一个Web服务)请求内容表达式为空!");
}
QName portQName = new QName(namespaceURI, portName);
Service service = Service.create(new QName(namespaceURI, serviceName));
service.addPort(portQName, SOAPBinding.SOAP11HTTP_BINDING, endpointAddress);
StreamSource xmlSource = new StreamSource(new StringReader(request));
Dispatch<Source> dispatchSource = service.createDispatch(portQName, Source.class, Service.Mode.MESSAGE);
Source source = dispatchSource.invoke(xmlSource);
StreamResult result = new StreamResult(new ByteArrayOutputStream());
Transformer trans = TransformerFactory.newInstance().newTransformer();
trans.transform(source, result);
ByteArrayOutputStream baos = (ByteArrayOutputStream) result.getOutputStream();
response = new String(baos.toByteArray());
}
public StreamSerializer(StreamResult streamResult) {
// if this method opened a stream, let it close it
final OutputStream[] autoClose = new OutputStream[1];
if (streamResult.getWriter() != null)
writer = createWriter(streamResult.getWriter());
else if (streamResult.getOutputStream() != null)
writer = createWriter(streamResult.getOutputStream());
else if (streamResult.getSystemId() != null) {
String fileURL = streamResult.getSystemId();
fileURL = convertURL(fileURL);
try {
FileOutputStream fos = new FileOutputStream(fileURL);
autoClose[0] = fos;
writer = createWriter(fos);
} catch (IOException e) {
throw new TxwException(e);
}
} else
throw new IllegalArgumentException();
// now delegate to the SaxSerializer
serializer = new SaxSerializer(writer,writer,false) {
public void endDocument() {
super.endDocument();
if(autoClose[0]!=null) {
try {
autoClose[0].close();
} catch (IOException e) {
throw new TxwException(e);
}
autoClose[0] = null;
}
}
};
}
/**
* Use a StreamResult to initialize the output for this XMLStreamWriter. Check
* for OutputStream, Writer and then systemId, in that order.
*
* @param sr StreamResult encapsulating output information
* @param encoding Encoding to be used except when a Writer is available
*/
public void setOutput(StreamResult sr, String encoding)
throws IOException {
if (sr.getOutputStream() != null) {
setOutputUsingStream(sr.getOutputStream(), encoding);
}
else if (sr.getWriter() != null) {
setOutputUsingWriter(sr.getWriter());
}
else if (sr.getSystemId() != null) {
setOutputUsingStream(new FileOutputStream(sr.getSystemId()),
encoding);
}
}
public StreamSerializer(StreamResult streamResult) {
// if this method opened a stream, let it close it
final OutputStream[] autoClose = new OutputStream[1];
if (streamResult.getWriter() != null)
writer = createWriter(streamResult.getWriter());
else if (streamResult.getOutputStream() != null)
writer = createWriter(streamResult.getOutputStream());
else if (streamResult.getSystemId() != null) {
String fileURL = streamResult.getSystemId();
fileURL = convertURL(fileURL);
try {
FileOutputStream fos = new FileOutputStream(fileURL);
autoClose[0] = fos;
writer = createWriter(fos);
} catch (IOException e) {
throw new TxwException(e);
}
} else
throw new IllegalArgumentException();
// now delegate to the SaxSerializer
serializer = new SaxSerializer(writer,writer,false) {
public void endDocument() {
super.endDocument();
if(autoClose[0]!=null) {
try {
autoClose[0].close();
} catch (IOException e) {
throw new TxwException(e);
}
autoClose[0] = null;
}
}
};
}
/**
* Use a StreamResult to initialize the output for this XMLStreamWriter. Check
* for OutputStream, Writer and then systemId, in that order.
*
* @param sr StreamResult encapsulating output information
* @param encoding Encoding to be used except when a Writer is available
*/
public void setOutput(StreamResult sr, String encoding)
throws IOException {
if (sr.getOutputStream() != null) {
setOutputUsingStream(sr.getOutputStream(), encoding);
}
else if (sr.getWriter() != null) {
setOutputUsingWriter(sr.getWriter());
}
else if (sr.getSystemId() != null) {
setOutputUsingStream(new FileOutputStream(sr.getSystemId()),
encoding);
}
}
/**
* Template method for handling {@code StreamResult}s.
* <p>This implementation delegates to {@code marshalOutputStream} or {@code marshalWriter},
* depending on what is contained in the {@code StreamResult}
* @param graph the root of the object graph to marshal
* @param streamResult the {@code StreamResult}
* @throws IOException if an I/O Exception occurs
* @throws XmlMappingException if the given object cannot be marshalled to the result
* @throws IllegalArgumentException if {@code streamResult} does neither
* contain an {@code OutputStream} nor a {@code Writer}
*/
protected void marshalStreamResult(Object graph, StreamResult streamResult)
throws XmlMappingException, IOException {
if (streamResult.getOutputStream() != null) {
marshalOutputStream(graph, streamResult.getOutputStream());
}
else if (streamResult.getWriter() != null) {
marshalWriter(graph, streamResult.getWriter());
}
else {
throw new IllegalArgumentException("StreamResult contains neither OutputStream nor Writer");
}
}
public StreamSerializer(StreamResult streamResult) {
// if this method opened a stream, let it close it
final OutputStream[] autoClose = new OutputStream[1];
if (streamResult.getWriter() != null)
writer = createWriter(streamResult.getWriter());
else if (streamResult.getOutputStream() != null)
writer = createWriter(streamResult.getOutputStream());
else if (streamResult.getSystemId() != null) {
String fileURL = streamResult.getSystemId();
fileURL = convertURL(fileURL);
try {
FileOutputStream fos = new FileOutputStream(fileURL);
autoClose[0] = fos;
writer = createWriter(fos);
} catch (IOException e) {
throw new TxwException(e);
}
} else
throw new IllegalArgumentException();
// now delegate to the SaxSerializer
serializer = new SaxSerializer(writer,writer,false) {
public void endDocument() {
super.endDocument();
if(autoClose[0]!=null) {
try {
autoClose[0].close();
} catch (IOException e) {
throw new TxwException(e);
}
autoClose[0] = null;
}
}
};
}
/**
* Use a StreamResult to initialize the output for this XMLStreamWriter. Check
* for OutputStream, Writer and then systemId, in that order.
*
* @param sr StreamResult encapsulating output information
* @param encoding Encoding to be used except when a Writer is available
*/
public void setOutput(StreamResult sr, String encoding)
throws IOException {
if (sr.getOutputStream() != null) {
setOutputUsingStream(sr.getOutputStream(), encoding);
}
else if (sr.getWriter() != null) {
setOutputUsingWriter(sr.getWriter());
}
else if (sr.getSystemId() != null) {
setOutputUsingStream(new FileOutputStream(sr.getSystemId()),
encoding);
}
}