diff options
Diffstat (limited to 'spss.server/doc/moa_spss/examples/testclient/HTTPClientExample.java')
-rw-r--r-- | spss.server/doc/moa_spss/examples/testclient/HTTPClientExample.java | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/spss.server/doc/moa_spss/examples/testclient/HTTPClientExample.java b/spss.server/doc/moa_spss/examples/testclient/HTTPClientExample.java new file mode 100644 index 000000000..f70f33d12 --- /dev/null +++ b/spss.server/doc/moa_spss/examples/testclient/HTTPClientExample.java @@ -0,0 +1,120 @@ +import java.io.FileInputStream; +import java.util.Vector; + +import javax.xml.namespace.QName; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.rpc.Call; +import javax.xml.rpc.Service; +import javax.xml.rpc.ServiceFactory; + +import org.apache.axis.message.SOAPBodyElement; +import org.apache.xml.serialize.LineSeparator; +import org.apache.xml.serialize.OutputFormat; +import org.apache.xml.serialize.XMLSerializer; +import org.w3c.dom.Document; + +/** + * @author Sven + * + * Dies ist eine Beispielklasse die den Zugriff auf MOA-SPSS mittels AXIS erklärt + */ +public class HTTPClientExample { + + // SOAP Konstanten + // CreationServer + private static final QName SERVICE_QNAME = new QName("SignatureCreation"); + private static final String ENDPOINT = "http://localhost:8080/moa-spss/services/SignatureCreation"; + /*private static final String ENDPOINT = + "http://localhost:8080/moa-spss/services/SignatureVerification";*/ + /* + Secure Endpoint + dieser Endpoint kann alternativ zum ersten ENDPOINT verwendet werden + um eine sichere Verbindung zum Server herzustellen + private static final String SECURE_ENDPOINT = + "https://localhost:8443/moa-spss/services/SignatureCreation"; + */ + + /* + VerificationService + wenn Sie diese Werte für ENDPOINT und SERVICE verwenden können Sie eine + Signaturprüfung anstatt einer Signaturerstellung durchführen (entweder mit + ENDPOINT für eine nicht sichere Verbindung bzw. SECURE_ENDPOINT für eine + sichere Verbindung) + + private static final QName SERVICE_QNAME = new QName("SignatureVerification"); + + private static final String SECURE_ENDPOINT = + "https://localhost:8443/moa-spss/services/SignatureVerification"; + */ + + /** + * Methode main. + * + * Enthält den Beispielcode der nötig ist um von Java aus auf MOA-SPSS zugreifen zu können. + * Der Zugriff passiert über das AXIS-Framework. + * + * @param args wird nicht verwendet + */ + public static void main(String[] args) { + + try { + // Datei mit Request einlesen + FileInputStream inputStream = new FileInputStream("example_request.xml"); + + // Parser/DOMBuilder instanzieren + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + DocumentBuilder builder = factory.newDocumentBuilder(); + + // XML Datei in einen DOM-Baum umwandeln + Document root_request = builder.parse(inputStream); + + // AXIS-Server instanzieren + Service service = ServiceFactory.newInstance().createService(SERVICE_QNAME); + + // Call öffnen + Call call = service.createCall(); + + // Neues BodyElement anlegen und mit dem DOM-Baum füllen + SOAPBodyElement body = new SOAPBodyElement(root_request.getDocumentElement()); + SOAPBodyElement[] params = new SOAPBodyElement[] {body}; + + // Call mit Endpoint verknüpfen + call.setTargetEndpointAddress(ENDPOINT); + + // Call auslösen und die Antworten speichern + System.out.println("Calling ..."); + Vector responses = (Vector) call.invoke(params); + + // erstes BodyElement auslesen + SOAPBodyElement response = (SOAPBodyElement) responses.get(0); + + // aus der Response den DOM-Baum lesen + Document root_response = response.getAsDocument(); + System.out.println("Return ..."); + + // Ausgabe auf System.out zum Testen + OutputFormat format = new OutputFormat((Document)root_response); + + format.setLineSeparator("\n"); + format.setIndenting(false); + format.setPreserveSpace(true); + format.setOmitXMLDeclaration(false); + format.setEncoding("UTF-8"); + + XMLSerializer serializer = new XMLSerializer (System.out, format); + //serializer.asDOMSerializer(); + serializer.serialize(root_response); + + // Antwort verarbeiten + // ... + // ... + } + catch(Exception e) + { + e.printStackTrace(); + } + + } +} |