[SoapRMI] [SPAM:# 57%] =?iso-8859-1?Q?Re:__=5Fhow=5Fto=5Fcall=5Fapache-soap=5F?=
nodep@libero.it
nodep_at_libero.it
Tue, 10 Dec 2002 22:52:10 +0100
--_=__=_XaM3_Boundary.1039557130.2A.723871.42.20256.52.42.101010.2214
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
Hi Alek,=0D=0AI modified "HelloClient.java" with your code but it doesn't=
works :(=0D=0AI've attached the source. It sends:=0D=0A=0D=0APOST / HTTP=
/1.0=0D=0AHost: localhost=0D=0AUser-Agent: SoapRMI/1.2=0D=0AContent-Type:=
text/xml; charset=3Dutf-8=0D=0AContent-Length: 449=0D=0ASOAPAction: ""=0D=
=0AConnection: Close=0D=0A=0D=0A<SOAP-ENV:Envelope xmlns:SOAP-=0D=0AENV=3D=
'http://schemas.xmlsoap.org/soap/envelope/' xmlns:SOAP-=0D=0AENC=3D'http:=
//schemas.xmlsoap.org/soap/encoding/' =0D=0Axmlns:xsi=3D'http://www.w3.or=
g/1999/XMLSchema-instance' =0D=0Axmlns:xsd=3D'http://www.w3.org/1999/XMLS=
chema' =0D=0ASOAP-ENV:encodingStyle=3D'http://schemas.xmlsoap.org/soap/en=
coding/'>=0D=0A=0D=0A<SOAP-ENV:Body>=0D=0A=0D=0A <m:sayHello xmlns:m=3D'u=
rn:HelloWorld'>=0D=0A=0D=0A <box xsi:type=3D'xsd:string'>steve</box>=0D=0A=
=0D=0A </m:sayHello>=0D=0A=0D=0A</SOAP-ENV:Body>=0D=0A=0D=0A</SOAP-ENV:En=
velope>=0D=0A=0D=0A=0D=0Abut I've got the error:=0D=0A=0D=0AClient execut=
ing remote method sayHello on server with 'steve' argument=0D=0AException=
in thread "main" soaprmi.RemoteException: Envelope start tag =0D=0Aexpec=
ted=0D=0Anot html at line 1 and column 6 seen <html>... (parser state STA=
RT_TAG)=0D=0A at soaprmi.soaprpc.MethodInvoker.receiveResponse=0D=0A=
(MethodInvoker.java:344)=0D=0A=0D=0A at =0D=0Asoaprmi.soaprpc.Http=
SocketSoapInvocationHandler.invokeTransport(HttpS=0D=0AocketSoapInvocatio=
nHandler.java:133)=0D=0A at soaprmi.soaprpc.SoapDynamicStub.invoke=
=0D=0A(SoapDynamicStub.java:118)=0D=0A at $Proxy0.sayHello(Unknown=
Source)=0D=0A at minimal.HelloClient.main(HelloClient.java:75)=0D=
=0A=0D=0ADifference from Apache-soap message is:=0D=0A=0D=0A<m:sayHello x=
mlns:m=3D'urn:HelloWorld'>=0D=0A=0D=0AVs=0D=0A<ns1:sayHello xmlns:ns1=3D"=
urn:HelloWorld" SOAP-=0D=0AENV:encodingStyle=3D"http://schemas.xmlsoap.or=
g/soap/encoding/">=0D=0A=0D=0Abut: is it very important?(the place where =
is "SOAP-=0D=0AENV:encodingStyle=3D....")=0D=0A=0D=0AThanks!=0D=0A=0D=0AS=
tefano Pedon=0D=0A=0D=0APS-In your original code you wrote "HelloClient.c=
lass" =0D=0A but I've corrected with "HelloWorldServer.class": it's ok?=
=0D=0A=0D=0A=0D=0A=0D=0A> the problem is with parameter name, Apache expe=
cts it to be "box" as =0D=0A> XSOAP sends "sayHello", seE:=0D=0A> =0D=0A>=
<box xsi:type=3D"xsd:string">ste</box>=0D=0A> <sayHello xsi:type=3D'xsd:=
string'>steve</sayHello>=0D=0A> =0D=0A> =0D=0A> use this to modify parame=
ter name (i have not tested it but it should=0D=0A be =0D=0A> OK):=0D=0A>=
=0D=0A> XmlJavaMapping mapping =3D soaprmi.soap.Soap.getDefault=0D=
=0A().getMapping();=0D=0A> mapping.setDefaultStructNsPrefix=0D=0A(=
null); // disable XSOAP auto mapping=0D=0A> fixNames(mapping);=0D=0A=
> =0D=0A> public static void fixNames(XmlJavaMapping mapping) thr=
ows =0D=0A> Exception {=0D=0A> =0D=0A> XmlJavaPortTypeMap=
portMap =3D =0D=0A> mapping.queryPortType(HelloClient.class);=0D=0A> =0D=
=0A> // extract mapping for operation=0D=0A> =
XmlJavaOperationMap oMap =0D=0A> =3DportMap.queryMethodRequest("sayHe=
llo");=0D=0A> =0D=0A> // get in message and change part n=
ames=0D=0A> XmlJavaMessageMap requestMsg =3D oMap.getRequ=
est();=0D=0A> XmlJavaPartMap[] reqParts =3D requestMsg.ge=
tParts();=0D=0A> reqParts[0].setPartName("box");=0D=0A> =0D=
=0A> //oMap =3DportMap.queryMethodRequest("anotherMethod"=
);=0D=0A> // get in message and change part names=0D=0A> =
//requestMsg =3D oMap.getRequest();=0D=0A> =
//reqParts =3D requestMsg.getParts();=0D=0A> //reqParts=
[0].setPartName("parmaeter1Name");=0D=0A> //reqParts[1].s=
etPartName("parameter2Namee");=0D=0A> }=0D=0A> =0D=0A> let me kno=
w if it solved the problem.=0D=0A> =0D=0A> thanks,=0D=0A> =0D=0A> alek=0D=
=0A> =0D=0A> nodep_at_libero.it wrote:=0D=0A> =0D=0A> >Hi,=0D=0A> >the code =
I used is in the attachment file. It's=0D=0A> >the minimal sample for the=
XSOAP side and a simple=0D=0A> >HelloWorld service for Apache-soap. Firs=
t, I report=0D=0A> >the output of Apache-Soap message when I call the ser=
vice:=0D=0A> >=0D=0A> >POST /soap/servlet/rpcrouter HTTP/1.0=0D=0A> >Host=
: localhost:8080=0D=0A> >Content-Type: text/xml; charset=3Dutf-8=0D=0A> >=
Content-Length: 441=0D=0A> >SOAPAction: ""=0D=0A> >=0D=0A> ><?xml version=
=3D'1.0' encoding=3D'UTF-8'?>=0D=0A> ><SOAP-ENV:Envelope xmlns:SOAP-=0D=0A=
> >ENV=3D"http://schemas.xmlsoap.org/soap/envelope/" =0D=0A> >xmlns:xsi=3D=
"http://www.w3.org/2001/XMLSchema-instance" =0D=0A> >xmlns:xsd=3D"http://=
www.w3.org/2001/XMLSchema">=0D=0A> ><SOAP-ENV:Body>=0D=0A> ><ns1:sayHello=
xmlns:ns1=3D"urn:HelloWorld" SOAP-=0D=0A> >ENV:encodingStyle=3D"http://s=
chemas.xmlsoap.org/soap/encoding/">=0D=0A> ><box xsi:type=3D"xsd:string">=
ste</box>=0D=0A> ></ns1:sayHello>=0D=0A> ></SOAP-ENV:Body>=0D=0A> ></SOAP=
-ENV:Envelope>=0D=0A> >=0D=0A> >=0D=0A> >and the return is:=0D=0A> >=0D=0A=
> >HTTP/1.1 200 OK=0D=0A> >Set-Cookie: JSESSIONID=3D16B1353B36CD54CA2EFF3=
C26B77BAC75; Path=3D/soap=0D=0A> >Content-Type: text/xml; charset=3Dutf-8=
=0D=0A> >Content-Length: 489=0D=0A> >Date: Tue, 10 Dec 2002 17:59:29 GMT=0D=
=0A> >Server: Apache Coyote/1.0=0D=0A> >Connection: close=0D=0A> >=0D=0A>=
><?xml version=3D'1.0' encoding=3D'UTF-8'?>=0D=0A> ><SOAP-ENV:Envelope x=
mlns:SOAP-=0D=0A> >ENV=3D"http://schemas.xmlsoap.org/soap/envelope/" =0D=0A=
> >xmlns:xsi=3D"http://www.w3.org/2001/XMLSchema-instance" =0D=0A> >xmlns=
:xsd=3D"http://www.w3.org/2001/XMLSchema">=0D=0A> ><SOAP-ENV:Body>=0D=0A>=
><ns1:sayHelloResponse xmlns:ns1=3D"urn:HelloWorld" SOAP-=0D=0A> >ENV:en=
codingStyle=3D"http://schemas.xmlsoap.org/soap/encoding/">=0D=0A> ><retur=
n xsi:type=3D"xsd:string">Hello! Welcome to SOAP,steve.</return>=0D=0A> >=
</ns1:sayHelloResponse>=0D=0A> >=0D=0A> ></SOAP-ENV:Body>=0D=0A> ></SOAP-=
ENV:Envelope>=0D=0A> >=0D=0A> >=0D=0A> >Now, I've created an interface of=
the Apache-soap service and=0D=0A> >placed it in the minimal sample dire=
ctory and I've modified=0D=0A> >HelloClient.java so that it shoulds to ca=
ll Apache-soap's service.=0D=0A> >The output of Xsoap is:=0D=0A> >=0D=0A>=
>POST / HTTP/1.0=0D=0A> >Host: localhost=0D=0A> >User-Agent: SoapRMI/1.2=
=0D=0A> >Content-Type: text/xml; charset=3Dutf-8=0D=0A> >Content-Length: =
459=0D=0A> >SOAPAction: ""=0D=0A> >Connection: Close=0D=0A> >=0D=0A> ><SO=
AP-ENV:Envelope xmlns:SOAP-=0D=0A> >ENV=3D'http://schemas.xmlsoap.org/soa=
p/envelope/' xmlns:SOAP-=0D=0A> >ENC=3D'http://schemas.xmlsoap.org/soap/e=
ncoding/' =0D=0A> >xmlns:xsi=3D'http://www.w3.org/1999/XMLSchema-instance=
' =0D=0A> >xmlns:xsd=3D'http://www.w3.org/1999/XMLSchema' =0D=0A> >SOAP-E=
NV:encodingStyle=3D'http://schemas.xmlsoap.org/soap/encoding/'>=0D=0A> >=0D=
=0A> ><SOAP-ENV:Body>=0D=0A> >=0D=0A> ><m:sayHello xmlns:m=3D'urn:HelloWo=
rld'>=0D=0A> >=0D=0A> ><sayHello xsi:type=3D'xsd:string'>steve</sayHello>=
=0D=0A> >=0D=0A> ></m:sayHello>=0D=0A> >=0D=0A> ></SOAP-ENV:Body>=0D=0A> =
>=0D=0A> ></SOAP-ENV:Envelope>=0D=0A> >=0D=0A> >=0D=0A> >but the result i=
s this error:=0D=0A> >=0D=0A> >F:\J\xsoap\minimal>java minimal.HelloClien=
t http://localhost:8080 st=0D=0Aeve=0D=0A> >Client executing remote metho=
d sayHello on server with 'steve' argum=0D=0Aent=0D=0A> >Exception in thr=
ead "main" soaprmi.RemoteException: Envelope start t=0D=0Aag =0D=0A> >exp=
ected=0D=0A> >not html at line 1 and column 6 seen <html>... (parser stat=
e START_T=0D=0AAG)=0D=0A> > at soaprmi.soaprpc.MethodInvoker.recei=
veResponse=0D=0A> >(MethodInvoker.java:344)=0D=0A> >=0D=0A> > at =0D=
=0A> >soaprmi.soaprpc.HttpSocketSoapInvocationHandler.invokeTransport=0D=0A=
(HttpS=0D=0A> >ocketSoapInvocationHandler.java:133)=0D=0A> > at so=
aprmi.soaprpc.SoapDynamicStub.invoke=0D=0A> >(SoapDynamicStub.java:118)=0D=
=0A> > at $Proxy0.sayHello(Unknown Source)=0D=0A> > at mini=
mal.HelloClient.main(HelloClient.java:69)=0D=0A> >=0D=0A> >=0D=0A> >I see=
that there're differences beetwen the output's messages=0D=0A> >but I do=
n't know why (i.e. "<ns1:sayHello ..." and "<m:sayHello ..."=0D=0A, =0D=0A=
> >or the position=0D=0A> >of SOAP-=0D=0AENV:encodingStyle=3D"http://sche=
mas.xmlsoap.org/soap/encoding/")=0D=0A> >Could you help me?=0D=0A> >Thank=
s!=0D=0A> >=0D=0A> >Stefano Pedon=0D=0A> >=0D=0A> >PS-I use Apache-soap v=
2.3.1, is it the same of Axis?=0D=0A> >=0D=0A> > =0D=0A> >=0D=0A> >>node=
p_at_libero.it wrote:=0D=0A> >>=0D=0A> >> =0D=0A> >>=0D=0A> >>>Hi Alek,=0D=
=0A> >>>I've to call an Apache-soap=0D=0A> >>> =0D=0A> >>>=0D=0A> >(=
v2.3.1) service is running on Tomcat server,=0D=0A> > =0D=0A> >=0D=0A> >=
>>could you tell me the basic setting, please? (In the xsoap-=0D=0A> >>> =
=0D=0A> >>>=0D=0A> >side ... :))=0D=0A> > =0D=0A> >=0D=0A> >>>Here =
is the "Deployed Service Information" as is in "Apache SOAP A=0D=0Adm=0D=0A=
> >>> =0D=0A> >>>=0D=0A> >in":=0D=0A> > =0D=0A> >=0D=0A> >>>'urn:He=
lloWorldServer' Service Deployment Descriptor=0D=0A> >>>Property Detai=
ls=0D=0A> >>>=0D=0A> >>>ID urn: HelloWorldServer=0D=0A> >>>Scope R=
equest=0D=0A> >>>Provider Type java=0D=0A> >>>Provider Class =0D=0A>=
>>> =0D=0A> >>>=0D=0A> > esempi.helloworld.HelloWorldServer=0D=0A> =
> =0D=0A> >=0D=0A> >>>Use Static Class false=0D=0A> >>>Methods sayH=
ello=0D=0A> >>>Type Mappings=0D=0A> >>>Default Mapping Registry Class=0D=0A=
> >>> =0D=0A> >>>=0D=0A> >>> =0D=0A> >>>=0D=0A> >>hi,=0D=0A> >>=0D=0A=
> >>take a look on on samples/interop/client/Main.java in this case=0D=0A=
> >>you just need to create startpoint that points to server interface=0D=
=0A> >>i assume here that server HelloWorldServer implement HelloWorld=0D=
=0A> >>interface that has sayHello method and is running at =0D=0A> >>htt=
p://localhost:8080/axis/services/hello)=0D=0A> >>=0D=0A> >> HelloWorld=
serverReference =3D HelloWorld)=0D=0A> >> soaprmi.soaprpc.Soa=
pServices.getDefault=0D=0A> >> =0D=0A> >>=0D=0A> >().createStartpoint(=
=0D=0A> > =0D=0A> >=0D=0A> >> //server location,=0D=0A> >> =
new Class[]{HelloWorld .class},=0D=0A> >> "HelloWorld=
Server" // service namespace in case of AXIS=0D=0A i=0D=0A> >> =0D=0A>=
>>=0D=0A> > =0D=0A> > =0D=0A> >=0D=0A> >>think it is ID urn,=0D=0A> >> =
soaprmi.soap.SoapStyle.SOAP11,=0D=0A> >> "" // soap=
Action=0D=0A> >> );=0D=0A> >>=0D=0A> >>let me know if it worked OK=
fro you (or if not i will need to know =0D=0Amo=0D=0A> >> =0D=0A> >>=0D=
=0A> >re=0D=0A> > =0D=0A> >=0D=0A> >>about server setup what is exactly =
HelloWorldServer and how AXIS cl=0D=0Aie=0D=0A> >> =0D=0A> >>=0D=0A> >=
nt =0D=0A> > =0D=0A> >=0D=0A> >>looks).=0D=0A> >>=0D=0A> >>thanks,=0D=0A=
> >>=0D=0A> >>alek=0D=0A> >>=0D=0A> >>-- =0D=0A> >>The ancestor of every =
action is a thought. - Ralph Waldo Emerson =0D=0A> >>=0D=0A> >>=0D=0A> >>=
=0D=0A> >>=0D=0A> =0D=0A> -- =0D=0A> The ancestor of every action is =
a thought. - Ralph Waldo Emerson =0D=0A> =0D=0A> =0D=0A>
--_=__=_XaM3_Boundary.1039557130.2A.723871.42.20256.52.42.101010.2214
Content-Type: application/octet-stream;
name="HelloClient.java"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="HelloClient.java"
LyogLSotIG1vZGU6IEphdmE7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2Rl
OiBuaWw7IC0qLSAgLy8tLS0tLS0xMDAtY29sdW1ucy13aWRlLS0tLS0tPnwqLwovKgogKiBD
b3B5cmlnaHQgKGMpIDIwMDIgRXh0cmVtZSEgTGFiLCBJbmRpYW5hIFVuaXZlcnNpdHkuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFRoaXMgc29mdHdhcmUgaXMgb3BlbiBzb3VyY2Uu
IFNlZSB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSBmb3IgdGhlIGxpY2VuY2UuCiAqCiAqICRJ
ZDogSGVsbG9DbGllbnQuamF2YSx2IDEuMyAyMDAyLzExLzA3IDIzOjMyOjE4IGFzbG9tIEV4
cCAkCiAqLwoKcGFja2FnZSBtaW5pbWFsOwoKaW1wb3J0IHNvYXBybWkuUmVtb3RlRXhjZXB0
aW9uOwppbXBvcnQgc29hcHJtaS5tYXBwaW5nLio7CgovKioKICogU2ltcGxlIGNsaWVudCB0
aGF0IGV4ZWN1dGVzIHJlbW90ZSBtZXRob2Qgb24gc2VydmVyLgogKgogKiBAdmVyc2lvbiAk
UmV2aXNpb246IDEuMyAkCiAqIEBhdXRob3IgPGEgaHJlZj0iaHR0cDovL3d3dy5leHRyZW1l
LmluZGlhbmEuZWR1L35hc2xvbS8iPkFsZWtzYW5kZXIgU2xvbWluc2tpPC9hPgogKi8KCgpw
dWJsaWMgY2xhc3MgSGVsbG9DbGllbnQgewoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCB1c2Fn
ZShTdHJpbmcgZXJyTXNnKSB7CiAgICAgICAgaWYoZXJyTXNnICE9IG51bGwpIFN5c3RlbS5l
cnIucHJpbnRsbihlcnJNc2cpOwogICAgICAgIFN5c3RlbS5lcnIucHJpbnQoCiAgICAgICAg
ICAgICJVc2FnZTogbG9jYXRpb24gW2FyZ3VtZW50cyAuLi5dXG4iCiAgICAgICAgICAgICAg
ICArImxvY2F0aW9uIFx0aXQgY2FuIGJlIFVSTCB0byBjb25uZWN0IHRvIHNwZWNpZmllZCBz
ZXJ2ZXIgXG4iCiAgICAgICAgICAgICAgICArIiAgICAgICAgIFx0ICBleGFtcGxlczogaHR0
cDovL2xvY2FsaG9zdDo5ODc2L1xuIgogICAgICAgICAgICAgICAgKyJhcmd1bWVudHNcdGFs
bCByZW1pYW5pbmcgYXJndW1lbnRzIHdpbGwgYmUgdXNlZCBhcyBzdHJpbmdzXG4iCiAgICAg
ICAgICAgICAgICArIiAgICAgICAgIFx0IGFuZCBzZW5kIHRvIGhlbGxvIHNlcnZpY2VcbiIK
ICAgICAgICAgICAgICAgICsiXG5FeGFtcGxlOiBodHRwOi8vbG9jYWhvc3Q6OTg3NiBGb29c
biIKICAgICAgICApOwogICAgICAgIFN5c3RlbS5leGl0KDEpOwogICAgfQoKICAgIHB1Ymxp
YyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmcgYXJnc1tdKSB0aHJvd3MgUmVtb3RlRXhjZXB0
aW9uLEV4Y2VwdGlvbixYbWxNYXBFeGNlcHRpb24KICAgIHsKCiAgICAgICAgSGVsbG9Xb3Js
ZFNlcnZlciBzZXJ2aWNlUmVmID0gbnVsbDsKICAgICAgICBTdHJpbmcgbG9jYXRpb247CgkJ
CgkJWG1sSmF2YU1hcHBpbmcgbWFwcGluZz1zb2Fwcm1pLnNvYXAuU29hcC5nZXREZWZhdWx0
KCkuZ2V0TWFwcGluZygpOwoJCW1hcHBpbmcuc2V0RGVmYXVsdFN0cnVjdE5zUHJlZml4KG51
bGwpOyAvL2Rpc2FibGUgWFNPQVAgYXV0byBtYXBwaW5nCgkJCgkJZml4TmFtZXMobWFwcGlu
Zyk7CgkJCiAgICAgICAgaWYoYXJncy5sZW5ndGggPT0gMCkgey8vdXNhZ2UoInBhc3MgYXQg
bGVhc3Qgb25lIGFyZ3VtZW50Iik7CiAgICAgICAgICAgIGxvY2F0aW9uID0gImh0dHA6Ly9s
b2NhbGhvc3Q6IitIZWxsb1NlcnZlci5ERUZBVUxUX1RDUF9QT1JUOwogICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgIGlmKGFyZ3NbMF0uc3RhcnRzV2l0aCgiLWgiKSkgewogICAgICAg
ICAgICAgICAgdXNhZ2UobnVsbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbG9jYXRp
b24gPSBhcmdzWzBdOwogICAgICAgIH0KCiAgICAgICAgLy8gY3JlYXRlIHJlZmVyZW5jZSBv
dCBzZXJ2aWNlCiAgICAgICAgc2VydmljZVJlZiA9IChIZWxsb1dvcmxkU2VydmVyKQogICAg
ICAgICAgICBzb2Fwcm1pLnNvYXBycGMuU29hcFNlcnZpY2VzLmdldERlZmF1bHQoKS5jcmVh
dGVTdGFydHBvaW50KAogICAgICAgICAgICBsb2NhdGlvbiwgIC8vIHNlcnZpY2UgbG9jYXRp
b24KICAgICAgICAgICAgbmV3IENsYXNzW117SGVsbG9Xb3JsZFNlcnZlci5jbGFzc30sIC8v
IHJlbW90ZSBzZXJ2aWNlIGludGVyZmFjZQogICAgICAgICAgICAidXJuOkhlbGxvV29ybGQi
LCAvLyBlbmRwb2ludCBuYW1lCiAgICAgICAgICAgIHNvYXBybWkuc29hcC5Tb2FwU3R5bGUu
U09BUDExLAogICAgICAgICAgICAiIiAvLyBTT0FQQWN0aW9uCiAgICAgICAgKTsKCgogICAg
ICAgIC8vIGZvciBlYWNoIGFyZ3VtZW50IGFzayBzZXJ2aWNlIHRvIHNheSBoZWxsbyAuLi4K
ICAgICAgICBpbnQgcG9zID0gMTsKICAgICAgICBkbyB7CiAgICAgICAgICAgIFN0cmluZyBh
cmcgPSAocG9zIDwgYXJncy5sZW5ndGggPyBhcmdzW3BvcysrXSA6ICJXb3JsZCIpOwogICAg
ICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oCiAgICAgICAgICAgICAgICAiQ2xpZW50IGV4
ZWN1dGluZyByZW1vdGUgbWV0aG9kIHNheUhlbGxvIG9uIHNlcnZlciB3aXRoICciK2FyZysi
JyBhcmd1bWVudCIpOwogICAgICAgICAgICBTdHJpbmcgZ3JlZXRpbmcgPSBzZXJ2aWNlUmVm
LnNheUhlbGxvKGFyZyk7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU2VydmVy
IHNhaWQgJyIrZ3JlZXRpbmcrIiciKTsKICAgICAgICB9IHdoaWxlKHBvcyA8IGFyZ3MubGVu
Z3RoKTsKCiAgICB9CiAgICAKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBmaXhOYW1lcyhYbWxK
YXZhTWFwcGluZyBtYXBwaW5nKSB0aHJvd3MgWG1sTWFwRXhjZXB0aW9uCiAgICB7CiAgICAJ
WG1sSmF2YVBvcnRUeXBlTWFwIHBvcnRNYXA9bWFwcGluZy5xdWVyeVBvcnRUeXBlKEhlbGxv
V29ybGRTZXJ2ZXIuY2xhc3MpOwogICAgCQogICAgCS8vZXh0cmFjdCBtYXBwaW5nIGZvciBv
cGVyYXRpb24KICAgIAlYbWxKYXZhT3BlcmF0aW9uTWFwIG9NYXA9cG9ydE1hcC5xdWVyeU1l
dGhvZFJlcXVlc3QoInNheUhlbGxvIik7CiAgICAJCiAgICAJLy9nZXQgaW4gbWVzc2FnZSBh
bmQgY2hhbmdlIHBhcnQgbmFtZXMKICAgIAlYbWxKYXZhTWVzc2FnZU1hcCByZXF1ZXN0TXNn
PW9NYXAuZ2V0UmVxdWVzdCgpOwogICAgCVhtbEphdmFQYXJ0TWFwW10gcmVxUGFydHM9cmVx
dWVzdE1zZy5nZXRQYXJ0cygpOwogICAgCXJlcVBhcnRzWzBdLnNldFBhcnROYW1lKCJib3gi
KTsKICAgIH0KCn0KCi8qCiAqIEluZGlhbmEgVW5pdmVyc2l0eSBFeHRyZW1lISBMYWIgU29m
dHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjIKICoKICogQ29weXJpZ2h0IChDKSAyMDAyIFRo
ZSBUcnVzdGVlcyBvZiBJbmRpYW5hIFVuaXZlcnNpdHkuCiAqIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAqCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiAqIG1ldDoKICoK
ICogMSkgQWxsIHJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUKICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhlIGxpc3Qgb2YgYXV0aG9ycyBp
biB0aGUgb3JpZ2luYWwgc291cmNlCiAqICAgIGNvZGUsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZGlzY2xhaW1lciBsaXN0ZWQgaW4gdGhpcwogKiAgICBsaWNlbnNlOwog
KgogKiAyKSBBbGwgcmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQogKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGRpc2NsYWltZXIKICogICAgbGlzdGVkIGluIHRoaXMgbGljZW5z
ZSBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIKICogICAgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbjsKICoKICogMykgQW55IGRvY3VtZW50YXRp
b24gaW5jbHVkZWQgd2l0aCBhbGwgcmVkaXN0cmlidXRpb25zIG11c3QgaW5jbHVkZQogKiAg
ICB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdlbWVudDoKICoKICogICAgICAiVGhpcyBwcm9k
dWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVsb3BlZCBieSB0aGUgSW5kaWFuYQogKiAgICAg
IFVuaXZlcnNpdHkgRXh0cmVtZSEgTGFiLiAgRm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gcGxl
YXNlIHZpc2l0CiAqICAgICAgaHR0cDovL3d3dy5leHRyZW1lLmluZGlhbmEuZWR1LyIKICoK
ICogICAgQWx0ZXJuYXRpdmVseSwgdGhpcyBhY2tub3dsZWRnbWVudCBtYXkgYXBwZWFyIGlu
IHRoZSBzb2Z0d2FyZQogKiAgICBpdHNlbGYsIGFuZCB3aGVyZXZlciBzdWNoIHRoaXJkLXBh
cnR5IGFja25vd2xlZGdtZW50cyBub3JtYWxseQogKiAgICBhcHBlYXIuCiAqCiAqIDQpIFRo
ZSBuYW1lICJJbmRpYW5hIFVuaXZlcmlzdHkiIG9yICJJbmRpYW5hIFVuaXZlcmlzdHkKICog
ICAgRXh0cmVtZSEgTGFiIiBzaGFsbCBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUKICogICAgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBw
cmlvciB3cml0dGVuCiAqICAgIHBlcm1pc3Npb24gZnJvbSBJbmRpYW5hIFVuaXZlcnNpdHku
ICBGb3Igd3JpdHRlbiBwZXJtaXNzaW9uLAogKiAgICBwbGVhc2UgY29udGFjdCBodHRwOi8v
d3d3LmV4dHJlbWUuaW5kaWFuYS5lZHUvLgogKgogKiA1KSBQcm9kdWN0cyBkZXJpdmVkIGZy
b20gdGhpcyBzb2Z0d2FyZSBtYXkgbm90IHVzZSAiSW5kaWFuYQogKiAgICBVbml2ZXJpc3R5
IiBuYW1lIG5vciBtYXkgIkluZGlhbmEgVW5pdmVyaXN0eSIgYXBwZWFyIGluIHRoZWlyIG5h
bWUsCiAqICAgIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uIG9mIHRoZSBJbmRp
YW5hIFVuaXZlcnNpdHkuCiAqCiAqIEluZGlhbmEgVW5pdmVyc2l0eSBwcm92aWRlcyBubyBy
ZWFzc3VyYW5jZXMgdGhhdCB0aGUgc291cmNlIGNvZGUKICogcHJvdmlkZWQgZG9lcyBub3Qg
aW5mcmluZ2UgdGhlIHBhdGVudCBvciBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsCiAqIHByb3Bl
cnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LiAgSW5kaWFuYSBVbml2ZXJzaXR5IGRp
c2NsYWltcyBhbnkKICogbGlhYmlsaXR5IHRvIGFueSByZWNpcGllbnQgZm9yIGNsYWltcyBi
cm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkKICogYmFzZWQgb24gaW5mcmluZ2VtZW50IG9m
IGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLgogKgogKiBMSUNF
TlNFRSBVTkRFUlNUQU5EUyBUSEFUIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIgRk9S
IFdISUNICiAqIE5PIFdBUlJBTlRJRVMgQVMgVE8gQ0FQQUJJTElUSUVTIE9SIEFDQ1VSQUNZ
IEFSRSBNQURFLiBJTkRJQU5BCiAqIFVOSVZFUlNJVFkgR0lWRVMgTk8gV0FSUkFOVElFUyBB
TkQgTUFLRVMgTk8gUkVQUkVTRU5UQVRJT04gVEhBVAogKiBTT0ZUV0FSRSBJUyBGUkVFIE9G
IElORlJJTkdFTUVOVCBPRiBUSElSRCBQQVJUWSBQQVRFTlQsIENPUFlSSUdIVCwgT1IKICog
T1RIRVIgUFJPUFJJRVRBUlkgUklHSFRTLiAgSU5ESUFOQSBVTklWRVJTSVRZIE1BS0VTIE5P
IFdBUlJBTlRJRVMgVEhBVAogKiBTT0ZUV0FSRSBJUyBGUkVFIEZST00gIkJVR1MiLCAiVklS
VVNFUyIsICJUUk9KQU4gSE9SU0VTIiwgIlRSQVAKICogRE9PUlMiLCAiV09STVMiLCBPUiBP
VEhFUiBIQVJNRlVMIENPREUuICBMSUNFTlNFRSBBU1NVTUVTIFRIRSBFTlRJUkUKICogUklT
SyBBUyBUTyBUSEUgUEVSRk9STUFOQ0UgT0YgU09GVFdBUkUgQU5EL09SIEFTU09DSUFURUQg
TUFURVJJQUxTLAogKiBBTkQgVE8gVEhFIFBFUkZPUk1BTkNFIEFORCBWQUxJRElUWSBPRiBJ
TkZPUk1BVElPTiBHRU5FUkFURUQgVVNJTkcKICogU09GVFdBUkUuCiAqLwoK
--_=__=_XaM3_Boundary.1039557130.2A.723871.42.20256.52.42.101010.2214--