2.15 Axis プロパティ

JSM が開始すると、system/AxisDefault.properties ファイル内の name の値エントリーが読み込まれ、スタティック・メソッド setProperty を使用する org.apache.axis.AxisProperties クラスに追加されます。
以下は AxisDefault.properties ファイルの例です。
#!<studio-project id="20000000-000000" name="lansa">
#

  1. Axis default properties
    #
    axis.ClientConfigFile=system/axis-client-config.xml
    axis.ServerConfigFile=system/axis-server-config.xml
    #
  2. axis.http.client.maximum.total.connections
  3. axis.http.client.maximum.connections.per.host
  4. axis.http.client.connection.pool.timeout
  5. axis.http.client.connection.default.so.timeout
  6. axis.http.client.connection.default.connection.timeout
  7. axis.socketFactory
  8. axis.socketSecureFactory
  9. axis.ServerFactory
  10. http.proxyHost
  11. http.proxyPort
  12. http.proxyUser
  13. http.proxyPassword
  14. http.nonProxyHosts
  15. https.proxyHost
  16. https.proxyPort
  17. https.proxyUser
  18. https.proxyPassword
  19. https.nonProxyHosts
    #
    #!</studio-project>
     
    Axis グローバル構成
    Axis リファレンス・ガイド
    Axis クライアント/サーバー構成
    デフォルトでは、Axis はクライアント/サーバー構成用に jsmaxis.jar ファイルの org/apache/axis/client/client-config.wsdd ファイルと org/apache/axis/server/server-config.wsdd ファイルを使用します。
    AxisDefault.properties のエントリー axis.ClientConfigFile および axis.ServerConfigFile は、異なる構成ファイルを使用するように Axis に指示します。
    axis.ClientConfigFile=system/axis-client-config.xml
    axis.ServerConfigFile=system/axis-server-config.xml
     
    Axis クライアント構成
    <?xml version="1.0" encoding="utf-8"?>
     
    <deployment name="defaultClientConfiguration" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
     
    <globalConfiguration>
      <parameter name="disablePrettyXML" value="true"/>
      <parameter name="addressing.sendReplyTo" value="true"/>
      <parameter name="enableNamespacePrefixOptimization" value="false"/>
    </globalConfiguration>
     
    <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
     
    </deployment>
     
    Axis サーバー構成
    <?xml version="1.0" encoding="utf-8"?>
     
    <deployment name="defaultServerConfiguration" xmlns="http://xml.apache.org/axis/wsdd/">
     
    <globalConfiguration>
      <parameter name="sendMultiRefs" value="false"/>
      <parameter name="dotNetSoapEncFix" value="true"/>
      <parameter name="disablePrettyXML" value="true"/>
      <parameter name="enableNamespacePrefixOptimization" value="false"/>
    </globalConfiguration>
     
    </deployment>
     
    SOAP サーバー応答での MultiRef エンコーディングの無効化
    Axisサーバー構成では、グローバルなsendMulitRefsパラメータを使用することにより、RPC/エンコードされた応答でのmultiRefの送信を無効にすることができます。
    <parameter name="sendMultiRefs" value="false"/>
     
    Axis での共通 HTTP クライアントの使用
    デフォルトでは、Apache Axis 1.4はHTTP送信にorg.apache.axis.transport.http.HTTPSenderを使用します。
    このデフォルト設定を、org.apache.commons.httpclientを使用するように変更できます。
    構成内のtransport pivot属性を、CommonsHTTPSenderクラスを指し示すように変更します。
    <transport name="http" pivot="java:org.apache.axis.transport.http.CommonsHTTPSender"/>
     
    また、common.codec.1.3.jarとcommon-httpclient-3.0-rc4.jarをjarディレクトリに追加する必要があります。 http://jakarta.apache.org/commons/ http://jakarta.apache.org/commons/httpclient/ http://jakarta.apache.org/commons/httpclient/features http://jakarta.apache.org/commons/httpclient/logging http://jakarta.apache.org/site/downloads/downloads_commons
    JSMDirect サーバーで共通 HTTP クライアントを使用する場合の問題
    デフォルトでは、共通HTTPクライアントはHTTPプロトコル1.1を使用し、デフォルトでチャンク形式転送エンコーディングを使用します。
    HTTPクライアント・プログラムがチャンク形式転送エンコーディングを送信する場合、内容の長さを送信することはできません。
    JSMDirectは内容の長さを要求するため、HTTPクライアント・プログラムはSTDINを読み込みJSMに送信することができます。
    そのため、JSM SOAPサーバー・サービスではSOAPメッセージ内容を受信しません。
    SOAP Agentウィザードは、生成されたサービス・コードに以下のコードを入れることで、HTTPクライアント・プログラムに対してHTTP 1.0プロトコルを強制的に使用させることができます。
    stub._setProperty ( org.apache.axis.MessageContext.HTTP_TRANSPORT_VERSION ,
                        org.apache.axis.transport.http.HTTPConstants.HEADER_PROTOCOL_V10 ) ;
     
    SOAP 要求への SOAP ヘッダーの挿入
    生成されたSOAP Agentのサービス・コードにコードを含めることで、SOAP要求にSOAPヘッダーを挿入できます。SOAP Agentウィザードでサービス・コードを生成すると、ファイルAGENT_INCLUDE.TXTの内容が生成されたコードに含まれます。
    また、メッセージ・ハンドラーを使用してメッセージにSOAPヘッダーを追加することもできます。詳細は、「2.17 SOAP Agent メッセージ・ハンドラー」を参照してください。
    /*
        Add SOAP header
    */
    org.apache.axis.message.SOAPHeaderElement elementHead = new org.apache.axis.message.SOAPHeaderElement ( "namespace", "AuthHeader" )  ;
     
    javax.xml.soap.SOAPElement elementUserToken = elementHead.addChildElement ( "UserToken" ) ;
     
    javax.xml.soap.SOAPElement elementUserName = elementUserToken.addChildElement ( "UserName" ) ;
    elementUserName.addTextNode ( "username" ) ;
     
    javax.xml.soap.SOAPElement elementPassword = elementUserToken.addChildElement ( "Password" ) ;
    elementPassword.addTextNode ( "password" ) ;
     
    stub.setHeader ( elementHead ) ;