概要
SOAP は、Web 上で XML ベースのメッセージを交換するために広く使用されているプロトコルです。 SOAP クライアントの実装は、特に初心者にとっては困難な作業となる場合があります。この記事は、SAAJ (SOAP with Attachments API for Java) フレームワークを利用して、Java で動作する SOAP クライアントの簡単で実用的な例を提供することを目的としています。
SAAJ: SOAP with Attachments API for Java
SAAJ は、SOAP メッセージを直接処理するための Java 内のフレームワークです。これにより、開発者は JAX-WS を使用せずに SOAP メッセージを作成および解析できるようになります。 SAAJ は、SOAP メッセージを操作するための簡素化されたインターフェイスを提供しており、SOAP クライアントの作成に最適です。
実際の SOAP クライアントの例
次のコード スニペットは、実際の SOAP クライアントの例を示しています。 SAAJ を使用した SOAP クライアントの例。このクライアントは Web サービスを呼び出して、特定の都市に関する情報を取得します。
import javax.xml.soap.*; public class SOAPClientSAAJ { // SAAJ - SOAP Client Testing public static void main(String args[]) { // SOAP Endpoint URL and SOAP Action String soapEndpointUrl = "http://www.webservicex.net/uszip.asmx"; String soapAction = "http://www.webserviceX.NET/GetInfoByCity"; callSoapWebService(soapEndpointUrl, soapAction); } private static void createSoapEnvelope(SOAPMessage soapMessage) throws SOAPException { // Create SOAP Envelope and Namespace SOAPPart soapPart = soapMessage.getSOAPPart(); String myNamespace = "myNamespace"; String myNamespaceURI = "http://www.webserviceX.NET"; SOAPEnvelope envelope = soapPart.getEnvelope(); envelope.addNamespaceDeclaration(myNamespace, myNamespaceURI); // Create SOAP Body and Request Content SOAPBody soapBody = envelope.getBody(); SOAPElement soapBodyElem = soapBody.addChildElement("GetInfoByCity", myNamespace); SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("USCity", myNamespace); soapBodyElem1.addTextNode("New York"); } private static void callSoapWebService(String soapEndpointUrl, String soapAction) { try { // Create SOAP Connection and Message SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance(); SOAPConnection soapConnection = soapConnectionFactory.createConnection(); SOAPMessage soapMessage = createSOAPRequest(soapAction); // Send SOAP Message and Receive Response SOAPMessage soapResponse = soapConnection.call(soapMessage, soapEndpointUrl); soapResponse.writeTo(System.out); soapConnection.close(); } catch (Exception e) { System.err.println("Error sending SOAP Request!"); e.printStackTrace(); } } private static SOAPMessage createSOAPRequest(String soapAction) throws Exception { // Create SOAP Message and Add Headers MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage soapMessage = messageFactory.createMessage(); createSoapEnvelope(soapMessage); MimeHeaders headers = soapMessage.getMimeHeaders(); headers.addHeader("SOAPAction", soapAction); soapMessage.saveChanges(); return soapMessage; } }
例の実行
この例を実行するには、Java がインストールされている必要がありますあなたのシステム上で。コード スニペットを .java 拡張子の付いたファイルとして保存し、javac を使用してコンパイルし、java で実行します。このコードは Web サービスを呼び出して都市「ニューヨーク」に関する情報を取得し、その応答がコンソールに表示されます。
追加メモ
この例に従い、SAAJ を使用した SOAP メッセージの構築と処理の概念を理解することで、自信を持って独自のアプリケーション用の SOAP クライアントを構築できます。
以上がJava で SAAJ を使用して動作する SOAP クライアントを作成するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。