バージョン1.0
Usage: java org.apache.axis.wsdl.WSDL2Java [options] WSDL-URI
Options:
-h, --help
print this message and exit
-v, --verbose
print informational messages
-n, --noImports
only generate code for the immediate WSDL document
-O, --timeout <argument>
timeout in seconds (default is 45, specify -1 to disable)
-D, --Debug
print debug information
-W, --noWrapped
turn off support for "wrapped" document/literal
-s, --server-side
emit server-side bindings for web service
-S, --skeletonDeploy <argument>
deploy skeleton (true) or implementation (false) in deploy.wsdd.
Default is false. Assumes --server-side.
-N, --NStoPkg <argument>=<value>
mapping of namespace to package
-f, --fileNStoPkg <argument>
file of NStoPkg mappings (default NStoPkg.properties)
-p, --package <argument>
override all namespace to package mappings, use this package
name instead
-o, --output <argument>
output directory for emitted files
-d, --deployScope <argument>
add scope to deploy.xml: "Application", "Request", "Session"
-t, --testCase
emit junit testcase class for web service
-a, --all
generate code for all elements, even unreferenced ones
-T, --typeMappingVersion
indicate 1.1 or 1.2. The default is 1.1 (SOAP 1.1 JAX-RPC compliant.
1.2 indicates SOAP 1.1 encoded.)
-F, --factory <argument>
name of a custom class that implements GeneratorFactory interface
(for extending Java generation functions)
-H, --helperGen
emits separate Helper classes for meta data
-U, --user <argument>
username to access the WSDL-URI
-P, --password <argument>
password to access the WSDL-URI
<service name="AddressBook" provider="java:RPC"> <parameter name="className" value="samples.addr.AddressBookSOAPBindingSkeleton"/> ... </service>
また、"false"の場合、以下のようになります:
<service name="AddressBook" provider="java:RPC"> <parameter name="className" value="samples.addr.AddressBookSOAPBindingImpl"/> ... </service>
このオプションのデフォルトはfalseです。このオプションを使用する場合、--server-sideオプションが前提となるため、--server-sideオプションを明示的に指定する必要はありません。
--NStoPkg urn:AddressFetcher2=samples.addr("-N"という省略オプションタグを使用する場合、"-N"と名前空間の間に空白を入れてはなりません)。
このファイル内の項目は、--NStoPkgコマンドラインオプションの引数と同じ形式です。例えば、上記のコマンドラインオプションで指定していたものは、以下のNStoPkg.propertiesによって同じ情報を提供することができます:
urn\:AddressFetcher2=samples.addr(プロパティファイル内のコロンはエスケープされなければならないことに注意して下さい。)
あるマッピングがコマンドラインとプロパティファイルの両方で与えられる場合は、コマンドラインの方が優先されます。
参照されるとはどのようなことでしょうか。serviceから始め、そのserviceで参照されるbindingを全て生成し、その参照されるbindingによって参照されるportTypeを全て生成、というように単純にはいきません。portType、message、typesしか含まないWSDLファイルから生成されるコードはどのようなものでしょうか?WSDL2Javaがアンカとしてserviceを使用するのであれば、serviceがそのファイルに存在しないので、何も生成されません。従って、アンカはWSDLファイル内に存在する、以下の順番における最下位要素です:
例えば、WSDLファイルがtypes要素しかない場合は、そこに記された全てのtypesが生成されます。しかし、WSDLファイルがtypesと1つのportTypeからなる場合は、portTypeとそのportTypeから参照されるtypesのみが生成されます。
アンカの検索はコマンドラインに指定されたWSDLファイル内で行なわれ、インポートされたWSDLファイル内は検索されないことに注意して下さい。これにより、1つのWSDLファイルは、インポートされたWSDLファイル内の全ての構成物から邪魔なコードを生成することなく、他のWSDLファイルで定義された構成物をインポートすることができます。
http://user:password@hostname:port/path/to/service?WSDL
以下にこのツールが生成するヘルプメッセージを示します:
Java2WSDL emitter
Usage: java org.apache.axis.wsdl.Java2WSDL [options]
class-of-portType
Options:
-h, --help
print this message and exit
-I, --input
<argument>
input WSDL filename
-o, --output
<argument>
output WSDL filename
-l, --location
<argument>
service location url
-P, --portTypeName
<argument>
portType name (obtained from class-of-portType if not specified)
-b, --bindingName
<argument>
binding name ((--servicePortName value + "SOAPBinding" if not specified)
-S, --serviceElementName
<argument>
service element name (defaults to servicePortName value + "Service")
-s, --servicePortName
<argument>
service port name (obtained from --location if not specified)
-n, --namespace
<argument>
target namespace
-p, --PkgtoNS
<argument>=<value>
package=namespace, name value pairs
-m, --methods
<argument>
space or comma separated list of methods to export
-a, --all
look for allowed methods in inherited class
-w, --outputWsdlMode
<argument>
output WSDL mode: All, Interface, Implementation
-L, --locationImport
<argument>
location of interface WSDL
-N, --namespaceImpl
<argument>
target namespace for implementation WSDL
-O, --outputImpl
<argument>
output Implementation WSDL filename, setting this causes
--outputWsdlMode to be ignored
-i, --implClass
<argument>
optional class that contains implementation of methods in
class-of-portType. The debug information in the class is used
to obtain the method parameter names, which are used to set
the WSDL part names.
-x, --exclude
<argument>
space or comma separated list of methods not to export
-y, --style
<argument>
the style of the wsdl document: RPC, DOCUMENT or WRAPPED
-c, --stopClasses
<argument>
space or comma separated list of class names which stop inheritance search
if --all switch is enabled
-T, --typeMappingVersion
<argument>
indicate 1.1 or 1.2. The default is 1.2 (SOAP 1.2 JAX-RPC compliant)
-A, --soapAction
<argument>
value of the operations soapAction field. Values are DEFAULT,
OPERATION or NONE. OPERATION forces soapAction to the name
of the operation. DEFAULT causes the soapAction to be set
according to the operations meta data (usually ""). NONE
forces the soapAction to "". The default is DEFAULT.
-y, --style
<argument>
the style of the wsdl document: RPC, DOCUMENT or WRAPPED
Details:
portType element name= <.portTypeName
value> OR <class-of-portType name>
binding element name= <--bindingName value> OR
<--servicePortName value>SoapBinding
service element name= <--serviceElementName
value> OR <portTypeName value>Service
port element name=
<--servicePortName value>
address location =
<--location value>
-h , --help
このヘルプメッセージを表示します。
-I, --input <WSDL file>
入力wsdlファイル名を指定する省略可能なパラメータです。出力wsdlファイルには、入力wsdlファイルに新規作成された要素を加えたものが全て含まれます。新規作成要素が入力wsdlファイルに存在する場合には追加されません。このオプションは、複数のport、binding、portTypeを持つwsdlファイルを生成する時に便利です。
-o, --output <WSDL file>
出力WSDLファイルの名前を指定します。指定されなければ、適当なデフォルトのWSDLファイルがカレントディレクトリ内に書き出されます。
-l, --location <location>
サービスの場所を示すURLを指定します。(-sオプションで上書きされない限り)最後のスラッシュ、もしくは、バックスラッシュの後の名前が、このサービスポートの名前となります。サービスポートのaddress location属性は指定された値が設定されます。
-P, --portTypeName <name>
portType要素に使用する名前を指定します。指定されなければ、portTypeクラスの名前が使用されます。
-b, --bindingName <name>
binding要素に使用する名前を指定します。指定されなければ、--servicePortNameの値 + "SoapBinding" が使用されます。
-S, --serviceElementName <name>
service要素の名前を指定します。指定されなければ、service要素は<portTypeName>Serviceになります。
-s, --servicePortName <name>
サービスポートの名前を指定します。指定されなければ、サービスポート名は--locationの値から取り出されます。
-n, --namespace <target namespace>
WSDLのターゲット名前空間の名前を指定します。
-p, --PkgToNS <package> <namespace>
パッケージから名前空間へのマッピングを指定します。名前空間を持たないパッケージと遭遇した場合、Java2WSDLのエミッタは適当な名前空間名を作成します。このオプションは、複数回指定することができます。
-m, --methods <arguments>
このオプションが指定された場合、インタフェースクラス内の指定されたメソッドのみがWSDLファイルにエクスポートされます。このメソッドリストは、カンマで区切らなければなりません。指定されなければ、そのインタフェースクラス内で宣言された全メソッドがWSDLファイルにエクスポートされます。
-a, --all
このオプションが指定された場合、Java2WSDLパーサは、WSDLファイルにエクスポートするメソッドリストを決定するために、継承されたクラスを参照します。
-w, --outputWSDLMode <mode>
生成するWSDLの種類を指定します。以下の値を指定することができます:
-N, --namespaceImpl <namespace>
実装WSDLの名前空間です。
-O, --outputImpl <WSDL file>
このオプションで、出力される実装WSDLファイルの名前を指定します。指定された場合、Java2WSDLはインタフェースWSDLと実装WSDLを生成します。このオプションが使用されると、-wオプションは無視されます。
-i, --implClass <impl-class>
実装クラスファイル内に有用な情報が存在する場合があります。このオプションを使用して、実装クラスを指定することができます。
-x, --exclude <list>
wsdlファイルから除外するメソッドのリストです。
-y, --style <argument>
WSDL文書の書式です: RPC、DOCUMENT、または、WRAPPEDです。RPCの場合、rpc/エンコードされたwsdlが生成されます。DOCUMENTの場合、文書/リテラルwsdlが生成されます。WRAPPEDの場合、ラップされた文書/リテラルwsdlが生成されます。
-c, --stopClasses <list>
Java2WSDLによる継承検索を行なわないクラスのリストです。
-T, --typeMappingVersion <version>
デフォルトの型マッピングレジストリを選択します。1.1、または、1.2です。
-A, --soapAction <argument>
操作soapActionフィールドの値です。DEFAULT、OPERATION、または、NONEをとることができます。OPERATIONにより、soapActionは強制的にその操作の名前になります。DEFAULTにより、soapActionは操作のメタデータ(通常"")に従うよう設定されます。NONEによりsoapActionは強制的に""になります。デフォルトは、DEFAULTです。
-y, --style <argument>
WSDL文書の書式です: RPC、DOCUMENT、または、WRAPPEDです。RPCの場合、rpc/エンコードされたwsdlが生成されます。DOCUMENTの場合、文書/リテラルwsdlが生成されます。WRAPPEDの場合、ラップされた文書/リテラルwsdlが生成されます。
<parameter name="name" value="value"/>
。そして、一般的なものには以下のオプションがあります:Java RPC Provider (provider="java:RPC") デフォルトでは、classNameオプションのクラスで指定された全てのpublicメソッドが、そのクラスが継承するメソッドを含めて、Webサービスとして利用できます。
このJavaプロバイダに関するより詳細については、WHERE???を参照して下さい。
Java MsgProvder (provider="java:MSG")
上記のメソッドをより制限するためにallowedMethodsオプションを使用して、Webサービスとして利用できるメソッドをスペースで区切ったリストとして指定することができます。このオプションの値に"*"を指定することもできますが、これは結局このオプションを指定しないことと同じ結果になります。また、念のために説明しますが、operation要素を使用することでも更に提供されるメソッドを定義することができますが、これはどのメソッドが利用できるかどうかについては何も影響を与えません。
注意:これはAxisが提供するプロバイダには当てはまりますが、個々のプロバイダの実装に依存しています。このオプションをどのようにサポートするか、もしくは、サポートしているかどうかについてはプロバイダの文書を参照して下さい。
注意:Webサービスの公開は全てセキュリティと関わり合います。
最も優れた実行ガイドとして、安全ではない環境でWebサービスを提供する時にはサービスの提供に必要なメソッドのみを許可するように制限することを推奨します。そして、この利用可能としたメソッドについて、その機能、および、それらがシステムリソースにどのようにアクセスし、どの程度外部にさらされるのかを完全に理解して下さい。
<service name="test"> <parameter name="className" value="test.Implementation"/> <parameter name="allowedMethods" value="*"/> <namespace>http://testservice/</namespace> <requestFlow> <!-- Run these before processing the request --> <handler type="java:MyHandlerClass"/> <handler type="somethingIDefinedPreviously"/> </requestFlow> </service>メタデータ は、serviceの内部の<operation>タグを使用して、サービス内の特定の操作について決定されます。これにより、あるメソッドのJavaパラメータ名を特定のXML名にマッピングし、パラメータのパラメータモードを指定し、特定のXML名を特定の操作にマッピングすることが可能になります。
<chain name="myChain"> <handler type="java:org.apache.axis.handlers.LogHandler"/> </chain>もしくは、以下のように別のハンドラ定義の名前を参照するハンドラの"type"を使用して、定義済みの<handlers>を参照することもできます:
<handler name="logger" type="java:org.apache.axis.handlers.LogHandler"/>
<chain name="myChain"/>
<handler type="logger"/>
</chain>
% java org.apache.axis.client.AdminClient -llocal:// list