Saturday 1 December 2012

Consuming "No WSDL" services

Oracle Service Bus offers to have "Any XML" or "Any SOAP" proxy services. These services do not have associated WSDLs so it means that you can not use standard features, such Web Services Data Control or Web Services Proxy. Instead one option is to use java class to consume such services. E.g.


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;

import javax.faces.component.html.HtmlCommandButton;
import javax.faces.event.ActionEvent;


    public void runPrepareTransaction(ActionEvent actionEvent) {
        try {
            String data = inputText.getValue().toString();
            URL url =
                new URL("http://blabla.com/Proxy/PrepareTransaction");
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);
            OutputStreamWriter oSW =
                new OutputStreamWriter(conn.getOutputStream());
            oSW.write(data);
            oSW.flush();
            BufferedReader bR =
                new BufferedReader(new InputStreamReader(conn.getInputStream()));
            int i = 0;
            String line;
            while ((line = bR.readLine()) != null) {
                System.out.println("Line is : " + i + " : " +
                                   line);
                i++;
            }
            oSW.close();
            bR.close();
        } catch (Exception e) {
        }
    }



No comments:

Post a Comment