List of usage examples for javax.xml.soap SOAPMessage writeTo
public abstract void writeTo(OutputStream out) throws SOAPException, IOException;
From source file:org.overlord.rtgov.tests.platforms.jbossas.slamonitor.JBossASSLAMonitorTest.java
@Test @OperateOnDeployment("orders-app") public void testResponseTimesFromACMgr() { try {//from ww w . j av a 2 s . com SOAPConnectionFactory factory = SOAPConnectionFactory.newInstance(); SOAPConnection con = factory.createConnection(); java.net.URL url = new java.net.URL(ORDER_SERVICE_URL); String mesg = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" + " <soap:Body>" + " <orders:submitOrder xmlns:orders=\"urn:switchyard-quickstart-demo:orders:1.0\">" + " <order>" + " <orderId>PO-19838-XYZ</orderId>" + " <itemId>BUTTER</itemId>" + " <quantity>200</quantity>" + " <customer>Fred</customer>" + " </order>" + " </orders:submitOrder>" + " </soap:Body>" + "</soap:Envelope>"; java.io.InputStream is = new java.io.ByteArrayInputStream(mesg.getBytes()); SOAPMessage request = MessageFactory.newInstance().createMessage(null, is); is.close(); // Get base results QuerySpec qs1 = new QuerySpec(); qs1.setCollection(SERVICE_RESPONSE_TIMES); java.util.List<?> result1base = performACMQuery(qs1); QuerySpec qs2 = new QuerySpec(); qs2.setCollection("OrderService"); qs2.setParent(SERVICE_RESPONSE_TIMES); qs2.setPredicate( new MVEL("serviceType == \"{urn:switchyard-quickstart-demo:orders:0.1.0}OrderService\" && " + "operation == \"submitOrder\"")); java.util.List<?> result2base = performACMQuery(qs2); // Send message SOAPMessage response = con.call(request, url); java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream(); response.writeTo(baos); String resp = baos.toString(); baos.close(); if (!resp.contains("<accepted>true</accepted>")) { fail("Order was not accepted: " + resp); } // Wait for events to propagate Thread.sleep(4000); java.util.List<?> result1 = performACMQuery(qs1); System.out.println("RETRIEVED RESULTS 1=" + result1); if (result1 == null) { fail("Result 1 is null"); } if (result1.size() - result1base.size() != 3) { fail("3 events expected, but got: " + result1.size() + " - " + result1base.size() + " = " + (result1.size() - result1base.size())); } java.util.List<?> result2 = performACMQuery(qs2); System.out.println("RETRIEVED RESULTS 2=" + result2); if (result2 == null) { fail("Result 2 is null"); } if (result2.size() - result2base.size() != 1) { fail("1 event expected, but got: " + result2.size() + " - " + result2base.size() + " = " + (result2.size() - result2base.size())); } } catch (Exception e) { fail("Failed to invoke service: " + e); } }
From source file:org.overlord.rtgov.tests.platforms.jbossas.slamonitor.JBossASSLAMonitorTest.java
@Test @OperateOnDeployment("orders-app") public void testResponseTimesFromSLAMonitor() { try {/*from w ww . j a v a 2s. c om*/ SOAPConnectionFactory factory = SOAPConnectionFactory.newInstance(); SOAPConnection con = factory.createConnection(); java.net.URL url = new java.net.URL(ORDER_SERVICE_URL); String mesg = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" + " <soap:Body>" + " <orders:submitOrder xmlns:orders=\"urn:switchyard-quickstart-demo:orders:1.0\">" + " <order>" + " <orderId>PO-19838-XYZ</orderId>" + " <itemId>BUTTER</itemId>" + " <quantity>200</quantity>" + " <customer>Fred</customer>" + " </order>" + " </orders:submitOrder>" + " </soap:Body>" + "</soap:Envelope>"; java.io.InputStream is = new java.io.ByteArrayInputStream(mesg.getBytes()); SOAPMessage request = MessageFactory.newInstance().createMessage(null, is); is.close(); // Preload lists java.util.List<?> respTimes1before = getResponseTimes(null); java.util.List<?> respTimes2before = getResponseTimes("operation=submitOrder"); SOAPMessage response = con.call(request, url); java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream(); response.writeTo(baos); String resp = baos.toString(); baos.close(); if (!resp.contains("<accepted>true</accepted>")) { fail("Order was not accepted: " + resp); } // Wait for events to propagate Thread.sleep(4000); java.util.List<?> respTimes1 = getResponseTimes(null); if (respTimes1 == null) { fail("No events returned"); } if (respTimes1.size() - respTimes1before.size() != 3) { fail("3 events expected, but got: " + respTimes1.size() + " - " + respTimes1before.size() + " = " + (respTimes1.size() - respTimes1before.size())); } System.out.println("RESPONSE TIMES=" + respTimes1); // TODO: Sort out encoding to be able to pass fully qualified name of serviceType // {urn:switchyard-quickstart-demo:orders:0.1.0}OrderService java.util.List<?> respTimes2 = getResponseTimes(//"serviceType={urn%3Aswitchyard-quickstart-demo%3Aorders%3A0.1.0}OrderService&"+ "operation=submitOrder"); if (respTimes2 == null) { fail("No events returned"); } if (respTimes2.size() - respTimes2before.size() != 1) { fail("1 event expected, but got: " + respTimes2.size() + " - " + respTimes2before.size() + " = " + (respTimes2.size() - respTimes2before.size())); } System.out.println("RESPONSE TIMES (buy)=" + respTimes2); } catch (Exception e) { fail("Failed to invoke service: " + e); } }
From source file:org.overlord.rtgov.tests.platforms.jbossas.slamonitor.JBossASSLAMonitorTest.java
@Test @OperateOnDeployment("orders-app") @Ignore/*from w w w . j a va 2 s. c om*/ public void testResponseTimesOnFaultFromACMgr() { try { SOAPConnectionFactory factory = SOAPConnectionFactory.newInstance(); SOAPConnection con = factory.createConnection(); java.net.URL url = new java.net.URL(ORDER_SERVICE_URL); String mesg = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" + " <soap:Body>" + " <orders:submitOrder xmlns:orders=\"urn:switchyard-quickstart-demo:orders:1.0\">" + " <order>" + " <orderId>PO-19838-XYZ</orderId>" + " <itemId>LAPTOP</itemId>" + " <quantity>200</quantity>" + " <customer>Fred</customer>" + " </order>" + " </orders:submitOrder>" + " </soap:Body>" + "</soap:Envelope>"; java.io.InputStream is = new java.io.ByteArrayInputStream(mesg.getBytes()); SOAPMessage request = MessageFactory.newInstance().createMessage(null, is); is.close(); // Preload results QuerySpec qs1 = new QuerySpec(); qs1.setCollection(SERVICE_RESPONSE_TIMES); java.util.List<?> result1base = performACMQuery(qs1); SOAPMessage response = con.call(request, url); java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream(); response.writeTo(baos); String resp = baos.toString(); baos.close(); if (!resp.contains("Item Not Available")) { fail("Item not available response not received"); } // Wait for events to propagate Thread.sleep(4000); java.util.List<?> result1 = performACMQuery(qs1); System.out.println("RETRIEVED RESULTS (Fault)=" + result1); if (result1 == null) { fail("Result 1 is null"); } if (result1.size() - result1base.size() != 2) { fail("2 events expected, but got: " + result1.size() + " - " + result1base.size() + " = " + (result1.size() - result1base.size())); } } catch (Exception e) { fail("Failed to invoke service: " + e); } }
From source file:org.overlord.rtgov.tests.platforms.jbossas.slamonitor.JBossASSLAMonitorTest.java
@Test @OperateOnDeployment("orders-app") public void testActivityEventsProcessed() { EPNManager epnManager = EPNManagerAccessor.getEPNManager(); TestListener tl = new TestListener(); epnManager.addNotificationListener(SITUATIONS_PROCESSED, tl); try {//from w ww.j a v a 2s . c om SOAPConnectionFactory factory = SOAPConnectionFactory.newInstance(); SOAPConnection con = factory.createConnection(); java.net.URL url = new java.net.URL(ORDER_SERVICE_URL); String mesg = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" + " <soap:Body>" + " <orders:submitOrder xmlns:orders=\"urn:switchyard-quickstart-demo:orders:1.0\">" + " <order>" + " <orderId>PO-19838-XYZ</orderId>" + " <itemId>BUTTER</itemId>" + " <quantity>200</quantity>" + " <customer>Fred</customer>" + " </order>" + " </orders:submitOrder>" + " </soap:Body>" + "</soap:Envelope>"; java.io.InputStream is = new java.io.ByteArrayInputStream(mesg.getBytes()); SOAPMessage request = MessageFactory.newInstance().createMessage(null, is); is.close(); SOAPMessage response = con.call(request, url); java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream(); response.writeTo(baos); String resp = baos.toString(); baos.close(); if (!resp.contains("<accepted>true</accepted>")) { fail("Order was not accepted: " + resp); } // Wait for events to propagate Thread.sleep(4000); if (tl.getEvents(SITUATIONS_PROCESSED) == null) { fail("Expecting situations processed"); } // 6 instead of 3 due to the introduction of the second EPN node that also checks for SLA // violations, but does not generate any new situations - but this notification channel is // for events before they are processed. if (tl.getEvents(SITUATIONS_PROCESSED).size() != 6) { fail("Expecting 6 (sla situations) processed events, but got: " + tl.getEvents(SITUATIONS_PROCESSED).size()); } } catch (Exception e) { e.printStackTrace(); fail("Failed to invoke service via SOAP: " + e); } finally { epnManager.removeNotificationListener(SITUATIONS_PROCESSED, tl); } }
From source file:org.overlord.rtgov.tests.platforms.jbossas.slamonitor.JBossASSLAMonitorTest.java
@Test @OperateOnDeployment("orders-app") public void testActivityEventsResults() { EPNManager epnManager = EPNManagerAccessor.getEPNManager(); TestListener tl = new TestListener(); epnManager.addNotificationListener(SITUATIONS, tl); try {//from w ww . j a v a 2s . c o m SOAPConnectionFactory factory = SOAPConnectionFactory.newInstance(); SOAPConnection con = factory.createConnection(); java.net.URL url = new java.net.URL(ORDER_SERVICE_URL); String mesg = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">" + " <soap:Body>" + " <orders:submitOrder xmlns:orders=\"urn:switchyard-quickstart-demo:orders:1.0\">" + " <order>" + " <orderId>PO-13739-ABC</orderId>" + " <itemId>JAM</itemId>" + " <quantity>50</quantity>" + " <customer>Fred</customer>" + " </order>" + " </orders:submitOrder>" + " </soap:Body>" + "</soap:Envelope>"; java.io.InputStream is = new java.io.ByteArrayInputStream(mesg.getBytes()); SOAPMessage request = MessageFactory.newInstance().createMessage(null, is); is.close(); SOAPMessage response = con.call(request, url); java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream(); response.writeTo(baos); String resp = baos.toString(); baos.close(); if (!resp.contains("<accepted>true</accepted>")) { fail("Order was not accepted: " + resp); } // Wait for events to propagate Thread.sleep(2000); // Check that all events have been processed if (tl.getEvents(SITUATIONS) == null) { fail("Expecting sla violations results"); } if (tl.getEvents(SITUATIONS).size() != 2) { fail("Expecting 2 (sla violations) results events, but got: " + tl.getEvents(SITUATIONS).size()); } } catch (Exception e) { e.printStackTrace(); fail("Failed to invoke service via SOAP: " + e); } finally { epnManager.removeNotificationListener(SITUATIONS, tl); } }
From source file:org.sakaiproject.compilatio.util.CompilatioAPIUtil.java
public static Document callCompilatioReturnDocument(String apiURL, Map<String, String> parameters, String secretKey, final int timeout) throws TransientSubmissionException, SubmissionException { SOAPConnectionFactory soapConnectionFactory; Document xmlDocument = null;/*w w w . j a v a 2 s.c o m*/ try { soapConnectionFactory = SOAPConnectionFactory.newInstance(); SOAPConnection soapConnection = soapConnectionFactory.createConnection(); MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage soapMessage = messageFactory.createMessage(); SOAPPart soapPart = soapMessage.getSOAPPart(); SOAPEnvelope envelope = soapPart.getEnvelope(); SOAPBody soapBody = envelope.getBody(); SOAPElement soapBodyAction = soapBody.addChildElement(parameters.get("action")); parameters.remove("action"); // api key SOAPElement soapBodyKey = soapBodyAction.addChildElement("key"); soapBodyKey.addTextNode(secretKey); Set<Entry<String, String>> ets = parameters.entrySet(); Iterator<Entry<String, String>> it = ets.iterator(); while (it.hasNext()) { Entry<String, String> param = it.next(); SOAPElement soapBodyElement = soapBodyAction.addChildElement(param.getKey()); soapBodyElement.addTextNode(param.getValue()); } URL endpoint = new URL(null, apiURL, new URLStreamHandler() { @Override protected URLConnection openConnection(URL url) throws IOException { URL target = new URL(url.toString()); URLConnection connection = target.openConnection(); // Connection settings connection.setConnectTimeout(timeout); connection.setReadTimeout(timeout); return (connection); } }); SOAPMessage soapResponse = soapConnection.call(soapMessage, endpoint); // loading the XML document ByteArrayOutputStream out = new ByteArrayOutputStream(); soapResponse.writeTo(out); DocumentBuilderFactory builderfactory = DocumentBuilderFactory.newInstance(); builderfactory.setNamespaceAware(true); DocumentBuilder builder = builderfactory.newDocumentBuilder(); xmlDocument = builder.parse(new InputSource(new StringReader(out.toString()))); soapConnection.close(); } catch (UnsupportedOperationException | SOAPException | IOException | ParserConfigurationException | SAXException e) { log.error(e); } return xmlDocument; }
From source file:org.sakaiproject.contentreview.compilatio.util.CompilatioAPIUtil.java
public static Document callCompilatioReturnDocument(String apiURL, Map<String, String> parameters, String secretKey, final int timeout, Proxy proxy, boolean isMultipart) throws TransientSubmissionException, SubmissionException { SOAPConnectionFactory soapConnectionFactory; Document xmlDocument = null;// w ww . j ava 2s .co m try { soapConnectionFactory = SOAPConnectionFactory.newInstance(); SOAPConnection soapConnection = soapConnectionFactory.createConnection(); MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage soapMessage = messageFactory.createMessage(); SOAPPart soapPart = soapMessage.getSOAPPart(); SOAPEnvelope envelope = soapPart.getEnvelope(); SOAPBody soapBody = envelope.getBody(); SOAPElement soapBodyAction = soapBody.addChildElement(parameters.get("action")); parameters.remove("action"); // api key SOAPElement soapBodyKey = soapBodyAction.addChildElement("key"); soapBodyKey.addTextNode(secretKey); Set<Entry<String, String>> ets = parameters.entrySet(); Iterator<Entry<String, String>> it = ets.iterator(); while (it.hasNext()) { Entry<String, String> param = it.next(); SOAPElement soapBodyElement = soapBodyAction.addChildElement(param.getKey()); soapBodyElement.addTextNode(param.getValue()); } URL endpoint = new URL(null, apiURL, new URLStreamHandler() { @Override protected URLConnection openConnection(URL url) throws IOException { URL target = new URL(url.toString()); URLConnection connection = target.openConnection(); // Connection settings connection.setConnectTimeout(timeout); connection.setReadTimeout(timeout); return (connection); } }); SOAPMessage soapResponse = soapConnection.call(soapMessage, endpoint); // loading the XML document ByteArrayOutputStream out = new ByteArrayOutputStream(); soapResponse.writeTo(out); DocumentBuilderFactory builderfactory = DocumentBuilderFactory.newInstance(); builderfactory.setNamespaceAware(true); DocumentBuilder builder = builderfactory.newDocumentBuilder(); xmlDocument = builder.parse(new InputSource(new StringReader(out.toString()))); soapConnection.close(); } catch (UnsupportedOperationException | SOAPException | IOException | ParserConfigurationException | SAXException e) { log.error(e); } return xmlDocument; }
From source file:org.springframework.integration.sqs.AWSSecurityHandler.java
private void logMessage(final String text, final SOAPMessage message) { ByteArrayOutputStream out = new ByteArrayOutputStream(); try {// w w w . j a v a 2s . c om message.writeTo(out); log.debug(text + out.toString()); // using system encoding } catch (Exception e) { } // ignore }
From source file:org.vast.ows.server.WPSServlet.java
/** * Decode the query, check validity and call the right handler * @param query//from w ww . j av a2s . co m */ protected void processQuery(DescribeProcessRequest query) throws Exception { if (query.getRequestFormat() == null) throw new WPSException("A DescribeProcess WPS request must specify an request format argument"); if (query.getOffering() == null) throw new WPSException("A DescribeProcess WPS request must specify an request offering argument"); SOAPMessage describeProcessSOAPMessage = wpsUtils.createSoapMessage(describeProcessDomHelper); describeProcessSOAPMessage.writeTo(query.getResponseStream()); }
From source file:org.wso2.carbon.device.mgt.mobile.windows.api.services.enrollment.util.MessageHandler.java
/** * This method adds Timestamp for SOAP header, and adds Content-length for HTTP header for * avoiding HTTP chunking.// w ww. ja v a 2 s. c om * * @param context - Context of the SOAP Message */ @Override public boolean handleMessage(SOAPMessageContext context) { Boolean outBoundProperty = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY); if (outBoundProperty) { SOAPMessage message = context.getMessage(); SOAPHeader header = null; SOAPEnvelope envelope = null; try { header = message.getSOAPHeader(); envelope = message.getSOAPPart().getEnvelope(); } catch (SOAPException e) { Response.serverError().entity("SOAP message content cannot be read.").build(); } try { if ((header == null) && (envelope != null)) { header = envelope.addHeader(); } } catch (SOAPException e) { Response.serverError().entity("SOAP header cannot be added.").build(); } SOAPFactory soapFactory = null; try { soapFactory = SOAPFactory.newInstance(); } catch (SOAPException e) { Response.serverError().entity("Cannot get an instance of SOAP factory.").build(); } QName qNamesSecurity = new QName(PluginConstants.WS_SECURITY_TARGET_NAMESPACE, PluginConstants.CertificateEnrolment.SECURITY); SOAPHeaderElement Security = null; Name attributeName = null; try { if (header != null) { Security = header.addHeaderElement(qNamesSecurity); } if (soapFactory != null) { attributeName = soapFactory.createName(PluginConstants.CertificateEnrolment.TIMESTAMP_ID, PluginConstants.CertificateEnrolment.TIMESTAMP_U, PluginConstants.CertificateEnrolment.WSS_SECURITY_UTILITY); } } catch (SOAPException e) { Response.serverError().entity("Security header cannot be added.").build(); } QName qNameTimestamp = new QName(PluginConstants.CertificateEnrolment.WSS_SECURITY_UTILITY, PluginConstants.CertificateEnrolment.TIMESTAMP); SOAPHeaderElement timestamp = null; try { if (header != null) { timestamp = header.addHeaderElement(qNameTimestamp); timestamp.addAttribute(attributeName, PluginConstants.CertificateEnrolment.TIMESTAMP_0); } } catch (SOAPException e) { Response.serverError().entity("Exception while adding timestamp header.").build(); } DateTime dateTime = new DateTime(); DateTime expiredDateTime = dateTime.plusMinutes(VALIDITY_TIME); String createdISOTime = dateTime.toString(ISODateTimeFormat.dateTime()); String expiredISOTime = expiredDateTime.toString(ISODateTimeFormat.dateTime()); createdISOTime = createdISOTime.substring(TIMESTAMP_BEGIN_INDEX, createdISOTime.length() - TIMESTAMP_END_INDEX); createdISOTime = createdISOTime + TIME_ZONE; expiredISOTime = expiredISOTime.substring(TIMESTAMP_BEGIN_INDEX, expiredISOTime.length() - TIMESTAMP_END_INDEX); expiredISOTime = expiredISOTime + TIME_ZONE; QName qNameCreated = new QName(PluginConstants.CertificateEnrolment.WSS_SECURITY_UTILITY, PluginConstants.CertificateEnrolment.CREATED); SOAPHeaderElement SOAPHeaderCreated = null; try { if (header != null) { SOAPHeaderCreated = header.addHeaderElement(qNameCreated); SOAPHeaderCreated.addTextNode(createdISOTime); } } catch (SOAPException e) { Response.serverError().entity("Exception while creating SOAP header.").build(); } QName qNameExpires = new QName(PluginConstants.CertificateEnrolment.WSS_SECURITY_UTILITY, PluginConstants.CertificateEnrolment.EXPIRES); SOAPHeaderElement SOAPHeaderExpires = null; ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); String messageString = null; try { if (header != null) { SOAPHeaderExpires = header.addHeaderElement(qNameExpires); SOAPHeaderExpires.addTextNode(expiredISOTime); } if ((timestamp != null) && (Security != null)) { timestamp.addChildElement(SOAPHeaderCreated); timestamp.addChildElement(SOAPHeaderExpires); Security.addChildElement(timestamp); } message.saveChanges(); message.writeTo(outputStream); messageString = new String(outputStream.toByteArray(), PluginConstants.CertificateEnrolment.UTF_8); } catch (SOAPException e) { Response.serverError().entity("Exception while creating timestamp SOAP header.").build(); } catch (IOException e) { Response.serverError().entity("Exception while writing message to output stream.").build(); } Map<String, List<String>> headers = (Map<String, List<String>>) context .get(MessageContext.HTTP_REQUEST_HEADERS); headers = new HashMap<String, List<String>>(); if (messageString != null) { headers.put(PluginConstants.CONTENT_LENGTH, Arrays.asList(String.valueOf(messageString.length()))); } context.put(MessageContext.HTTP_REQUEST_HEADERS, headers); } return true; }