对于axis2/java是学习java语言的一个webservice框架可从apache官网上可以下载 当前版本为axis2-1.6.2-bin,对于axis2既可以部署在java中间件中,也可以以单独启动运行,他的目录分布如下:
-bin:下面是写脚本,用于运行standalone的模式
-conf:axis.xml,包括了axis2的常见配置
-repository
+--modules:用于存放axis2的一下
+--services:用于存放要部署的WebService
-webapp:存放用部署在中间件的axis2的web工程
-simples:axis2的Demo
可以直接在执行bin\axis2server.bat,在浏览器打开可以http://localhost:8080/axis2/既可以看到。
部署在中间件中的war文件的生成,需要在本机下载安装apache-ant,并配置ANT_HOME,把”%ANT_HOME%\bin”加入环境PATH中。配置完ant后进入webapp目录,在该目录的命令行下直接输入ant命令即可,在axis2的根目录会生成的dist目录包含axis.war文件。war文件直接扔在tomcat的webapp目录启动tomcat即可。
在axis中要对外暴露一个WebServices十分简单,无论是standalone的形式,还是以java Servlet Container的形式,假设当前目录为axisDemo,对于standalone形式,部署目录形式如下
-axisDemo
+--bin
+--conf
| +--axis.xml
+--modules
| +--modules.mar
+--services
| +--servces.arr
对于java Servlet Container的形式的话,如下
-axisDemo
+--WEB-INF
| +--conf
| | +--axis.xml
| +--modules
| | +--modules.mar
| +--services
| | +--servces.arr
|--+--web.xml
对于我们开发程序而言,我们需要关注的是conf/axis.xml,modules.mar,services.aar的编写,axis.xml文件对于了基于soap的各种配置,其中modules.mar和services.aar是类似*.jar文件的打包文件,该打包文件的结构如下:
+--modules.mar
| +--META-INF
| | +--module.xml
|---+--package(可选的)
+--services
| +--META-INF
| |--services.xml
|--+--package(可选的)
由上面可以知道axis.xml是作为全局进行配置的,而如果我们想对于WebServices加入认证,或者加密的模块,我们是需要编写实现特定接口的类并编写module.xml,如上述格式那样子打包后放入modules目录,并在conf/axis.xml文件中进行配置的。
发布一个WebService,或者基于WebService对外暴露一个接口,让外部系统进行调用,我们仅仅需要编写需要暴露的公有方法,然后配置service.xml文件,按照上述格式进行打包并放入services目录即可。
下面是我暴露java.lang.String方法的services.xml,该类的所有公有方法都将被暴露出来
<service name="String">
<description>
This demo service is to show java.lang.String it go
</description>
<parameter name="ServiceClass">java.lang.String</parameter>
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
</service>
按照上述格式进行打包后,我们可以在standalone或者是tomcat中访问http://localhost:8080/axis2/serv/String?wsdl,java.lang.String类的公有方法都被暴露成WebService了,当然我们可以配置service.xml个性化一些配置。
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:ns="http://lang.java" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ax21="http://util.java/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://lang.java">
<wsdl:documentation>String</wsdl:documentation>
<wsdl:types>
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://util.java/xsd">
<xs:complexType name="Locale">
<xs:sequence>
<xs:element minOccurs="0" name="ISO3Country" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="ISO3Language" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="country" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="displayCountry" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="displayLanguage" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="displayName" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="displayScript" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="displayVariant" nillable="true" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="extensionKeys" nillable="true" type="xs:anyType"/>
<xs:element minOccurs="0" name="language" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="script" nillable="true" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="unicodeLocaleAttributes" nillable="true" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="unicodeLocaleKeys" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="variant" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
<xs:schema xmlns:ax22="http://util.java/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://lang.java">
<xs:import namespace="http://util.java/xsd"/>
<xs:element name="equals">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="equalsResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="toString">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>
<xs:element name="toStringResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="hashCode">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>
<xs:element name="hashCodeResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="compareTo">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="compareToResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="indexOf">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="args1" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="indexOfResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="valueOf">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" type="xs:float"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="valueOfResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="charAt">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="charAtResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="codePointAt">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="codePointAtResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="codePointBefore">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="codePointBeforeResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="codePointCount">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" type="xs:int"/>
<xs:element minOccurs="0" name="args1" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="codePointCountResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="compareToIgnoreCase">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="compareToIgnoreCaseResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="concat">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="concatResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="contains">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="containsResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="contentEquals">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="contentEqualsResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="copyValueOf">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="args0" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="args1" type="xs:int"/>
<xs:element minOccurs="0" name="args2" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="copyValueOfResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="endsWith">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="endsWithResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="equalsIgnoreCase">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="equalsIgnoreCaseResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="format">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="ax21:Locale"/>
<xs:element minOccurs="0" name="args1" nillable="true" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="args2" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="formatResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getBytes">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>
<xs:element name="getBytesResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:base64Binary"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getChars">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" type="xs:int"/>
<xs:element minOccurs="0" name="args1" type="xs:int"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="args2" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="args3" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="intern">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>
<xs:element name="internResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="isEmpty">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>
<xs:element name="isEmptyResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lastIndexOf">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lastIndexOfResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="length">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>
<xs:element name="lengthResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="matches">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="matchesResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="offsetByCodePoints">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" type="xs:int"/>
<xs:element minOccurs="0" name="args1" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="offsetByCodePointsResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="regionMatches">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" type="xs:int"/>
<xs:element minOccurs="0" name="args1" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="args2" type="xs:int"/>
<xs:element minOccurs="0" name="args3" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="regionMatchesResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="replace">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="args1" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="replaceResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="replaceAll">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="args1" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="replaceAllResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="replaceFirst">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="args1" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="replaceFirstResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="split">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="splitResponse">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="startsWith">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="startsWithResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="subSequence">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" type="xs:int"/>
<xs:element minOccurs="0" name="args1" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="subSequenceResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="substring">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" type="xs:int"/>
<xs:element minOccurs="0" name="args1" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="substringResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="toCharArray">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>
<xs:element name="toCharArrayResponse">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="toLowerCase">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>
<xs:element name="toLowerCaseResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="toUpperCase">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="args0" nillable="true" type="ax21:Locale"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="toUpperCaseResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="trim">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>
<xs:element name="trimResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="internRequest">
<wsdl:part name="parameters" element="ns:intern"/>
</wsdl:message>
<wsdl:message name="internResponse">
<wsdl:part name="parameters" element="ns:internResponse"/>
</wsdl:message>
<wsdl:message name="regionMatchesRequest">
<wsdl:part name="parameters" element="ns:regionMatches"/>
</wsdl:message>
<wsdl:message name="regionMatchesResponse">
<wsdl:part name="parameters" element="ns:regionMatchesResponse"/>
</wsdl:message>
<wsdl:message name="substringRequest">
<wsdl:part name="parameters" element="ns:substring"/>
</wsdl:message>
<wsdl:message name="substringResponse">
<wsdl:part name="parameters" element="ns:substringResponse"/>
</wsdl:message>
<wsdl:message name="indexOfRequest">
<wsdl:part name="parameters" element="ns:indexOf"/>
</wsdl:message>
<wsdl:message name="indexOfResponse">
<wsdl:part name="parameters" element="ns:indexOfResponse"/>
</wsdl:message>
<wsdl:message name="replaceFirstRequest">
<wsdl:part name="parameters" element="ns:replaceFirst"/>
</wsdl:message>
<wsdl:message name="replaceFirstResponse">
<wsdl:part name="parameters" element="ns:replaceFirstResponse"/>
</wsdl:message>
<wsdl:message name="getCharsRequest">
<wsdl:part name="parameters" element="ns:getChars"/>
</wsdl:message>
<wsdl:message name="compareToRequest">
<wsdl:part name="parameters" element="ns:compareTo"/>
</wsdl:message>
<wsdl:message name="compareToResponse">
<wsdl:part name="parameters" element="ns:compareToResponse"/>
</wsdl:message>
<wsdl:message name="subSequenceRequest">
<wsdl:part name="parameters" element="ns:subSequence"/>
</wsdl:message>
<wsdl:message name="subSequenceResponse">
<wsdl:part name="parameters" element="ns:subSequenceResponse"/>
</wsdl:message>
<wsdl:message name="hashCodeRequest">
<wsdl:part name="parameters" element="ns:hashCode"/>
</wsdl:message>
<wsdl:message name="hashCodeResponse">
<wsdl:part name="parameters" element="ns:hashCodeResponse"/>
</wsdl:message>
<wsdl:message name="equalsRequest">
<wsdl:part name="parameters" element="ns:equals"/>
</wsdl:message>
<wsdl:message name="equalsResponse">
<wsdl:part name="parameters" element="ns:equalsResponse"/>
</wsdl:message>
<wsdl:message name="matchesRequest">
<wsdl:part name="parameters" element="ns:matches"/>
</wsdl:message>
<wsdl:message name="matchesResponse">
<wsdl:part name="parameters" element="ns:matchesResponse"/>
</wsdl:message>
<wsdl:message name="endsWithRequest">
<wsdl:part name="parameters" element="ns:endsWith"/>
</wsdl:message>
<wsdl:message name="endsWithResponse">
<wsdl:part name="parameters" element="ns:endsWithResponse"/>
</wsdl:message>
<wsdl:message name="replaceAllRequest">
<wsdl:part name="parameters" element="ns:replaceAll"/>
</wsdl:message>
<wsdl:message name="replaceAllResponse">
<wsdl:part name="parameters" element="ns:replaceAllResponse"/>
</wsdl:message>
<wsdl:message name="lengthRequest">
<wsdl:part name="parameters" element="ns:length"/>
</wsdl:message>
<wsdl:message name="lengthResponse">
<wsdl:part name="parameters" element="ns:lengthResponse"/>
</wsdl:message>
<wsdl:message name="valueOfRequest">
<wsdl:part name="parameters" element="ns:valueOf"/>
</wsdl:message>
<wsdl:message name="valueOfResponse">
<wsdl:part name="parameters" element="ns:valueOfResponse"/>
</wsdl:message>
<wsdl:message name="toUpperCaseRequest">
<wsdl:part name="parameters" element="ns:toUpperCase"/>
</wsdl:message>
<wsdl:message name="toUpperCaseResponse">
<wsdl:part name="parameters" element="ns:toUpperCaseResponse"/>
</wsdl:message>
<wsdl:message name="codePointBeforeRequest">
<wsdl:part name="parameters" element="ns:codePointBefore"/>
</wsdl:message>
<wsdl:message name="codePointBeforeResponse">
<wsdl:part name="parameters" element="ns:codePointBeforeResponse"/>
</wsdl:message>
<wsdl:message name="toLowerCaseRequest">
<wsdl:part name="parameters" element="ns:toLowerCase"/>
</wsdl:message>
<wsdl:message name="toLowerCaseResponse">
<wsdl:part name="parameters" element="ns:toLowerCaseResponse"/>
</wsdl:message>
<wsdl:message name="offsetByCodePointsRequest">
<wsdl:part name="parameters" element="ns:offsetByCodePoints"/>
</wsdl:message>
<wsdl:message name="offsetByCodePointsResponse">
<wsdl:part name="parameters" element="ns:offsetByCodePointsResponse"/>
</wsdl:message>
<wsdl:message name="startsWithRequest">
<wsdl:part name="parameters" element="ns:startsWith"/>
</wsdl:message>
<wsdl:message name="startsWithResponse">
<wsdl:part name="parameters" element="ns:startsWithResponse"/>
</wsdl:message>
<wsdl:message name="splitRequest">
<wsdl:part name="parameters" element="ns:split"/>
</wsdl:message>
<wsdl:message name="splitResponse">
<wsdl:part name="parameters" element="ns:splitResponse"/>
</wsdl:message>
<wsdl:message name="copyValueOfRequest">
<wsdl:part name="parameters" element="ns:copyValueOf"/>
</wsdl:message>
<wsdl:message name="copyValueOfResponse">
<wsdl:part name="parameters" element="ns:copyValueOfResponse"/>
</wsdl:message>
<wsdl:message name="toCharArrayRequest">
<wsdl:part name="parameters" element="ns:toCharArray"/>
</wsdl:message>
<wsdl:message name="toCharArrayResponse">
<wsdl:part name="parameters" element="ns:toCharArrayResponse"/>
</wsdl:message>
<wsdl:message name="compareToIgnoreCaseRequest">
<wsdl:part name="parameters" element="ns:compareToIgnoreCase"/>
</wsdl:message>
<wsdl:message name="compareToIgnoreCaseResponse">
<wsdl:part name="parameters" element="ns:compareToIgnoreCaseResponse"/>
</wsdl:message>
<wsdl:message name="lastIndexOfRequest">
<wsdl:part name="parameters" element="ns:lastIndexOf"/>
</wsdl:message>
<wsdl:message name="lastIndexOfResponse">
<wsdl:part name="parameters" element="ns:lastIndexOfResponse"/>
</wsdl:message>
<wsdl:message name="codePointAtRequest">
<wsdl:part name="parameters" element="ns:codePointAt"/>
</wsdl:message>
<wsdl:message name="codePointAtResponse">
<wsdl:part name="parameters" element="ns:codePointAtResponse"/>
</wsdl:message>
<wsdl:message name="isEmptyRequest">
<wsdl:part name="parameters" element="ns:isEmpty"/>
</wsdl:message>
<wsdl:message name="isEmptyResponse">
<wsdl:part name="parameters" element="ns:isEmptyResponse"/>
</wsdl:message>
<wsdl:message name="contentEqualsRequest">
<wsdl:part name="parameters" element="ns:contentEquals"/>
</wsdl:message>
<wsdl:message name="contentEqualsResponse">
<wsdl:part name="parameters" element="ns:contentEqualsResponse"/>
</wsdl:message>
<wsdl:message name="getBytesRequest">
<wsdl:part name="parameters" element="ns:getBytes"/>
</wsdl:message>
<wsdl:message name="getBytesResponse">
<wsdl:part name="parameters" element="ns:getBytesResponse"/>
</wsdl:message>
<wsdl:message name="trimRequest">
<wsdl:part name="parameters" element="ns:trim"/>
</wsdl:message>
<wsdl:message name="trimResponse">
<wsdl:part name="parameters" element="ns:trimResponse"/>
</wsdl:message>
<wsdl:message name="codePointCountRequest">
<wsdl:part name="parameters" element="ns:codePointCount"/>
</wsdl:message>
<wsdl:message name="codePointCountResponse">
<wsdl:part name="parameters" element="ns:codePointCountResponse"/>
</wsdl:message>
<wsdl:message name="formatRequest">
<wsdl:part name="parameters" element="ns:format"/>
</wsdl:message>
<wsdl:message name="formatResponse">
<wsdl:part name="parameters" element="ns:formatResponse"/>
</wsdl:message>
<wsdl:message name="concatRequest">
<wsdl:part name="parameters" element="ns:concat"/>
</wsdl:message>
<wsdl:message name="concatResponse">
<wsdl:part name="parameters" element="ns:concatResponse"/>
</wsdl:message>
<wsdl:message name="replaceRequest">
<wsdl:part name="parameters" element="ns:replace"/>
</wsdl:message>
<wsdl:message name="replaceResponse">
<wsdl:part name="parameters" element="ns:replaceResponse"/>
</wsdl:message>
<wsdl:message name="containsRequest">
<wsdl:part name="parameters" element="ns:contains"/>
</wsdl:message>
<wsdl:message name="containsResponse">
<wsdl:part name="parameters" element="ns:containsResponse"/>
</wsdl:message>
<wsdl:message name="equalsIgnoreCaseRequest">
<wsdl:part name="parameters" element="ns:equalsIgnoreCase"/>
</wsdl:message>
<wsdl:message name="equalsIgnoreCaseResponse">
<wsdl:part name="parameters" element="ns:equalsIgnoreCaseResponse"/>
</wsdl:message>
<wsdl:message name="toStringRequest">
<wsdl:part name="parameters" element="ns:toString"/>
</wsdl:message>
<wsdl:message name="toStringResponse">
<wsdl:part name="parameters" element="ns:toStringResponse"/>
</wsdl:message>
<wsdl:message name="charAtRequest">
<wsdl:part name="parameters" element="ns:charAt"/>
</wsdl:message>
<wsdl:message name="charAtResponse">
<wsdl:part name="parameters" element="ns:charAtResponse"/>
</wsdl:message>
<wsdl:portType name="StringPortType">
<wsdl:operation name="intern">
<wsdl:input message="ns:internRequest" wsaw:Action="urn:intern"/>
<wsdl:output message="ns:internResponse" wsaw:Action="urn:internResponse"/>
</wsdl:operation>
<wsdl:operation name="regionMatches">
<wsdl:input message="ns:regionMatchesRequest" wsaw:Action="urn:regionMatches"/>
<wsdl:output message="ns:regionMatchesResponse" wsaw:Action="urn:regionMatchesResponse"/>
</wsdl:operation>
<wsdl:operation name="substring">
<wsdl:input message="ns:substringRequest" wsaw:Action="urn:substring"/>
<wsdl:output message="ns:substringResponse" wsaw:Action="urn:substringResponse"/>
</wsdl:operation>
<wsdl:operation name="indexOf">
<wsdl:input message="ns:indexOfRequest" wsaw:Action="urn:indexOf"/>
<wsdl:output message="ns:indexOfResponse" wsaw:Action="urn:indexOfResponse"/>
</wsdl:operation>
<wsdl:operation name="replaceFirst">
<wsdl:input message="ns:replaceFirstRequest" wsaw:Action="urn:replaceFirst"/>
<wsdl:output message="ns:replaceFirstResponse" wsaw:Action="urn:replaceFirstResponse"/>
</wsdl:operation>
<wsdl:operation name="getChars">
<wsdl:input message="ns:getCharsRequest" wsaw:Action="urn:getChars"/>
</wsdl:operation>
<wsdl:operation name="compareTo">
<wsdl:input message="ns:compareToRequest" wsaw:Action="urn:compareTo"/>
<wsdl:output message="ns:compareToResponse" wsaw:Action="urn:compareToResponse"/>
</wsdl:operation>
<wsdl:operation name="subSequence">
<wsdl:input message="ns:subSequenceRequest" wsaw:Action="urn:subSequence"/>
<wsdl:output message="ns:subSequenceResponse" wsaw:Action="urn:subSequenceResponse"/>
</wsdl:operation>
<wsdl:operation name="hashCode">
<wsdl:input message="ns:hashCodeRequest" wsaw:Action="urn:hashCode"/>
<wsdl:output message="ns:hashCodeResponse" wsaw:Action="urn:hashCodeResponse"/>
</wsdl:operation>
<wsdl:operation name="equals">
<wsdl:input message="ns:equalsRequest" wsaw:Action="urn:equals"/>
<wsdl:output message="ns:equalsResponse" wsaw:Action="urn:equalsResponse"/>
</wsdl:operation>
<wsdl:operation name="matches">
<wsdl:input message="ns:matchesRequest" wsaw:Action="urn:matches"/>
<wsdl:output message="ns:matchesResponse" wsaw:Action="urn:matchesResponse"/>
</wsdl:operation>
<wsdl:operation name="endsWith">
<wsdl:input message="ns:endsWithRequest" wsaw:Action="urn:endsWith"/>
<wsdl:output message="ns:endsWithResponse" wsaw:Action="urn:endsWithResponse"/>
</wsdl:operation>
<wsdl:operation name="replaceAll">
<wsdl:input message="ns:replaceAllRequest" wsaw:Action="urn:replaceAll"/>
<wsdl:output message="ns:replaceAllResponse" wsaw:Action="urn:replaceAllResponse"/>
</wsdl:operation>
<wsdl:operation name="length">
<wsdl:input message="ns:lengthRequest" wsaw:Action="urn:length"/>
<wsdl:output message="ns:lengthResponse" wsaw:Action="urn:lengthResponse"/>
</wsdl:operation>
<wsdl:operation name="valueOf">
<wsdl:input message="ns:valueOfRequest" wsaw:Action="urn:valueOf"/>
<wsdl:output message="ns:valueOfResponse" wsaw:Action="urn:valueOfResponse"/>
</wsdl:operation>
<wsdl:operation name="toUpperCase">
<wsdl:input message="ns:toUpperCaseRequest" wsaw:Action="urn:toUpperCase"/>
<wsdl:output message="ns:toUpperCaseResponse" wsaw:Action="urn:toUpperCaseResponse"/>
</wsdl:operation>
<wsdl:operation name="codePointBefore">
<wsdl:input message="ns:codePointBeforeRequest" wsaw:Action="urn:codePointBefore"/>
<wsdl:output message="ns:codePointBeforeResponse" wsaw:Action="urn:codePointBeforeResponse"/>
</wsdl:operation>
<wsdl:operation name="toLowerCase">
<wsdl:input message="ns:toLowerCaseRequest" wsaw:Action="urn:toLowerCase"/>
<wsdl:output message="ns:toLowerCaseResponse" wsaw:Action="urn:toLowerCaseResponse"/>
</wsdl:operation>
<wsdl:operation name="offsetByCodePoints">
<wsdl:input message="ns:offsetByCodePointsRequest" wsaw:Action="urn:offsetByCodePoints"/>
<wsdl:output message="ns:offsetByCodePointsResponse" wsaw:Action="urn:offsetByCodePointsResponse"/>
</wsdl:operation>
<wsdl:operation name="startsWith">
<wsdl:input message="ns:startsWithRequest" wsaw:Action="urn:startsWith"/>
<wsdl:output message="ns:startsWithResponse" wsaw:Action="urn:startsWithResponse"/>
</wsdl:operation>
<wsdl:operation name="split">
<wsdl:input message="ns:splitRequest" wsaw:Action="urn:split"/>
<wsdl:output message="ns:splitResponse" wsaw:Action="urn:splitResponse"/>
</wsdl:operation>
<wsdl:operation name="copyValueOf">
<wsdl:input message="ns:copyValueOfRequest" wsaw:Action="urn:copyValueOf"/>
<wsdl:output message="ns:copyValueOfResponse" wsaw:Action="urn:copyValueOfResponse"/>
</wsdl:operation>
<wsdl:operation name="toCharArray">
<wsdl:input message="ns:toCharArrayRequest" wsaw:Action="urn:toCharArray"/>
<wsdl:output message="ns:toCharArrayResponse" wsaw:Action="urn:toCharArrayResponse"/>
</wsdl:operation>
<wsdl:operation name="compareToIgnoreCase">
<wsdl:input message="ns:compareToIgnoreCaseRequest" wsaw:Action="urn:compareToIgnoreCase"/>
<wsdl:output message="ns:compareToIgnoreCaseResponse" wsaw:Action="urn:compareToIgnoreCaseResponse"/>
</wsdl:operation>
<wsdl:operation name="lastIndexOf">
<wsdl:input message="ns:lastIndexOfRequest" wsaw:Action="urn:lastIndexOf"/>
<wsdl:output message="ns:lastIndexOfResponse" wsaw:Action="urn:lastIndexOfResponse"/>
</wsdl:operation>
<wsdl:operation name="codePointAt">
<wsdl:input message="ns:codePointAtRequest" wsaw:Action="urn:codePointAt"/>
<wsdl:output message="ns:codePointAtResponse" wsaw:Action="urn:codePointAtResponse"/>
</wsdl:operation>
<wsdl:operation name="isEmpty">
<wsdl:input message="ns:isEmptyRequest" wsaw:Action="urn:isEmpty"/>
<wsdl:output message="ns:isEmptyResponse" wsaw:Action="urn:isEmptyResponse"/>
</wsdl:operation>
<wsdl:operation name="contentEquals">
<wsdl:input message="ns:contentEqualsRequest" wsaw:Action="urn:contentEquals"/>
<wsdl:output message="ns:contentEqualsResponse" wsaw:Action="urn:contentEqualsResponse"/>
</wsdl:operation>
<wsdl:operation name="getBytes">
<wsdl:input message="ns:getBytesRequest" wsaw:Action="urn:getBytes"/>
<wsdl:output message="ns:getBytesResponse" wsaw:Action="urn:getBytesResponse"/>
</wsdl:operation>
<wsdl:operation name="trim">
<wsdl:input message="ns:trimRequest" wsaw:Action="urn:trim"/>
<wsdl:output message="ns:trimResponse" wsaw:Action="urn:trimResponse"/>
</wsdl:operation>
<wsdl:operation name="codePointCount">
<wsdl:input message="ns:codePointCountRequest" wsaw:Action="urn:codePointCount"/>
<wsdl:output message="ns:codePointCountResponse" wsaw:Action="urn:codePointCountResponse"/>
</wsdl:operation>
<wsdl:operation name="format">
<wsdl:input message="ns:formatRequest" wsaw:Action="urn:format"/>
<wsdl:output message="ns:formatResponse" wsaw:Action="urn:formatResponse"/>
</wsdl:operation>
<wsdl:operation name="concat">
<wsdl:input message="ns:concatRequest" wsaw:Action="urn:concat"/>
<wsdl:output message="ns:concatResponse" wsaw:Action="urn:concatResponse"/>
</wsdl:operation>
<wsdl:operation name="replace">
<wsdl:input message="ns:replaceRequest" wsaw:Action="urn:replace"/>
<wsdl:output message="ns:replaceResponse" wsaw:Action="urn:replaceResponse"/>
</wsdl:operation>
<wsdl:operation name="contains">
<wsdl:input message="ns:containsRequest" wsaw:Action="urn:contains"/>
<wsdl:output message="ns:containsResponse" wsaw:Action="urn:containsResponse"/>
</wsdl:operation>
<wsdl:operation name="equalsIgnoreCase">
<wsdl:input message="ns:equalsIgnoreCaseRequest" wsaw:Action="urn:equalsIgnoreCase"/>
<wsdl:output message="ns:equalsIgnoreCaseResponse" wsaw:Action="urn:equalsIgnoreCaseResponse"/>
</wsdl:operation>
<wsdl:operation name="toString">
<wsdl:input message="ns:toStringRequest" wsaw:Action="urn:toString"/>
<wsdl:output message="ns:toStringResponse" wsaw:Action="urn:toStringResponse"/>
</wsdl:operation>
<wsdl:operation name="charAt">
<wsdl:input message="ns:charAtRequest" wsaw:Action="urn:charAt"/>
<wsdl:output message="ns:charAtResponse" wsaw:Action="urn:charAtResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="StringSoap11Binding" type="ns:StringPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<wsdl:operation name="intern">
<soap:operation soapAction="urn:intern" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="regionMatches">
<soap:operation soapAction="urn:regionMatches" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="indexOf">
<soap:operation soapAction="urn:indexOf" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="substring">
<soap:operation soapAction="urn:substring" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="replaceFirst">
<soap:operation soapAction="urn:replaceFirst" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getChars">
<soap:operation soapAction="urn:getChars" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="compareTo">
<soap:operation soapAction="urn:compareTo" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="hashCode">
<soap:operation soapAction="urn:hashCode" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="subSequence">
<soap:operation soapAction="urn:subSequence" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="equals">
<soap:operation soapAction="urn:equals" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="matches">
<soap:operation soapAction="urn:matches" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="endsWith">
<soap:operation soapAction="urn:endsWith" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="valueOf">
<soap:operation soapAction="urn:valueOf" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="length">
<soap:operation soapAction="urn:length" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="replaceAll">
<soap:operation soapAction="urn:replaceAll" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="toUpperCase">
<soap:operation soapAction="urn:toUpperCase" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="codePointBefore">
<soap:operation soapAction="urn:codePointBefore" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="offsetByCodePoints">
<soap:operation soapAction="urn:offsetByCodePoints" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="toLowerCase">
<soap:operation soapAction="urn:toLowerCase" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="startsWith">
<soap:operation soapAction="urn:startsWith" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="split">
<soap:operation soapAction="urn:split" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="copyValueOf">
<soap:operation soapAction="urn:copyValueOf" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="compareToIgnoreCase">
<soap:operation soapAction="urn:compareToIgnoreCase" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="toCharArray">
<soap:operation soapAction="urn:toCharArray" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="lastIndexOf">
<soap:operation soapAction="urn:lastIndexOf" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="codePointAt">
<soap:operation soapAction="urn:codePointAt" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="contentEquals">
<soap:operation soapAction="urn:contentEquals" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="isEmpty">
<soap:operation soapAction="urn:isEmpty" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getBytes">
<soap:operation soapAction="urn:getBytes" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="trim">
<soap:operation soapAction="urn:trim" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="codePointCount">
<soap:operation soapAction="urn:codePointCount" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="format">
<soap:operation soapAction="urn:format" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="concat">
<soap:operation soapAction="urn:concat" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="replace">
<soap:operation soapAction="urn:replace" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="contains">
<soap:operation soapAction="urn:contains" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="equalsIgnoreCase">
<soap:operation soapAction="urn:equalsIgnoreCase" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="toString">
<soap:operation soapAction="urn:toString" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="charAt">
<soap:operation soapAction="urn:charAt" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="StringSoap12Binding" type="ns:StringPortType">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<wsdl:operation name="intern">
<soap12:operation soapAction="urn:intern" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="regionMatches">
<soap12:operation soapAction="urn:regionMatches" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="indexOf">
<soap12:operation soapAction="urn:indexOf" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="substring">
<soap12:operation soapAction="urn:substring" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="replaceFirst">
<soap12:operation soapAction="urn:replaceFirst" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getChars">
<soap12:operation soapAction="urn:getChars" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="compareTo">
<soap12:operation soapAction="urn:compareTo" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="hashCode">
<soap12:operation soapAction="urn:hashCode" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="subSequence">
<soap12:operation soapAction="urn:subSequence" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="equals">
<soap12:operation soapAction="urn:equals" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="matches">
<soap12:operation soapAction="urn:matches" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="endsWith">
<soap12:operation soapAction="urn:endsWith" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="valueOf">
<soap12:operation soapAction="urn:valueOf" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="length">
<soap12:operation soapAction="urn:length" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="replaceAll">
<soap12:operation soapAction="urn:replaceAll" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="toUpperCase">
<soap12:operation soapAction="urn:toUpperCase" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="codePointBefore">
<soap12:operation soapAction="urn:codePointBefore" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="offsetByCodePoints">
<soap12:operation soapAction="urn:offsetByCodePoints" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="toLowerCase">
<soap12:operation soapAction="urn:toLowerCase" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="startsWith">
<soap12:operation soapAction="urn:startsWith" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="split">
<soap12:operation soapAction="urn:split" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="copyValueOf">
<soap12:operation soapAction="urn:copyValueOf" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="compareToIgnoreCase">
<soap12:operation soapAction="urn:compareToIgnoreCase" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="toCharArray">
<soap12:operation soapAction="urn:toCharArray" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="lastIndexOf">
<soap12:operation soapAction="urn:lastIndexOf" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="codePointAt">
<soap12:operation soapAction="urn:codePointAt" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="contentEquals">
<soap12:operation soapAction="urn:contentEquals" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="isEmpty">
<soap12:operation soapAction="urn:isEmpty" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getBytes">
<soap12:operation soapAction="urn:getBytes" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="trim">
<soap12:operation soapAction="urn:trim" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="codePointCount">
<soap12:operation soapAction="urn:codePointCount" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="format">
<soap12:operation soapAction="urn:format" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="concat">
<soap12:operation soapAction="urn:concat" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="replace">
<soap12:operation soapAction="urn:replace" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="contains">
<soap12:operation soapAction="urn:contains" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="equalsIgnoreCase">
<soap12:operation soapAction="urn:equalsIgnoreCase" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="toString">
<soap12:operation soapAction="urn:toString" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="charAt">
<soap12:operation soapAction="urn:charAt" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="StringHttpBinding" type="ns:StringPortType">
<http:binding verb="POST"/>
<wsdl:operation name="intern">
<http:operation location="intern"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="regionMatches">
<http:operation location="regionMatches"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="indexOf">
<http:operation location="indexOf"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="substring">
<http:operation location="substring"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="replaceFirst">
<http:operation location="replaceFirst"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getChars">
<http:operation location="getChars"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="compareTo">
<http:operation location="compareTo"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="hashCode">
<http:operation location="hashCode"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="subSequence">
<http:operation location="subSequence"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="equals">
<http:operation location="equals"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="matches">
<http:operation location="matches"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="endsWith">
<http:operation location="endsWith"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="valueOf">
<http:operation location="valueOf"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="length">
<http:operation location="length"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="replaceAll">
<http:operation location="replaceAll"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="toUpperCase">
<http:operation location="toUpperCase"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="codePointBefore">
<http:operation location="codePointBefore"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="offsetByCodePoints">
<http:operation location="offsetByCodePoints"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="toLowerCase">
<http:operation location="toLowerCase"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="startsWith">
<http:operation location="startsWith"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="split">
<http:operation location="split"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="copyValueOf">
<http:operation location="copyValueOf"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="compareToIgnoreCase">
<http:operation location="compareToIgnoreCase"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="toCharArray">
<http:operation location="toCharArray"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="lastIndexOf">
<http:operation location="lastIndexOf"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="codePointAt">
<http:operation location="codePointAt"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="contentEquals">
<http:operation location="contentEquals"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="isEmpty">
<http:operation location="isEmpty"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getBytes">
<http:operation location="getBytes"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="trim">
<http:operation location="trim"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="codePointCount">
<http:operation location="codePointCount"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="format">
<http:operation location="format"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="concat">
<http:operation location="concat"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="replace">
<http:operation location="replace"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="contains">
<http:operation location="contains"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="equalsIgnoreCase">
<http:operation location="equalsIgnoreCase"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="toString">
<http:operation location="toString"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="charAt">
<http:operation location="charAt"/>
<wsdl:input>
<mime:content type="application/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="application/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="String">
<wsdl:port name="StringHttpSoap11Endpoint" binding="ns:StringSoap11Binding">
<soap:address location="http://localhost:8080/axis2/serv/String.StringHttpSoap11Endpoint/"/>
</wsdl:port>
<wsdl:port name="StringHttpSoap12Endpoint" binding="ns:StringSoap12Binding">
<soap12:address location="http://localhost:8080/axis2/serv/String.StringHttpSoap12Endpoint/"/>
</wsdl:port>
<wsdl:port name="StringHttpEndpoint" binding="ns:StringHttpBinding">
<http:address location="http://localhost:8080/axis2/serv/String.StringHttpEndpoint/"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
有关wsdl格式的内容相关知识点可以参见我相关博客wsdl格式详解。