<service name = “LiBoWebServ”>
<description>
This is a Web Service with SayHello Method.
</description>
<parameter name = “ServiceClass” locked = “false”>
com.libo.WebService.WebServiceWork
</parameter>
<operation name = “SayHello”>
<messageReceiver class = “org.apache.axis2.rpc.receivers.RPCMessageReceiver” />
</operation>
</service>
其中 Service Name 定义服务名称,description 是服务的文本描述,名称为 ServiceClass 的 parameter 指明提供服务的类,类名称要包名加类名写完整,operation 指明服务方法,并指定用 RPC 方式接收 SOAP 请求,并与 SOAP 响应通信。
图 1 Axis2 体系
将工程导出为 JAR 包,导出后后缀名改为 aar 2、Axis2 Service Archiver 生成 AAR 包:
Eclipse,File -> New -> Other -> Axis2 Wizards -> Axis2 Service Archiver。Class File Location 处指定到代码中 packagename 生成的目录的上一级,比如 com 文件夹的上一级,如 bin。后面都让它自动生成,到 Generate the Service XML file 步,服务名称自定,Class name 填写完整的 packagename.classname,然后点 load,读出方法列表,勾选要暴露的方法。而后指定 AAR 文件生成后存放的位置,选择 %tomcat%/webapps/axis2/WEB-INF/services,完成。注意一个完整的 AAR 包文件结构如下:
NAME
Java2WSDL.sh or Java2WSDL.bat - Generates the appropriate WSDL file for a given java class.
These scripts can be found under the bin directory of the Axis2 distribution.
SYNOPSIS
Java2WSDL.sh [OPTION]... -cn <fully qualified class name>
DESCRIPTION
Given a java class generates a WSDL file for the given java class.
-o <output location> output directory
-of <output file name> output file name for the WSDL
-sn <service name> service name
-l <soap address> address of the port for the WSDL
-cp <class path uri> list of classpath entries - (urls)
-tn <target namespace> target namespace for service
-tp <target namespace prefix> target namespace prefix for service
-stn <schema target namespace> target namespace for schema
-stp <schema target namespace prefix> target namespace prefix for schema
-st <binding style> style for the WSDL
-u <binding use> use for the WSDL
-nsg <class name> fully qualified name of a class that implements NamespaceGenerator
-sg <class name> fully qualified name of a class that implements SchemaGenerator
-p2n [<java package>,<namespace] [<java package>,<namespace]...
java package to namespace mapping for argument and return types
-p2n [all, <namespace>] to assign all types to a single namespace
-efd <qualified/unqualified> setting for elementFormDefault (defaults to qualified)
-afd <qualified/unqualified> setting for attributeFormDefault (defaults to qualified)
-xc class1 -xc class2... extra class(es) for which schematype must be generated.
-wv <1.1/2.0> wsdl version - defaults to 1.1 if not specified
-dlb generate schemas conforming to doc/lit/bare style
NAME
wsdl2java.sh or wsdl2java.bat - Generates java code according to a given WSDL file to handle Web service invocation.
These scripts can be found under the bin directory of the Axis2 distribution.
SYNOPSIS
wsdl2java.sh [OPTION]... -uri <Location of WSDL>
DESCRIPTION
Given a WSDL file, this generates java code to handle Web service invocations.
-o <path> Specify a directory path for the generated code.
-a Generate async style code only (Default: off).
-s Generate sync style code only (Default: off). Takes precedence over -a.
-p <pkg1> Specify a custom package name for the generated code.
-l <language> Valid languages are java and c (Default: java).
-t Generate a test case for the generated code.
-ss Generate server side code (i.e. skeletons) (Default: off).
-sd Generate service descriptor (i.e. services.xml). (Default: off). Valid with -ss.
-d <databinding> Valid databinding(s) are adb, xmlbeans, jibx and jaxbri (Default: adb).
-g Generates all the classes. Valid only with -ss.
-pn <port_name> Choose a specific port when there are multiple ports in the wsdl.
-sn <service_name> Choose a specific service when there are multiple services in the wsdl.
-u Unpacks the databinding classes
-r <path> Specify a repository against which code is generated.
-ns2p ns1=pkg1,ns2=pkg2 Specify a custom package name for each namespace specified in the wsdls schema.
-ssi Generate an interface for the service implementation (Default: off).
-wv <version> WSDL Version. Valid Options : 2, 2.0, 1.1
-S Specify a directory path for generated source
-R Specify a directory path for generated resources
-em Specify an external mapping file
-f Flattens the generated files
-uw Switch on un-wrapping.
-xsdconfig <file path> Use XMLBeans .xsdconfig file. Valid only with -d xmlbeans.
-ap Generate code for all ports
-or Overwrite the existing classes
-b Generate Axis 1.x backword compatible code.
-sp Suppress namespace prefixes (Optimzation that reduces size of soap request/response)
-E<key> <value> Extra configuration options specific to certain databindings. Examples:
-Ebindingfile <path> (for jibx) - specify the file path for the binding file
-Etypesystemname <my_type_system_name> (for xmlbeans) - override the randomly generated type system name
-Ejavaversion 1.5 (for xmlbeans) - generates Java 1.5 code (typed lists instead of arrays)
-Emp <package name> (for ADB) - extension mapper package name
-Eosv (for ADB) - turn off strict validation.
-Ewdc (for xmlbeans) - Generate code with a dummy schema. if someone use this option
they have to generate the xmlbeans code seperately with the scomp command comes with the
xmlbeans distribution and replace the Axis2 generated classes with correct classes
--noBuildXML Dont generate the build.xml in the output directory
--noWSDL Dont generate WSDLs in the resources directory
--noMessageReceiver Dont generate a MessageReceiver in the generated sources
--http-proxy-host Proxy host address if you are behind a firewall
--http-proxy-port Proxy prot address if you are behind a firewall
-ep Exclude packages - these packages are deleted after codegeneration
public Element [] method(Element [] bodies);
public SOAPBodyElement [] method (SOAPBodyElement [] bodies);
public Document method(Document body);
public void method(SOAPEnvelope req, SOAPEnvelope resp);
前两种方式参数为 DOM 元素序列和 SOAPBody 元素序列,序列中的每个对像都对应着信封中 <soap:body> 里面的 XML 元素。
第三种方式参数为表示 <soap:body> 的 DOM Document。
第四种方式参数为两个 SOAPEnvelope 对像,表示请求和响应 Message。该方法用于在服务方法中操作信封头。若操作响应信封对像会在函数返回时自动回馈 caller。 八、调用 TCP MONITOR:
命令行窗口里面键入: