Академический Документы
Профессиональный Документы
Культура Документы
Developer
Version 7.1
Copyright
& Docu
mentID
Cerebra,Glue,InfravioXBroker,InfravioXRegistry,Infravio,MywebMethodsServer,MywebMethods,webMethodsAccess,webMethodsAdministrator,
webMethodsBroker,webMethodsCentralConfiguration,webMethodsDashboard,webMethodsDesigner,webMethodsDeveloper,webMethodsFabric,
webMethodsGlue,webMethodsInfrastructureDataCollector,webMethodsInfravioXBroker,webMethodsInfravioXRegistry,webMethodsInstaller,
webMethodsIntegrationServer,webMethodslogo,webMethodsMainframe,webMethodsManager,webMethodsModeler,webMethodsMonitor,
webMethodsOptimizeforInfrastructure,webMethodsOptimizeforProcess,webMethodsOptimize,webMethodsPortal,webMethodsProcessEngine,
webMethodsServicenet,webMethodsTaskEngine,webMethodsTradingNetworks,webMethodsWorkflow,andwebMethodsareeitherregistered
trademarksortrademarksofwebMethods,Inc.
Acrobat,Acrobat,andReaderareregisteredtrademarksofAdobeSystemsIncorporated.AmdocsandClarifyCRMareregisteredtrademarksofAmdocs.
AribaisaregisteredtrademarkofAriba,Inc.BEA,BEAWebLogicServer,Jolt,andTuxedoareregisteredtrademarks,andBEAWebLogicPlatformisa
trademarkofBEASystems,Inc.ActionRequestSystem,BMCSoftware,PATROL,andRemedyareregisteredtrademarksofBMCSoftware,Inc.BroadVision
isaregisteredtrademarkofBroadVision,Inc.ChemeStandardsandCIDXaretrademarksofCIDX,TheChemicalIndustryDataExchange.SiteMinderand
UnicenterareregisteredtrademarksofCA,Inc.PopChartisaregisteredtrademarkofCORDATechnologies,Inc.KenanandArborareregisteredtrademarks
ofAlcatelLucent.DataConnectionandSNAPIXareregisteredtrademarksofDataConnectionCorporation.D&BandDUNSareregisteredtrademarksof
Dun&BradstreetCorporation.EclipseisatrademarkofEclipseFoundation,Inc.EntrustisaregisteredtrademarkofEntrust,Inc.papiNetisaregistered
trademarkoftheEuropeanUnionandtheUnitedStates.FinancialInformationeXchange,F.I.X,andF.I.XProtocolaretrademarksofFIXProtocolLtd.
UCCnetandeBusinessReadyareregisteredtrademarks,and1SYNCandTransoraaretrademarksofGS1US.HewlettPackard,HP,HPUX,OpenView,PA
RISC,andSNAplus2aretrademarksofHewlettPackardCompany.i2isaregisteredtrademarkofi2Technologies,Inc.AIX,AS/400,CICS,ClearCase,DB2,
Domino,IBM,Informix,Infoprint,Lotus,LotusNotes,MQSeries,OS/390,OS/400,RACF,RS/6000,SQL/400,S/390,System/390,VTAM,andWebSphere,and
z/OSareregisteredtrademarks;andCommunicationsSystemforWindowsNT,DB2UniversalDatabase,IMS,MVS,andSQL/DSaretrademarksofIBM
Corporation.InnoDBisatrademarkofInnobaseOy.ItaniumisaregisteredtrademarkofIntelCorporation.LinuxisaregisteredtrademarkofLinus
Torvalds.W3Cisaregisteredtrademark,andXWindowSystemisatrademarkoftheMassachusettsInstituteofTechnology.MetaSolvisaregistered
trademarkofMetasolvSoftware,Inc.ActiveX,Microsoft,Outlook,VisualBasic,VisualSourceSafe,Windows,WindowsNT,andWindowsServerare
registeredtrademarksofMicrosoftCorporation.SixSigmaisaregisteredtrademarkofMotorola,Inc.FirefoxandMozillaareregisteredtrademarksofthe
MozillaFoundation.MySQLisaregisteredtrademarkofMySQLAB.nCipherisatrademarkofnCipherCorporationLtd.EclipseisatrademarkofEclipse
Foundation,Inc.EntrustisaregisteredtrademarkofEntrust,Inc.papiNetisaregisteredtrademarkoftheEuropeanUnionandtheUnitedStates.Financial
InformationeXchange,F.I.X,andF.I.XProtocolaretrademarksofFIXProtocolLtd.UCCnetandeBusinessReadyareregisteredtrademarks,and1SYNCand
TransoraaretrademarksofGS1US.HewlettPackard,HP,HPUX,OpenView,PARISC,andSNAplus2aretrademarksofHewlettPackardCompany.i2isa
registeredtrademarkofi2Technologies,Inc.AIX,AS/400,CICS,ClearCase,DB2,Domino,IBM,Informix,Infoprint,Lotus,LotusNotes,MQSeries,OS/390,
OS/400,RACF,RS/6000,SQL/400,S/390,System/390,VTAM,andWebSphere,andz/OSareregisteredtrademarks;andCommunicationsSystemforWindows
NT,DB2UniversalDatabase,IMS,MVS,andSQL/DSaretrademarksofIBMCorporation.InnoDBisatrademarkofInnobaseOy.Itaniumisaregistered
trademarkofIntelCorporation.TeradataisaregisteredtrademarkofNCRCorporation.NetscapeisaregisteredtrademarkofNetscapeCommunications
Corporation.ServletExecisaregisteredtrademark,andNewAtlantaisatrademarkofNewAtlantaCommunications,LLC.SUSEisaregisteredtrademark
ofNovell,Inc.AppiaisaregisteredtrademarkandJavelinTechnologiesisatrademarkofNYFIX,Inc.CORBAisaregisteredtrademarkofObject
ManagementGroup,Inc.JDEdwards,OneWorld,Oracle,PeopleSoft,Siebel,andVantiveareregisteredtrademarks;andInfranet,PeopleSoftPureInternet
Architecture,Portal,andWorldSoftwarearetrademarksofOracleCorporation.PerforceisatrademarkofPerforceSoftware.JBossandRedHatare
registeredtrademarksofRedHat,Inc.PIPandRosettaNetaretrademarksofRosettaNet,anonprofitorganization.SAPandR/3areregisteredtrademarks
ofSAPAG.PVCSisaregisteredtrademarkofSerenaSoftware,Inc.SWIFTandSWIFTNetareregisteredtrademarksofSocietyforWorldwideInterbank
FinancialTelecommunicationSCRL.SPARCandSPARCStationareregisteredtrademarksofSPARCInternational,Inc.BAANandSSAareregistered
trademarks;andSSAGlobalisatrademarkofSSAGlobalTechnologies,Inc.EJB,EnterpriseJavaBeans,Java,JavaServer,JDBC,JSP,J2EE,Solaris,Sun,and
SunMicrosystemsareregisteredtrademarks;andJavaNamingandDirectoryInterface,JavaServerPages,SOAPwithAttachmentsAPIforJava,andSunSoft
aretrademarksofSunMicrosystems,Inc.SybaseisaregisteredtrademarkofSybase,Inc.VERITASisaregisteredtrademark,andVERITASClusterServeris
atrademarkofSymantecCorporation.UNIXisaregisteredtrademarkofTheOpenGroup.UnicodeisatrademarkofUnicode,Inc.VeriSignisaregistered
trademarkofVerisign,Inc.
SoftwareAGandallSoftwareAGproductnamesareeithertrademarksorregisteredtrademarksofSoftwareAG.
Otherproductandcompanynamesmentionedhereinmaybethetrademarksoftheirrespectiveowners.
Copyright2007webMethods,Inc.Allrightsreserved.
Copyright2007SoftwareAGand/oritssuppliers,Uhlandstrasse12,64297Darmstadt,Germany.Allrightsreserved.
Contents
Contents
About This Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Additional Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
7
9
10
10
11
11
12
14
14
15
17
18
21
22
22
22
25
27
31
32
32
33
33
34
37
37
37
Contents
39
40
40
40
41
41
42
42
43
44
51
52
52
52
53
57
57
61
65
66
66
70
73
74
75
75
76
77
77
79
80
80
82
82
83
Contents
104
104
106
107
109
111
112
112
118
118
119
119
120
121
122
123
125
125
126
126
128
128
128
129
129
130
130
132
132
Contents
136
136
137
137
137
139
139
140
145
146
146
147
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
WelcometotheSOAPDevelopersGuide.ThisguidedescribeshowtousethewebMethods
IntegrationServertoexchangeSOAPmessagesovertheInternet.
Itisforsolutiondeveloperswhoneedtounderstand:
HowtoreceiveandprocessSOAPmessagesandSOAPremoteprocedurecallswith
thewebMethodsIntegrationServer.
HowtosubmitSOAPmessagesandSOAPremoteprocedurecallstootherservers.
Document Conventions
Convention
Description
Bold
Identifieselementsonascreen.
Italic
Identifiesvariableinformationthatyoumustsupplyorchange
basedonyourspecificsituationorenvironment.Identifiestermsthe
firsttimetheyaredefinedintext.Alsoidentifiesserviceinputand
outputvariables.
Narrow font
IdentifiesstoragelocationsforservicesonthewebMethods
IntegrationServerusingtheconventionfolder.subfolder:service.
Typewriter
font
Identifiescharactersandvaluesthatyoumusttypeexactlyor
messagesthatthesystemdisplaysontheconsole.
UPPERCASE
Identifieskeyboardkeys.Keysthatyoumustpresssimultaneously
arejoinedwiththe+symbol.
Directorypathsusethe\directorydelimiterunlessthesubjectis
UNIXspecific.
[]
Optionalkeywordsorvaluesareenclosedin[].Donottypethe[]
symbolsinyourowncode.
Additional Information
ThewebMethodsAdvantageWebsiteathttp://advantage.webmethods.comprovidesyou
withimportantsourcesofinformationaboutwebMethodsproducts:
Troubleshooting Information.ThewebMethodsKnowledgeBaseprovides
troubleshootinginformationformanywebMethodsproducts.
Documentation Feedback.ToprovidefeedbackonwebMethodsdocumentation,goto
theDocumentationFeedbackFormonthewebMethodsBookshelf.
Additional Documentation.Startingwith7.0,youhavetheoptionofdownloadingthe
documentationduringproductinstallationtoasingledirectorycalled
_documentation,locatedbydefaultunderthewebMethodsinstallationdirectory.In
addition,youcanfinddocumentationforallwebMethodsproductsonthe
webMethodsBookshelf.
What is SOAP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
What Does a SOAP Message Look Like? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1. Overview of SOAP
What is SOAP?
TheSimpleObjectAccessProtocol(SOAP)isastandard,lightweightprotocolfor
exchangingmessagesacrosstheInternet.ItusesXMLtodefineabasicmessagepacket
thatcanbeusedtoconveyanarbitraryXMLdocumentoraremoteprocedurecall(RPC).
SOAP Header
(optional)
SOAP Body
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<MSG:priority xmlns:MSG="http://www.gsx.com/gl/">9</MSG:priority>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<JournalEntry xmlns="http://www.gsx.com/gl/">
<entry>
<Id>2398</Id>
<amt>237.50</amt>
<acct>Cash</acct>
</entry>
</JournalEntry>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Note: Althoughnotshownintheexampleabove,SOAP1.1alsoallowsadditional,
implementationspecificelementstofollowthebodyofaSOAPmessage.Inthisbook,
suchelementsarereferredtoastrailers.Formoreinformationabouttrailers,seeTrailers
onpage 18.TrailersarenotsupportedwithSOAP1.2.
10
1. Overview of SOAP
The Envelope
TheenvelopeisthetoplevelelementinaSOAPmessage.Itisthecontainerthatholds
theentiremessage.Theenvelopemustbethefirst(thatis,theoutermost)elementina
SOAPmessage.IthasthenameEnvelope.
Theenvelopemaycontainaheaderelement.WhenaSOAPmessagecontainsa
header,theheaderelementmustbethefirstchildwithintheenvelope.Foradditional
informationabouttheheaderelement,seeTheHeaderonpage 12.
Theenvelopemustcontainabodyelement.Thebodycarriesthecontentofthe
message.FormoreinformationaboutthebodyelementseeTheBodyonpage 15.
TheenvelopemustbeassociatedwithaSOAPnamespace.TheSOAPnamespace
servesasthequalifierforthemessagesSOAPrelatedelementsandattributes.Italso
specifiestheXMLschematowhichthemessageconforms.Foradditionalinformation
abouttheSOAPnamespace,seeTheSOAPNamespaceDeclarationbelow.
Theenvelopemayincludeotherimplementationspecificnamespacedeclarations.
TheenvelopemaycontaintheencodingStyleattribute,whichspecifiesthewayinwhich
theelementswithintheenvelopeareserializedanddeserialized.
Theenvelopemaycontainadditionalimplementationspecificattributes,butifit
does,theseattributesmustbenamespacequalified.
Theenvelopemaycontainadditionalimplementationspecificchildrenbesidesthe
headerandbodyelements;however,ifitdoes,theadditionalelementsmustbe
namespacequalifiedandmustfollowthebodyelement.
11
1. Overview of SOAP
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
.
.
.
</SOAP-ENV:Header>
<SOAP-ENV:Body>
.
.
.
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
MessagesthatconformtotheSimpleObjectAccessProtocol(SOAP)1.1W3CNote08May
2000usethenamespacehttp://schemas.xmlsoap.org/soap/envelope/ andthosethatconformtothe
SOAP1.2W3CRecommendation27April2007specificationusethenamespace
http://www.w3.org/2003/05/soap-envelope/.
Messageswhoseenvelopesdeclareadifferentnamespace,ornonamespace,are
consideredinvalidandarerejectedbyIntegrationServer.
Note: Unlessotherwisenoted,whenthenamespaceprefixSOAP-ENVappearsinthisbook,
itrepresentsthenamespacehttp://schemas.xmlsoap.org/soap/envelope/.
The Header
ASOAPmessagecanincludeanoptionalheadercomponenttostoreadditional
information.Theheaderelementprovidesaplacewhereasendercanpassauxiliary,
implementationspecificinformationsuchasauthorizationcodes,routinginformation,
versionnumbers,ormessageIDs.Forexample,ifyoursolutionroutesinvoicesthrough
oneormoreapprovalstepsbeforepassingittoanaccountspayableprocessor,theheader
couldholdthedocumentsroutinginformation.
WhenaheaderisincludedinaSOAPmessage,itmustappearasthefirstchildelement
withintheenvelopeandmusthavethenameHeader.Aheadermaycontainoneormore
childelements.Eachchildisreferredtoasaheaderentry.Allheaderentriesmustbe
namespacequalified.
12
1. Overview of SOAP
Important! Theinclusionofaheadercomponentandtheinformationitstoresare
implementationspecific.TheSOAPspecificationdoesnotdefineanystandardheader
entries.Itsimplyprovidestheheaderasacontainerthatimplementerscanuseasneeded.
ThepartiesexchangingSOAPmessagesareresponsiblefordefiningheaderentriesfor
processingthem.
ThefollowingexampleshowsaSOAPenvelopecontainingasingleheaderentrycalled
<MSG:priority>.Notethattheentryisnamespacequalified,whichisarequirementofall
headerentriesinaSOAPmessage.
Soap 1.1 message with single header entry
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<MSG:priority xmlns:MSG="http://www.gsx.com/">9</MSG:priority>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
.
.
.
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
13
1. Overview of SOAP
Description
actor
Identifiestheintendedrecipientoftheheaderentry.Thisattribute
allowsasendertodirectaheaderentrytoaspecificprocess.
mustUnderstand
Indicateswhetherprocessingoftheheaderentryismandatory.
RecipientsthatdonotrecognizeanentrywhosemustUnderstand
attributeissetto1mustrejectthemessageandreturnafaulttothe
client.
ThefollowingexampleshowsaSOAP1.1headerentrythatusesboththeactorand
mustUnderstandattributes.
Message that uses the actor and mustUnderstand attributes
.
.
.
<SOAP-ENV:Header>
<MSG:nextDest xmlns=MSG:"http://www.gsx.com/"
SOAP-ENV:actor="http://www.gsx.com/msgRouter"
SOAP-ENV:mustUnderstand="1"
SOAP-ENV:mustUnderstand="1">
rubicon:5555
</MSG:nextDest>
</SOAP-ENV:Header>
.
.
.
FormoreinformationaboutusingtheactorandmustUnderstandattributes,seetheSimple
ObjectAccessProtocol(SOAP)1.1W3CNote08May2000at
http://www.w3.org/TR/SOAP/#_Toc478383498.
14
1. Overview of SOAP
Attribute
Description
encodingStyle
IdentifiestheusageofencodingrulestoserializepartsofaSOAP
message.
role
IdentifiestheSOAPnodetowhichaparticularSOAPheaderentryis
targeted.
mustUnderstand
Identifieswhetherprocessingoftheheaderentryismandatory.
RecipientsthatdonotrecognizeanentrywhosemustUnderstand
attributeissetto1mustrejectthemessageandreturnafaulttothe
client.
relay
IdentifieswhetheraheaderentrytargetedataSOAPreceivermustbe
relayed,ifitisnotprocessed.
ThefollowingexampleshowsaSOAP1.2headerentrythatusesboththeroleand
mustUnderstandattributes.
Message that uses the role and mustUnderstand attributes
.
.
.
<SOAP-ENV:Header>
<<MSG:nextDest> xmlns:hb1="http://example.org/hb1"
SOAP-ENV:actor="http://www.gsx.com/msgRouter"
SOAP-ENV:role="http://example.org/Qos"
SOAP-ENV:mustUnderstand="1">
rubicon:5555
</MSG:nextDest>
</SOAP-ENV:Header>
.
.
FormoreinformationaboutusingtheroleandmustUnderstandattributes,seetheSOAP1.2
W3CRecommendation27April2007athttp://www.w3.org/TR/2003/RECsoap12part1.
The Body
WhenaSOAPmessageconveysanarbitraryXMLdocument(sometimesreferredtoas
applicationdataorthebusinesspayload),thedocumentiscarriedinthebodyofthemessage.
WhenSOAPisusedasanRPCprotocol,thebodyspecifiesthemethodnamethatthe
clientiscallingandcarriesthemethodsinputvalues.
ASOAPmessagemustcontainabodyelement.ThiselementmustbenamedBody.Ifa
SOAPmessagecontainsaheader,theBodyelementmustappearimmediatelyafterthe
header.Otherwise,thebodymustbethefirstelementintheSOAPenvelope.
EachimmediatechildoftheBodyelementisreferredtoasabodyentry.
15
1. Overview of SOAP
Note: AlthoughaSOAPmessagemustcontainabody,thebodydoesnothavetocontain
data.AmessagethathasanemptyBodyelementisavalidSOAPmessage.
16
1. Overview of SOAP
Value
<faultcode>
Aqualifiednameindicatingthetypeoferrorthatoccurred.The
SOAPspecificationdefinesseveralstandarderrorcodes(for
example,SOAP-ENV:Server,SOAP-ENV:Client).See
http://www.w3.org/TR/2000/NOTESOAP20000508/fordetails.
<faultstring>
Astringdescribingthefaultthatoccurred.
<faultactor>
Optional.AURIindicatingwhichprocessorapplicationproduced
thefault.
<detail>
Optional.Anelementcontainingimplementationspecificdetails
abouttheerror.Thiselementmustbepresentiftheerroroccurs
whileprocessingthebodyofthemessage.Foradescriptionofthe
detailelementreturnedbyIntegrationServer,seeAppendix A,
SOAPFaultsReturnedbytheIntegrationServer.
TheSOAP1.2faultelementcontainsthefollowingchildelements:
Element
Value
Code
Anelementcontainingthechildvalue<env:Value>withvalueof
VersionMismatch,mustUnderstand,dataEncodingUnknown,
Sender,Receiver,andtheoptionalsubelements<env:Subcode>and
<env:Value>.
Reason
Anelementintendedtoprovideahumanreadableexplanationof
thefault.Thevalueisintheformofastring.
Node
Optional.AURIfortheSOAPnodethatgeneratedthefault.
Role
Optional.Theroleplayedbythenodethatgeneratedthefault.
Detail
Optional.Anelementcontainingimplementationspecificdetails
abouttheerror.Thiselementmustbepresentiftheerroroccurs
whileprocessingthebodyofthemessage.Foradescriptionofthe
detailelementreturnedbythewebMethodsIntegrationServer,see
Appendix A,SOAPFaultsReturnedbytheIntegrationServer.
Note: Faultsmustbenamespacequalifiedwiththenamespace
http://www.w3.org/2003/05/soapenvelope.
17
1. Overview of SOAP
ThefollowingshowsanexampleoftheSOAP1.1faultthattheIntegrationServerreturns
whenasendersubmitsamessagetoanonexistentSOAPprocessor.
A SOAP message returning a fault
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>
SOAP-ENV:Server
</faultcode>
<faultstring>
[ISS.0088.9123] Requested SOAP processor
mySoapProc is not registered on this server
</faultstring>
<faultactor>
http://localhost:5555/soap/mySoapProc
</faultactor>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
WhenyouwriteclientsthatsubmitSOAPmessagestotheIntegrationServer,yourclient
codeshouldtestforthepresenceofafaultcodeandprocesstheresponseappropriately.
ForinformationaboutwhenandhowtheIntegrationServerreturnsaSOAPfault,see
Appendix A,SOAPFaultsReturnedbytheIntegrationServer.
Trailers
TheSOAP1.1specificationpermitsadditionalimplementationspecificelements
(elementsbesidesaheaderandabody)toresideinaSOAPenvelope.TheIntegration
Serverreferstotheseelementsastrailers.IfaSOAPenvelopecarriestrailers,theymust
appearafterthebodyandtheymustbenamespacequalified.
Important! SOAP1.2doesnotsupporttrailers.Ifyouaredesigninganewsolution,
Software AGrecommendsagainsttheuseoftrailers.However,ifyouexchangeSOAP
messageswitholdersystemsthatusetrailers,IntegrationServerprovidesservicesthat
allowthemtowork.
18
1. Overview of SOAP
trailer
trailer
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header xmlns:MSG="http://www.gsx.com/">
<MSG:priority>9</MSG:priority>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GL:JournalEntry xmlns:GL="http://www.gsg.com/gl/">
<transaction>
<entry>
<amt>237.50</amt>
<acct>Cash</acct>
</entry>
</transaction>
</GL:JournalEntry>
</SOAP-ENV:Body>
<AUDIT:TransInfo xmlns:AUDIT="http://www.etrans.com/monitor/>
<server>14.226.151.96</server>
<port>5540</port>
<time>2001-06-13 16:00:00 5</time>
<node>http://www.gsx.com/clearInv</node>
</AUDIT:TransInfo>
<AUDIT:TransInfo xmlns:AUDIT="http://www.etrans.com/monitor>
<server>20.117.70.33</server>
<port>8081</port>
<time>2001-06-13 16:00:04 5</time>
<node>http://www.gsx.com/updateCustAcct</node>
</AUDIT:TransInfo>
</SOAP-ENV:Envelope>
TrailersallowyoutotransmitinformationinaSOAPmessagewithoutplacingitinthe
bodyortheheaderofthemessage.Althoughusedinfrequently,theyarepermittedbythe
SOAP1.1specificationandtheyprovideamechanismthatyoucanusetodeliver
informationtoapreprocessor,amessagehandlerorsomeotherintermediateprocess
withouttrespassingonthemessagesheaderorbody.
19
1. Overview of SOAP
20
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Receiving SOAP Messages with the Integration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Sending SOAP Messages with the Integration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Sending SOAP RPC Messages with the Integration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
21
Overview
SupportforSOAPisdeliveredbyaSOAPmessagehandlerandasetofbuiltinservices.
Thesefacilitiesallowyouto:
ReceiveandprocessSOAPmessagesviaHTTPorHTTPS.
SubmitSOAPmessagestootherserversviaHTTPorHTTPS.
ComposeanddecomposeSOAPmessagesusingasetofbuiltinservices.
UseRPCEncoded,RPCLiteralorDocumentLiteralmessagingforSOAP1.1requests
andDocumentLiteralmessagingforSOAP1.2requests.
MakeIntegrationServerservicesavailabletoclientsviaRPCEncodedorDocument
Literalbindings.Formoreinformationaboutbindings,seetheWebServices
DevelopersGuide.
22
2
HTTP
ListenerDispatcher
HTTP
Client
3
SOAP
Default
Processor
Service
Service
Service
Service
Service
Service
Service
Service
Service
Service
Service
Stage 1
Where...
Is...
hostName
ThenumericIPaddressornameofthewebMethodsIntegration
Server.
portNum
ThenumberofaportonwhichhostNameacceptsHTTPorHTTPS
requests.
processDirective
TheprocessdirectiveassociatedwiththerequestedSOAPprocessor.
TheprocessdirectiveisauniquenamethatyouassigntoaSOAP
processorwhenyouregisteritontheIntegrationServer.If
processDirectiveisomittedorsettodefault,themessageispassed
tothedefaultSOAPprocessor.TheWebServicesprocessoristhe
defaultprocessor;providedwithwebMethodsIntegrationServer.
23
Stage 2
24
Stage 3
Stage 4
Description
soapRequestData
ThesoapRequestDataobjectcontainingthemessagethatyouwantto
send.Youconstructandpopulatethisobjectusingtheservers
messagecompositionservices(forexample,createSoapData,
addHeaderEntry,addBodyEntry).
address
TheURLwheretheSOAPmessageistobesent.
Example: http://servername:5555/soap/rpc
auth
Optional.TheusernameandpasswordthattheIntegrationServer
mustsupplywhenitconnectstothetargetserver.
25
Input Parameter
Description
validateSOAP
Optional.Indicateswhethertheresponsemessagewillbevalidated
againsttheSOAPschema.
SOAPAction
Setto...
To...
true
Validatetheresponsemessageandthrowanexception
iftheresponsedoesnotconformtotheSOAPschema.
false
Bypassthevalidationprocess(default).
Optional.ValuetowhichyouwanttosettheSOAPActionHTTP
header.
Note: TheSOAPActionheaderwasrequiredbytheinitialSOAP
specificationbuthassincebeendeprecated.TheIntegrationServer
doesnotusetheSOAPActionheaderandacceptsSOAPmessages
thatomitit.Ifyouaredesigningacompletelynewsolution,we
recommendthatyouavoidusingtheSOAPActionheader.However,
ifyouexchangeSOAPmessageswithsystemsthatrequirea
SOAPActionheader,thisparameterallowsyoutosetit.
contentType
Optional.SpecifiesthevalueofContentTypeintheHTTPheader.
loadAs
Optional.SpecifiestheformatofthesoapResponseData.Defaultis
streamforanHTTPserviceandbyteArrayStreamforanHTTPS
service.
timeout
Set to...
To...
stream
Returntheresponsebodyasajava.io.InputStreamobject.
UsethissettingtoinvokeanHTTPWebservice.
bytes
Returntheresponsebodyasabytearray.Usethissetting
ifthemessagebodywillbeusedasinputtoaservicethat
operatesonentireHTMLorXMLdocuments.
byteArray
Stream
Readtheresponsestreamfullyandconverttoa
java.io.ByteArrayStreamobject.Thissettingprevents
datalossoratruncatedSOAPresponseiftheconnection
closesprematurely.UsethissettingtoinvokeanHTTPS
Webservice.
Optional.Time(inmilliseconds)towaitforaresponsefromthe
remoteserverbeforetimingoutandterminatingtherequest.The
defaultvalueistowaitforever.
26
ThisservicereturnsasoapResponseDataobjectthatcontainstheresponsedocument
returnedbythetargetserver.Youusetheserversdataretrievalservices(forexample,
getHeaderEntries,getBody)toretrieveinformationfromthemessage.
FormoreinformationaboutsendingSOAPmessagesfromtheIntegrationServer,see
ComposingandSendingSOAPMessagesonpage 51.
Description
address
AstringspecifyingtheHTTPaddressoftheserveronwhichthe
remoteprocedureresides.(Ifyouaresubmittingtherequesttoa
webMethodsIntegrationServer,remembertodirectittothe
RPCprocessorasshowninthefollowingexample.)
Example: http://servername:5555/soap/rpc
reqParms
Adocument(anIDataobject)whoseelementsrepresentthe
inputparametersthataretobepassedtotheremoteprocedure.
Forexample,ifyouweretopassthreestringparameters,acct,
amt,andorg,containingthevalues,Cash,150.00 andSales,
reqParmswouldcontainthefollowing:
Key
Value
acct
Cash
amt
150.00
org
Sales
Atruntime,thevaluesinreqParmsareXMLencodedbythe
messagecoder.Foradescriptionofthisprocess,seeEncoding
theInputParametersfortheRemoteProcedureCallonpage 74.
27
Input Parameter
Description
method
Adocument(anIDataobject)specifyingtheQNameofthe
requestedprocedure,where:
auth
Key
Description
namespaceName
Astringspecifyingthenamespaceportion
oftheproceduresQName.
localName
Astringspecifyingthelocalportionofthe
proceduresQName.
Adocument(anIDataobject)specifyingtheusernameand
passwordthataretobesubmittedtotheserverspecifiedin
address,where:
Key
Description
type
Astringspecifyingthetypeof
authenticationthattheserveruses.Settype
tobasic.
user
Astringspecifyingtheusernamethatisto
bepresentedtotheserver.
pass
Astringspecifyingthepasswordforthe
usernamespecifiedinuser.
targetInputSignature
Optional.Astringspecifyingthefullyqualifiednameofthe
documenttypethatistobeusedtovalidateandencodethe
contentsofreqParms.Foradescriptionofhowthemessagecoder
usestargetInputSignature,seeEncodingtheInputParametersfor
theRemoteProcedureCallonpage 74.
targetOutputSignature
Optional.Astringspecifyingthefullyqualifiednameofthe
documenttypethatistobeusedtovalidateanddecodethe
outputvaluereturnedbytheremoteprocedure.Fora
descriptionofhowthemessagecoderusestargetInputSignature,
seeDecodingtheOutputParametersfromaRemoteProcedure
Callonpage 76.
28
Input Parameter
Description
SOAPAction
Optional.Astringspecifyingthevaluetowhichyouwantthe
SOAPActionHTTPheaderset.
Note: TheSOAPActionheaderwasrequiredbytheinitialSOAP
specification,buthassincebeendeprecated.TheIntegration
ServerdoesnotusetheSOAPActionheaderandacceptsSOAP
messagesthatomitit.
Ifyouaredesigningacompletelynewsolution,werecommend
thatyouavoidusingtheSOAPActionheader.However,ifyou
exchangeSOAPmessageswithsystemsthatrequirea
SOAPActionheader,thisparameterallowsyoutosetit.
contentType
Optional.AstringthatspecifiesthevalueofContentTypeinthe
HTTPheader.
Set to...
To...
text/xml;
charset=utf-8
Default.SpecifythecontenttypeasXML
andthecharacterencodingofthetextas
UTF8.
text/xml
SpecifythecontenttypeasXML.Sincethe
charsetparameterisnotspecified,the
characterencodingofthetextdefaultsto
USASCII.
encoding
Optional.Specifiestheencodingmethod.DefaultvalueisUTF8.
loadAs
Optional.SpecifiestheformatofthesoapResponseData.Default
valueisstreamforanHTTPserviceandbyteArrayStreamforan
HTTPSservice.
Set to...
To...
stream
Returntheresponsebodyasa
java.io.InputStreamobject.Usethisoption
toinvokeanHTTPWebservice.
byteArrayStream
Readtheresponsestreamfullyandconvert
toajava.io.ByteArrayStreamobject.This
settingpreventsdatalossoratruncated
SOAPresponseiftheconnectioncloses
prematurely.Usethissettingtoinvokean
HTTPSWebservice.
29
Input Parameter
Description
timeout
Optional.Time(inmilliseconds)towaitforaresponsefromthe
remoteserverbeforetimingoutandterminatingtherequest.The
defaultvalueistowaitforever.
Thisservicereturnsadocument(anIDataobject)calledrespParms,whichcontainsthe
resultsfromtheremoteprocedure.
ForinformationaboutsubmittingSOAPremoteprocedurecallsfromtheIntegration
Server,seeUsingtheSOAPRPCClientonpage 65.
30
31
Note: TheSOAPprocessorsthatwereprovidedwithpreviousversionsofIntegration
Serveraredeprecated,butarestillsupported.CustomSOAPprocessorscreatedfor
previousversionsofIntegrationServerarealsodeprecated.
32
Description
default
ThisisabasicprocessorthatinvokesaservicebasedontheQName.
Thisprocessorpassestheentireenvelopetotheservicesthatit
invokes.TheWebServicesprocessoristhedefaultprocessor
providedwithIntegrationServer7.1.
Forinformationaboutthedefaultprocessor,seeUsingtheDefault
SOAPProcessoronpage 39.
RPC
ThisprocessorprocessesSOAPremoteprocedurecalls(messages
thatconformtotheremoteprocedurecall(RPC)sectionoftheSOAP
specification).
ForinformationabouttheRPCprocessor,seeAppendix D,Using
theSOAPRPCProcessor.
Note:TheSOAPRPCProcessorisdeprecatedforIntegrationServer
7.1.ItissupportedonlyforWebserviceconnectorscreatedinearlier
versionsofIntegrationServer.
Universal Names
Auniversalnameisauniquepublicidentifierthatexternalprotocolsusetoreferencea
serviceonawebMethodsIntegrationServer.AQNameisaqualifiedname,madeupofa
namespaceURI,alocalpart,andaprefix.
TheSOAPprocessorroutesmessagestoservicesbasedonaqualifiedname(QName).If
theSOAPmessageincludesanHTTPheader,theQNameisderivedfromtheSOAPAction
(SOAP1.1)orActionHTTP(SOAP1.2)fieldoftheheader.IftheSOAPmessagedoesnot
includeanHTTPheader,theQNameisderivedfromthefirstelementintheSOAPbody.
ThestructureofauniversalnameisthesameasthestructureofaQNameinanXML
namespaceandconsistsoftwoparts:anamespacenameandalocalname.
The namespace name isaqualifierthatdistinguishesawebMethodsIntegrationServer
servicefromotherresourcesontheInternet.Forexample,theremightbemany
resourceswiththenameAcctInfo.AnamespacenamedistinguishesoneAcctInfo
resourcefromanotherbyspecifyingthenameofthecollectiontowhichitbelongs
(similartothewayinwhichastateorprovincenameservestodistinguishcitieswith
thesamenameforexample,Springfield,Illinois,versusSpringfield,Ontario).
LikenamespacesinXML,thenamespaceportionofauniversalnameisexpressedasa
URI.Thisservestoassureuniqueness,becauseURIsarebasedongloballyunique
domainnames.
33
Thenamespaceportionoftheuniversalnamecanconsistofanycombinationof
charactersthatformavalidabsoluteURI(relativeURIsarenotsupported).For
example,thefollowingareallvalidnamespacenames:
http://www.gsx.com
http://www.gsx.com/gl/journals
http://www.ugmed.ch/rsum
ForacompletedescriptionofwhatmakesupavalidURI,seeRFC3986Uniform
ResourceIdentifiers(URI):GenericSyntaxathttp://www.ietf.org/rfc/rfc3986.txt.
The local nameuniquelyidentifiesaservicewithinaparticularnamespace.Many
webMethodsusersuseaservicesunqualifiednameasitslocalname.Underthis
scheme,aservicenamedgl.journals:closeGLwouldhavealocalnameofcloseGL.
LocalnamesfollowthesameconstructionrulesasNCNamesinXML.Basically,a
localnamecanbecomposedofanycombinationofletters,digits,ortheperiod(.),
dash(),andunderscore(_)characters.
Additionally,itmustbeginwithaletteroranunderscorecharacter(the_character).
Thefollowingareexamplesofvalidlocalnames:
addCustOrder
authorize-Level1
gnrent
ForspecificrulesrelatingtoNCNames,seetheNCNamedefinitioninthe
Namespaces in XML specification athttp://www.w3.org/TR/1999/RECxml
names19990114.
Note: TheservernormalizesUniversalNamesaccordingtoUnicodeNormalizationForm
C,asrecommendedbytheCharacterModel,SOAP,andXMLstandards.Thisensuresthat
namescontainingnonASCIIcharacters(particularlythosewithaccentedorcombining
characters)arerepresentedinastandardway.
Forinformationaboutnormalization,seehttp://www.unicode.org/reports/tr15/(Unicode
StandardAnnex#15)andhttp://www.w3.org/TR/charmod/(CharacterModelforthe
WorldWideWeb).
34
You assign an
explicit universal
name on the
Properties panel in
Developer
Namespace name
Local name
gl.journals:jrnlEntry
http://localhost/gl.journals
jrnlEntry
gl.journals.query:viewJournals
http://localhost/gl.journals.query
viewJournals
orders:postPO
http://localhost/orders
postPO
Important! ToensureinteroperabilitywithothervendorsimplementationsofSOAP,we
recommendthatyoualwaysassignexplicituniversalnamestothoseservicesthatyou
wanttomakeavailabletoSOAPclients.
Note: EarlierversionsofthewebMethodsSOAPimplementationdidnotincludethe
http://localhost/prefixaspartofanimplicitname.However,theserverisbackward
compatible.ItwillresolveQNamesthatclientssubmitineithertheoldform(withoutthe
httpprefix)orthenewform(withthehttpprefix).
Note: Itispossibleforanimplicitnametomatchtheexplicitnameofanotherservice.
Whenthisconditionexists,theexplicitnametakesprecedence.Thatis,whenauniversal
nameisrequested,theIntegrationServersearchesitsregistryofexplicitnamesfirst.Ifit
doesnotfindtherequestednamethere,itlooksforamatchingimplicitname.
35
StartDeveloperandconnecttotheserveronwhichtheserviceresides.
FromtheNavigationpanel,opentheservicewhoseuniversalnameyouwantto
assign,edit,orview.
Ifyouwanttoassignoredittheservicesuniversalname,specifythefollowinginthe
Universal name categoryoftheservicesPropertiespanel:
In this field...
Specify...
Namespace name
TheURIthatwillqualifythelocalnameofthisservice.The
namecanbecomposedofanysequenceofcharactersexcept
leadingandtrailingwhitespacecharacters
Local name
Anamethatuniquelyidentifiestheservicewithinthe
collectionencompassedbyNamespace name.Thenamecanbe
composedofanycombinationofletters,digits,ortheperiod
(.),dash(),andunderscore(_)characters.Additionally,itmust
beginwithaletterortheunderscorecharacter.
Note: ManywebMethodsusersusetheunqualifiedportionof
theservicenameasthelocalname.
OntheFilemenu,clickSavetosavethenewsettings.
Important! Whenyouassignanexplicituniversalnametoaservice,youmustentervalues
inboththeNamespace nameandLocal namefields.Ifyouspecifyonefieldbutnottheother,
youwillreceiveanerrormessagewhenyouattempttosavetheservice.Youwillnotbe
permittedtosavetheserviceuntilyouspecifybothpartsoftheuniversalname.
Note: Ifyoumoveaservice,orafoldercontainingaservice,Developerretainstheservices
explicituniversalname.Ifyoucopyaserviceorafoldercontainingaservice,Developer
doesnotretaintheservicesexplicituniversalname.Youmustrestoretheuniversalname
forthecopiedservicebyeditingtheservicesproperties.
StartDeveloperandconnecttotheserveronwhichtheserviceresides.
FromtheNavigationPanel,opentheservicewhoseuniversalnameyouwantto
delete.
36
OntheFilemenu,clickSavetosavethenewsettings.
Description
pub.universalName:list
Returnsadocumentlistcontainingtheentriesinthecurrent
registry.Eachdocumentinthelistrepresentsanentryinthe
registryandcontainsaservicesfullyqualifiedwebMethods
nameandbothpartsofitsexplicituniversalname.
pub.universalName:find
Returnsthefullyqualifiedservicenameforaspecifiedexplicit
universalname.
37
ForinformationaboutbuildingservicesthatcomposeandsendSOAPmessages,see
ComposingandSendingSOAPMessagesonpage 51.
ForinformationaboutbuildingaservicesthatsubmitSOAPRPCmessagestoremote
servers,seeUsingtheSOAPRPCClientonpage 65.
Note: SOAPRPCmessagesareonlysupportedbySOAP1.1.
38
39
http://rubicon:5555/soap/ws/example:calculator
OR
http://rubicon:5555/soap/
40
Ifthedefaultprocessorreceivedamessagewiththebodyshownbelow,itwouldinvoke
theservicewhoseimplicituniversalnameismadeupofthenamespacename
GL.journals.queriesandthelocalnameviewJournal.(Recallthatanimplicitnameisderivedby
combiningaservicesfullyqualifiedservicenamewiththeprefixstring
http://localhost/.)
.
.
.
<SOAP-ENV:Body>
<GL:viewJournal xmlns:GL="http://localhost/GL.journals.queries">
<acct>Cash</acct>
<fromDate>01/01/2000</fromDate>
<toDate>03/31/2000</toDate>
</GL:viewJournal>
</SOAP-ENV:Body>
.
.
.
Note: TheIntegrationServerexpectstheQNameintheincomingSOAPmessagetobe
normalizedaccordingtoUnicodeNormalizationFormC.Normalizationassuresthat
namescontainingnonASCIIcharacters(particularlythosewithaccentedorcombining
characters)arerepresentedinastandardway.IftheclienthasnotnormalizedtheQName,
theIntegrationServermightnotbeabletoproperlymatchitwithauniversalnameinits
registry.
41
BeawarethatneitherthedefaultprocessornortheSOAPmessagehandleraddsany
contenttotheresponsemessageinsoapResponseData.Itistheresponsibilityofthetarget
servicetopopulatesoapResponseDatawithmessagecontent.
soapRequestData(oftypeObject)
soapResponseData(oftypeObject)
Outputs:
soapResponseData(oftypeObject)
Youcanusepub.soap.utils:requestResponseSpectospecifytheinputsandoutputsforthe
service.
2
Use the SOAP data-retrieval utilities to extract information from the message. Thedata
retrievalutilitiesareservicessuchasgetBodyandgetHeaderEntries,whichyouuseto
fetchelementsfromSOAPmessageobjects.Theseservicesreturntherequested
elementasanXMLnode(oranarrayofXMLnodes).Toextractdatafromthe
returnednode,youqueryitusingthe pub.xml:queryXMLNode service.
42
Important! BeawarethatyoucannotqueryasoapRequestDataobjectdirectly.Toextract
informationfromsoapRequestData(orsimilarSOAPobjects,suchassoapDataand
soapResponseData),youmustuseoneofthedataretrievalservicestoextractan
elementofthemessage(forexample,theheader,thebody,ortheentireenvelope)and
querytheresultingXMLnode.
3
Note: Asabestpractice,werecommendthatyoualwaysassignexplicituniversalnames
totargetservices.
Error Handling
Ifatargetservicethrowsanexceptionwhileitisprocessing,themessagehandler
automaticallyreturnsaSOAPfaulttotheclient.Dependingonthetypeoferrorthat
occurs,theSOAPfaultmayincludeadetailelement,whichprovidesspecific
informationabouttheexception.ThiselementwillincludeastackTraceelementifthe
clientisamemberoftheDevelopersorAdministratorsusergroup.
43
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
When the target service throws
<faultcode>
an exception, the message
SOAP-ENV:Client
handler returns a SOAP fault...
</faultcode>
<faultstring>
[ISS.088.9134] Exception occurred while processing body of the message
</faultstring>
...containing an
error message...
<faultactor>
http://hostName:portNum/soap/processorName
</faultactor>
<detail xmlns="http://www.webmethods.com/2001/10/soap/">
<exception>
<className>nameOfClassThatWasThrown</className>
<message xml:lang="en">detailedMessageIssuedbyException</message>
...and details about
the error.
<stackTrace xml:lang="en-US">textFromStackTrace</stackTrace>
</exception>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
Note: TheSOAPmessagereturnedtotheclientwhenanexceptionoccurscontainsonlythe
SOAPfault.Itdoesnotincludeanymessagecontent(forexample,headerentries,body
entries)thatthetargetservicemayhaveinsertedintosoapResponseDatabeforethe
exceptionoccurred.
FormoreinformationaboutSOAPfaults,seeAppendix A,SOAPFaultsReturnedbythe
IntegrationServer.
44
Note: IfyouwanttoexecutethisservicefromDeveloper,enabletheacquireSOAPMessage
stepatthetopoftheflow.ThisservicegeneratesatestsoapRequestDataand
soapResponseDataobject,whichsimulatesthepipelinethatthisservicewouldreceivefrom
thedefaultSOAPprocessor.Ifyouwanttoexecutethisserviceasatargetofthedefault
processor,disabletheacquireSOAPMessagestep.
Target service that extracts data from a SOAP message and composes a response
45
Description
Step 1
Toextractthebusinessdatafromthemessage,thisserviceexecutesthe
followingsteps:
Step
Description
1.1
getBodyThisstepretrievesthebodyofthemessagefrom
soapRequestData.ItreturnsanXMLnodethatrepresentstheentire
Bodyelement.
1.2
queryXMLNodeThisstepextractsthebusinessdatabyexecutingthe
followingXQLqueriesagainsttheXMLnodereturnedinStep 1.1.
Var Name
XQL Query
acct
/RFQ:quoteReq/acct/text()
stock
/RFQ:quoteReq/jobSpecs/stock/text()
copies
/RFQ:quoteReq/jobSpecs/copies/text()
ink
/RFQ:quoteReq/jobSpecs/ink/text()
46
Description
IfyouexaminethequeryXMLNodestepwithDeveloper,youwillsee
thatitalsoexecutesthefollowingquery,whichextractstheentire
BodynodetoaString:
Var Name
XQL Query
wholeNode
/source()
Thisqueryisincludedfordebuggingpurposes.Itallowsyouto
examinetherawXMLassociatedwiththeBodynode.Ifyouwereto
putthisserviceintoproduction,youwouldomitthisquery.
1.3
Step 2
MAPThisstepmapstheresultsfromStep 1.2toadocumentthatwill
beprocessedbythebusinessservicesinthenextstep.Italsocleansup
thepipelinebydroppingunneededvariables.
47
Description
Step 3
The service
generates a
header entry
called msgInfo..
...and a body
entry called
quoteResp
Toproducethisresponsemessage,theserviceexecutesthefollowingsteps:
Step
Description
3.1
Thissequenceexecutesthefollowingservicestoaddabodyentryto
soapResponseData.
Step
Description
3.1.1
documentToXMLStringThisservicegeneratesa
documentcalledRFQ:quoteResp,whichdescribesthe
bodyentrytobeinsertedintosoapResponseData.Thenit
convertsthatdocumenttoXML.Notethatthe
documentincludesafieldcalled@xmlns:RFQ,which
setsthenamespaceattributeintheresultingXML.
48
Description
3.2
3.3
3.1.2
xmlStringToXMLNodeThisstepconvertstheXMLString
toanXMLnodeobject.(Recallthattoaddabodyentry
tosoapResponseData,youmustplacetheentryinthe
pipelineasanXMLnode.)
3.1.3
addBodyEntryThisstepaddsthebodyentryto
soapResponseData.
Thissequenceexecutesthefollowingservicestoaddaheaderentryto
soapResponseData.
Step
Description
3.2.1
documentToXMLStringThisstepcreatesadocument
calledAUDIT:msgInfo,whichdescribestheheaderentry
tobeinsertedintosoapResponseDataandconvertsthe
documenttoanXMLString.Notethatthedocument
containsafieldcalled@xmlns:AUDIT,whichsetsthe
namespaceattributeintheresultingXML.
3.2.2
xmlStringToXMLNodeThisstepconvertstheXMLString
toanXMLnode.(Recallthattoaddaheaderentryto
soapResponseData,youmustplacetheentryinthe
pipelineasanXMLnode.)
3.2.3
addHeaderEntryThisstepaddstheheaderentryto
soapResponseData.
49
Description
IfyouexaminethecontentsoffinishedMessageontheResultspanel,
youwillseeaSOAPmessagesimilartotheonebelow.Ifthisservice
wereinvokedthroughthedefaultprocessor,themessagehandler
wouldsendthismessagetotheclient.
50
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Composing a SOAP Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Sending a SOAP Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
51
Overview
TheIntegrationServerprovidesasetofservicesthatallowyoutogenerateSOAP
messagesandsendthemacrossthenetworkviaHTTP.
Important! IfyouwanttouseSOAPtosubmitremoteprocedurecalls,youcomposethose
messageswithSOAPRPCclient.ForinformationaboutsendingSOAP1.1RPCmessages,
seeUsingtheSOAPRPCClientonpage 65.
Description
encoding
Optional.Specifiestheencodingmethod.DefaultvalueisUTF8.
soapProtocol
Optional.IndicatestheSOAPprotocolthattheemptySOAP
objectcomplieswith.Thedefaultvalueisreadfromthe
watt.server.SOAP.defaultProtocolproperty.
Set to...
To...
SOAP1.1
protocol
IndicatetheSOAPobjectcomplieswithSOAP1.1.
SOAP1.2
IndicatetheSOAPobjectcomplieswithSOAP1.2.
52
Add content to soapData using any of the following message-composition services. Youcan
executetheseservicesinanyorder.
Use this service...
To...
pub.soap.utils:addHeaderEntry
Addasingleheaderentrytothemessage.Ifyour
messageincludesmultipleheaderentries,execute
addHeaderEntryonceforeachentrythatyouwantto
add.
pub.soap.utils:addBodyEntry
Addasinglebodyentrytothemessage.Ifyour
messageincludesmultiplebodyentries,execute
addBodyEntryonceforeachentrythatyouwanttoadd.
pub.soap.utils:addTrailer
Addatrailertothemessage.Ifyourmessageincludes
multipletrailers,executeaddTraileronceforeachtrailer
thatyouwanttoadd.
Note:ThisserviceisonlyavailablewithSOAP1.1.
Themessagecompositionservicesrequiretwoinputs:thesoapDataobjecttowhichyou
areaddingcontentandanXMLnoderepresentationoftheelementthatyouwanttoadd.
AnXMLnodeisanobjectthatcontainsaparsedrepresentationofanXMLelement.You
cangenerateanXMLnode,usingthepub.xml:documentToXMLStringand
pub.xml:xmlStringToXMLNode services.ForanexampleofhowtocreateanXMLnode,see
Step 2andStep 3inthesampleshownonpage 54.
Note: BecausemostSOAPimplementationsrequirenamespacequalifiedheaderandbody
entries,theaddHeaderEntryandaddBodyEntryserviceswill,bydefault,throwexceptionsifthe
XMLnodeyoupasstothemisnotnamespacequalified.Thispreventsyoufrom
generatingandtransmittingSOAPmessagesthatarelikelytoberejectedbytheir
recipients.
EarlierversionsoftheIntegrationServerdidnotenforcenamespacechecking.Ifyouhave
asolutionthatproducesunqualifiednodes,youcansuppresstheserversdefault
namespacecheckingbehavior.Forinformation,seethe
watt.server.SOAP.enforceMsgPartNSparameterdescriptioninAppendix C,SOAP
RelatedServerParameters.
WhenyoufinishpopulatingthesoapDataobject,youusepub.client:soapHTTPtosendthe
SOAPmessagetoaserverviaHTTP.Foradetailedprocedure,seeSendingaSOAP
Messageonpage 57.
53
WmSamplespackage.YoucanfindtheWmSamplespackageinthecertifiedsamplesarea
oftheKnowledgeBaseontheAdvantageWebSite.Youmaywanttoopenthisexample
withDevelopertoseehowthepipelineismappedbetweensteps.
Note: Thefollowingisatwopartexample.Thefirstpartillustrateshowtocomposea
SOAPmessage.Thispartisexplainedbelow.Thesecondpartillustrateshowtosendthe
SOAPmessage.ItisexplainedinSendingaSOAPMessageonpage71.
Composing a SOAP message
Description
Step 1
Name
Description
encoding
Optional.Specifiestheencodingmethod.Defaultvalueis
UTF8.
soapProtocol
Optional.IndicatestheSOAPprotocolthattheempty
SOAPobjectcomplieswith.Thedefaultvalueisreadfrom
thewatt.server.SOAP.defaultProtocolproperty.
Set to...
To...
SOAP1.1
protocol
IndicatetheSOAPobjectcomplieswith
SOAP 1.1.
54
Description
SOAP1.2
Step 2
IndicatetheSOAPobjectcomplieswith
SOAP 1.2.
Notethatbothentriesarenamespacequalified,asrequiredbytheSOAP
specification.
Note: Insteadofbuildingheaderentriesmanually,youcanusethe
IntegrationServersenhancedWebservicedescriptorcapabilities.
Toaccomplishthis,theserviceexecutesthefollowingsteps:
Step
Description
2.1
generateAuditHeaderThishelperserviceconvertsa
documentrepresentation(anIDataobject)ofthefirst
headerentrytoanXMLnode.(Recallthattoaddaheader
entrytoasoapDataobject,youmustplacetheentryinthe
pipelineasanXMLnode.)Youcanexaminethehelper
servicetounderstandhowthisisaccomplished.
2.2
addHeaderEntryThisstepaddsthefirstheaderentryto
soapData.
2.3
currentDateThisservicegeneratesatimestamp,which
willbeinsertedintothesecondheaderentryinthenext
step.
2.4
generatePostmarkHeaderThishelperserviceconvertsa
documentrepresentationofthesecondheaderentrytoan
XMLnode.Youcanexaminethehelperserviceto
understandhowthisisaccomplished.
2.5
addHeaderEntryThisstepaddsthesecondheaderentryto
soapData.
55
Description
Step 3
Toaccomplishthis,theserviceexecutesthefollowingsteps:
Step 4
Step
Description
3.1
generateBodyEntry_GLThishelperserviceconvertsa
documentrepresentationofthebodyentrytoanXML
node.(RecallthattoaddabodyentrytoasoapDataobject,
youmustplacetheentryinthepipelineasanXMLnode.)
Youcanexaminethehelperservicetounderstandhowthis
isaccomplished.
3.2
addBodyEntryThisstepaddsthebodyentrytosoapData.
56
Description
IfyouexaminethecontentsofstringontheResultspanel,youwillseea
SOAPmessagesimilartothefollowing:
57
Description
address
AstringspecifyingtheHTTPaddresstowhichyouwantthe
messageposted.
Example: http://servername:5555/soap/rpc
auth
Adocument(anIDataobject)specifyingtheusernameand
passwordthattheservicewillsubmittothetargetserver:
Name
Description
type
Astringspecifyingthetypeofauthenticationthatthe
servicewillperform.Settypetobasic.
user
Astringspecifyingtheusernamethatthisservice
willusetoaccessaprotectedresource.
password
Astringspecifyingthepasswordthatthisservicewill
usetoaccessaprotectedresource.
Youmayalsoprovidethefollowingoptionalparameters:
Name
Description
validateSoap
Astringindicatingwhetherornotyouwanttherequestand
responseenvelopetobevalidatedagainsttheSOAPschema.
Set to...
To...
true
ValidatetheSOAPenvelopegeneratedby
soapHTTPandtheonereceivedbysoapHTTP.
WhenvalidateSoapistrue,theservicewill
throwanexceptioniftherequestor
responsedoesnotconformtotheSOAP
schema.
58
Name
Description
false
SOAPAction
Bypassthevalidationprocess.
AstringspecifyingthevalueoftheSOAPActionHTTPheader.
Note: TheSOAPActionheaderwasrequiredbytheinitialSOAP
specification,buthassincebeendeprecated.TheIntegration
ServerdoesnotusetheSOAPActionheaderandacceptsSOAP
messagesthatomitit.
Ifyouaredesigningacompletelynewsolution,werecommend
thatyouavoidusingtheSOAPActionheader.However,ifyou
exchangeSOAPmessageswithsystemsthatrequirea
SOAPActionheader,thisparameterallowsyoutosetit.
contentType
AstringspecifyingthevalueofContentTypeintheHTTP
header.
Set to...
To...
text/xml;
charset=utf-8
Default.SpecifythecontenttypeasXML
andthecharacterencodingofthemessage
textasUTF8.
text/xml
SpecifythecontenttypeasXML.Sincethe
charsetparameterisnotspecified,the
characterencodingofthemessagetext
defaultstoUSASCII.
timeout
Optional.Time(inmilliseconds)towaitforaresponsefromthe
serverhostingtheremoteprocedurebeforetimingoutand
terminatingtherequest.Thedefaultvalueistowaitforever.
loadAs
Optional.SpecifiestheformatofthesoapResponseData.Defaultis
streamforHTTPandbyteArrayStreamforHTTPS.
Set to...
To...
stream
Returntheresponsebodyasa
java.io.InputStreamobject.Usethisoption
toinvokeanHTTPWebservice.
59
Name
Description
bytes
Returntheresponsebodyasabytearray.
Usethissettingifthemessagebodywillbe
usedasinputtoaservicethatoperateson
entireHTMLorXMLdocuments.
byteArrayStream
Readtheresponsestreamfullyandconvert
toajava.io.ByteArrayStreamobject.This
settingpreventsdatalossoratruncated
SOAPresponseiftheconnectioncloses
prematurely.
Use the data-retrieval services to fetch information from the response message.Iftheserver
returnsaSOAPmessage,soapHTTPreturnsthemessageinaSOAPobjectcalled
soapResponseData.ToretrievethedatainsoapResponseData,youuseanyofthe
followingdataretrievalservices.
Use this service...
To...
pub.soap.utils:getBody
RetrievethebodyasasingleXMLnode.
pub.soap.utils:getBodyEntries
RetrievethecontentsofthebodyasanarrayofXML
nodes,whereeachelementinthearrayrepresentsa
singlebodyentry.
pub.soap.utils:getDocument
RetrievetheSOAPenvelopeasanXMLnode.
pub.soap.utils:getHeader
RetrievetheheaderasasingleXMLnode.
pub.soap.utils:getHeaderEntries
Retrievethecontentsoftheheaderasanarrayof
XMLnodes,whereeachelementinthearray
representsasingleheaderentry.
pub.soap.utils:getTrailers
RetrievethetrailersasanarrayofXMLnodes,where
eachelementinthearrayrepresentsasingletrailer.
ThedataretrievalservicesreturnanXMLnode(oranarrayofXMLnodes)asoutput.
ToextractinformationfromanXMLnode,youcanqueryitwiththe
pub.xml:queryXMLNode service.SeeStep 2inthesampleflowshownonpage 62foran
exampleofhowtodothis.
ThesoapHTTPservicealsoreturnsastatusparameter,whichyoucanusetotestthe
resultsbeforeprocessingthem.
60
Output Parameter
Description
soapStatus
AstringindicatingwhethertheSOAPrequestmessagewas
processedsuccessfully,where:
A value of...
Indicates that...
Theremoteserversuccessfullyprocessedthe
SOAPrequestmessageandreturnedaSOAP
responsemessage.
TheremoteserverreturnedaSOAPfault,
indicatingthattheSOAPrequestmessagewas
received,butwasnotprocessedsuccessfully.
TheserverreturnedanerrorthatwasnotaSOAP
fault.ThisindicatesthatsometypeofHTTPerror
occurred(often,anHTTP404).Youcancheckthe
statuselementinheadertodeterminewhattypeof
HTTPerroroccurred.
Foranexampleofhowtotestthesevalues,seeStep 2inthefollowingexample.
61
Description
Step 1
Description
address
Thisparameterissetto:
http://localhost:5555/soap/inbox
ThisURLassumesthattheIntegrationServerisrunningon
yourlocalmachineandislisteningforHTTPrequestson
port5555.Ifyourserverisrunningonadifferentmachine
orport,modifythehostnameandportportionsofthis
URL.
62
Description
auth
Thisdocumentspecifiestheusernameandpasswordthat
thisservicewillusetoconnecttotheIntegrationServer.
ThesevaluesaremappedfromtheuserNameandpassword
parametersthatthisservicetakesasinput.(Whenyou
executethisservicefromDeveloper,youarepromptedfor
thesevalues.)
Thisexamplesubmitsitsmessagetothe
customProc_MsgQueueprocessor,whichiscontrolledby
theDevelopersACL.Tosubmitamessagetothis
processor,youmustprovideausernameandpassword
thatbelongstotheDevelopersACL.
Step 2
Step 3
The service...
Composesanerrormessageandthrowsanexception.A
valueof2indicatesthatanHTTPfailureoccurred.
Extractserrorinformationfromthereturnedmessageand
throwsanexception.Avalueof1indicatesthattheremote
serverreturnedaSOAPfault.
ProcessesthecontentsofsoapResponseData.Avalueof0
indicatesthattheremoteserverreceivedandsuccessfully
processedtheSOAPmessage.
63
Description
IfyouexaminethecontentsofstringontheResultspanel,youwillseea
SOAPmessagesimilartothefollowing:
64
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Using pub.client:soapRPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
The Message Coder and the RPC Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
65
Overview
TheSOAPRPCclient(pub.client:soapRPC)allowsyoutocallproceduresonremote,SOAP
enabledservers.
TousetheSOAPRPCclientsuccessfully,youneedtohavethefollowinginformation
abouttheprocedurethatyouarecalling:
TheHTTPaddressoftheserveronwhichitresides.
Thecredentials(usernameandpassword),ifany,thatarerequiredtoaccessit.
Thequalifiedname(QName)associatedwiththeprocedure.
Thenamesanddatatypesoftheparametersthattheprocedureexpectsasinputand
returnsasoutput.
Using pub.client:soapRPC
ThefollowingdescribesthegeneralstepsyoutaketosubmitaSOAPremoteprocedure
callfromthewebMethodsIntegrationServer.
1
Invoke pub.client:soapRPCwiththefollowinginputparameters:
Input Parameter
Description
address
AstringspecifyingtheHTTPaddressoftheserveronwhich
theremoteprocedureresides.(Ifyouaresubmittingthe
requesttoawebMethodsIntegrationServer,besuretodirect
ittotheRPCprocessorasshowninthefollowingexample.)
Example: http://rubicon:5555/soap/rpc
reqParms
Adocument(anIDataobject)whoseelementsrepresentthe
inputparametersthataretobepassedtotheremote
procedure.
Forexample,ifyouweretopassthreestringparameters,acct,
amt,andorg,containingthevalues,Cash,150.00 andSales,
reqParmswouldcontainthefollowing:
Key
Value
acct
Cash
amt
150.00
org
Sales
66
Input Parameter
Description
Atruntime,thevaluesinreqParmsareXMLencodedbythe
messagecoder.Foradescriptionofthisprocess,see
EncodingtheInputParametersfortheRemoteProcedure
Callonpage 74.
method
auth
targetInputSignature
Adocument(anIDataobject)specifyingtheQNameofthe
requestedprocedure,where:
Key
Description
namespaceName
Astringspecifyingthenamespace
portionoftheproceduresQName.
localName
Astringspecifyingthelocalportionof
theproceduresQName.
Adocument(anIDataobject)specifyingtheusernameand
passwordthataretobesubmittedtotheserverspecifiedin
address,where:
Key
Description
type
Astringspecifyingthetypeof
authenticationthattheserveruses.Set
typetobasic.
user
Astringspecifyingtheusernamethatis
tobepresentedtotheserver.
pass
Astringspecifyingthepasswordforthe
usernamespecifiedinuser.
Optional.Astringspecifyingthefullyqualifiednameofthe
documenttypethatistobeusedtovalidateandencodethe
contentsofreqParms.Foradescriptionofhowthemessage
coderusestargetInputSignature,seeEncodingtheInput
ParametersfortheRemoteProcedureCallonpage 74.
targetOutputSignature Optional.Astringspecifyingthefullyqualifiednameofthe
documenttypethatistobeusedtovalidateanddecodethe
outputvaluereturnedbytheremoteprocedure.Fora
descriptionofhowthemessagecoderuses
targetInputSignature,seeDecodingtheOutputParameters
fromaRemoteProcedureCallonpage 76.
67
Input Parameter
Description
SOAPAction
Optional.AStringspecifyingthevaluetowhichyouwant
theSOAPActionHTTPheaderset.
Note: TheSOAPActionheaderwasrequiredbytheinitial
SOAPspecification,buthassincebeendeprecated.The
IntegrationServerdoesnotusetheSOAPActionheaderand
acceptsSOAPmessagesthatomitit.
Ifyouaredesigningacompletelynewsolution,we
recommendthatyouavoidusingtheSOAPActionheader.
However,ifyouexchangeSOAPmessageswithsystemsthat
requireaSOAPActionheader,thisparameterallowsyouto
setit.
contentType
Optional.AstringthatspecifiesthevalueofContentTypein
theHTTPheader.
Set to...
To...
text/xml;
charset=utf-8
Default.Specifythecontenttypeas
XMLandthecharacterencodingofthe
textasUTF8.
text/xml
SpecifythecontenttypeasXML.Since
thecharsetparameterisnotspecified,
thecharacterencodingofthetext
defaultstoUSASCII.
encoding
Optional.Specifiestheencodingmethod.Defaultvalueis
UTF8.
loadAs
Optional.SpecifiestheformatofthesoapResponseData.
DefaultvalueisstreamforanHTTPserviceand
byteArrayStreamforanHTTPSservice.
Set to...
To...
stream
Returntheresponsebodyasa
java.io.InputStreamobject.Usethis
optiontoinvokeanHTTPWebservice.
68
Input Parameter
Description
byteArrayStream
timeout
Readtheresponsestreamfullyand
converttoajava.io.ByteArrayStream
object.Thissettingpreventsdatalossor
atruncatedSOAPresponseifthe
connectionclosesprematurely.Usethis
settingtoinvokeanHTTPSWeb
service.
Optional.Time(inmilliseconds)towaitforaresponsefrom
theserverhostingtheremoteprocedurebeforetimingout
andterminatingtherequest.Thedefaultvalueistowait
forever.
Value
status
closed
balance
-4.95
Whendecodingtheresults,themessagecoderusesthedocumenttypenamedin
targetOutputSignature(ifonewasspecified)tovalidatethevaluesinrespParms.Fora
descriptionofthedecodingprocess,seeDecodingtheOutputParametersfroma
RemoteProcedureCallonpage 76.
BesidesrespParms,pub.client:soapRPCreturnsthefollowingvalues,whichyoucanuse
todeterminewhethertherequestwasprocessedsuccessfully:
Output Parameter
Description
soapStatus
AStringindicatingwhethertheremoteprocedurecallwas
processedsuccessfully,where:
A value of...
Indicates that...
Theremoteserversuccessfullyreturnedthe
resultsoftheremoteprocedurecall.
TheremoteserverreturnedaSOAPfault,
indicatingthattheremoteprocedurecallwas
received,butwasnotprocessedsuccessfully.
69
Output Parameter
Description
2
header
soapResponseData
Theserverreturnedanerrorthatwasnota
SOAPfault.Thisindicatesthatsometypeof
HTTPerroroccurred(often,anHTTP404).You
cancheckthestatuselementinheader(below)to
determinewhattypeofHTTPerroroccurred.
Adocument(anIDataobject)containinginformationfromthe
HTTPheaderreturnedbytheremoteserver.headercontainsthe
followingelements:
Key
Value
lines
Adocument(anIDataobject)inwhicheach
entryrepresentsafield(line)oftheresponse
header.Keynamesrepresentthenamesofthe
headerfieldsandkeyvaluesareStrings
containingthevaluesoftheheaderfields.
status
AStringcontainingthestatuscodefromthe
HTTPresponse.Forexample,iftheserver
returnsaHTTP404error,statuswillcontain
404.
statusMessage
AStringcontainingthestatusmessagefromthe
HTTPresponse.
ASOAPobjectcontainingtheentireSOAPresponsemessage.
Youcanextractdatafromthisobjectusingthedataretrieval
servicessuchasgetBodyandgetHeaderEntries.(Foracompletelist
ofdataretrievalservices,seepage 60.)
70
Whenyouexecutethisexample,youwillbepromptedforthefollowingvalues:
For this input parameter...
Enter...
acct
Anystringofcharacters.
amt
Adecimalvalue,suchas150.75or15.00.(Omitcommasfrom
largevalues;otherwise,thevaluewillfailvalidation.)
loc
Anystringofcharacters.
userName
AusernamethatbelongstotheDevelopersACL.
password
Thepasswordfortheusernamethatyouenteredin
userName.
Example of a service that submits a remote procedure call and processes the response
71
Description
Step 1
Description
address
Thisparameterissetto:
http://localhost:5555/soap/rpc
ThisdirectstherequesttotheRPCprocessorona
webMethodsIntegrationServer.ThisURLassumesthat
theIntegrationServerisrunningonyourlocalmachine
andislisteningforHTTPrequestsonport5555.Ifyour
serverisrunningonadifferentmachineorport,modify
thehostnameandportportionsofthisURL.
auth
Thisdocumentspecifiestheusernameandpassword
thatthisservicewillusetoconnecttothewebMethods
IntegrationServer.Thesevaluesaremappedfromthe
userNameandpasswordparametersthatthisservice
takesasinput.(Whenyouexecutethisservicefrom
webMethodsDeveloper,youarepromptedforthese
values.)
Note: WhenyousubmitaSOAPremoteprocedurecall
toanIntegrationServer,yourcredentialsareverified
againsttheACLforthetargetservice.
method
ThisdocumentspecifiestheQNameoftheremote
procedure.Inthisexample,methodissetasfollows:
Key
Value
namespaceName
http://www.expt.com/AUTH/
localName
getAuthCode
OnthewebMethodsIntegrationServer,thisQName
representstheuniversalnameassignedtotheservice
sample.soap:targetSvc_rpcProcSimple.
reqParms
Thisdocumentcontainstheinputparametersthatare
tobepassedtotheremoteprocedure.Notethat
authCodeReq,adocumentthatispartoftheinput
signatureforthisexample,ismappedtoreqParms.
72
Description
targetInputSignature
Thisparameterissetto:
sample.soap.helpers.docTypes:docType_authCodeReq
whichisthenameofadocumenttype.Thisparameter
tellsthemessagecodertovalidatethecontentsof
reqParms(theinputparametersfortheremote
procedure)againstthisdocumenttypeatruntime.It
alsoinstructsthemessagecodertoencodethecontents
ofreqParmsaccordingtothedatatypesspecifiedinthis
documenttype.
targetOutputSignature
Thisparameterissetto:
sample.soap.helpers.docTypes:docType_authCodeResp
whichisthenameofadocumenttype.Thisparameter
tellsthemessagecodertovalidatethecontentsof
respParms(theresultsfromtheremoteprocedure)
againstthisdocumenttypeatruntime.Italsoinstructs
themessagecodertodecodethecontentsofrespParms
accordingtothedatatypesspecifiedinthisdocument
type.
Step 2
Processresponsefromserver.ThissequenceprocessestheresultsfromStep 1.
Todeterminewhethertherequestwasprocessedsuccessfully,thisstepfirst
checksthestateofthesoapStatusparameter:
If soapStatus is...
The service...
Composesanerrormessageandthrowsanexception.
Avalueof2indicatesthatanHTTPfailureoccurred.
Extractserrorinformationfromthereturnedmessage
andthrowsanexception.Avalueof1indicatesthatthe
remoteserverreturnedaSOAPfault.
ProcessesthecontentsofrespParms.Avalueof0
indicatesthattheremoteserverreturnedtheresultsof
therequestedprocedure.
73
java.math.BigDecimal
<amt xsi:type="xsd:decimal">500.00</amt>
java.lang.Float
<amt xsi:type="xsd:float">500.00</amt>
myJavaClass
ForalistofrecognizedJavaclassesandtheXMLdatatypestowhichtheyare
converted,seeAppendix B,Encoding/DecodingDataTypeMapping.
IftargetInputSignatureisset,themessagecoderfirstvalidatesthecontentsofreqParms
againstthedocumenttypespecifiedintargetInputSignature.Iftheparametersin
reqParmsviolatethespecifieddocumenttype,(forexample,ifarequiredparameteris
missingoravalueisnotofthecorrecttype),themessagecoderthrowsanexception.
Iftheparametersarevalid,themessagecoderencodesthemasfollows:
If the parameter is a String,thevalueoftheparameterisencodedaccordingtoits
Content typeproperty.Forexample,ifitsContent typeisnonNegativeInteger
{http://www.w3.org/2001/XMLSchema},thevalueisencodedasan
xsi:type="xsd:nonNegativeInteger".IftheContent typepropertyisnot
specified,themessagecoderencodesthevalueasastring(asthoughitsContent
typewerestring {http://www.w3.org/2001/XMLSchema}).
ThefollowingtableshowshowthemessagecoderwouldencodeaString
parameteramt(withavalueof500.00)fordifferentContentTypevalues.
74
decimal
{http://www.w3.org/2001/XMLSchema}
<amt xsi:type="xsd:decimal">
500.00</amt>
float{http://www.w3.org/2001/
XMLSchema}
<amt xsi:type="xsd:float">
500.00</amt>
not specified
<amt xsi:type="xsd:string">
500.00</amt>
75
Andencodesthemlikethisifwatt.server.SOAP.useMultiReference=false:
.
.
.
<cDate>03/15/2000</cDate>
<amt>300</amt>
<oDate>03/15/2000</oDate>
<acct>cash</acct>
.
.
.
Formoreinformationaboutwatt.server.SOAP.useMultiReferenceandotherSOAP
relatedserverparameters,seeAppendix C,SOAPRelatedServerParameters.Formore
informationaboutsettingserverparameters,seethewebMethodsIntegrationServer
AdministratorsGuide.
76
In a forward reference, a
referenced value appears
after the point where it is
referenced
.
.
.
<cDate id="id1">03/15/2000</cDate>
<amt id="id2">300</amt>
<oDate href="#id1"></oDate>
.
.
.
.
.
.
<oDate href="#id1"></oDate>
<amt id="id2">300</amt?
<cDate id="id1">03/15/2000</cDate>
.
.
.
Forreferencedelements,themessagecoderputsasinglecopyofthevalueinthepipeline
andgeneratesreferencestoit.
Note: Ifthemessagecodercannotresolveareference,itgeneratesanullobjectforthat
parameter.Italsoreportstheproblemintheserverlogiftheserverisrunningatdebug
level5orhigher.
77
78
79
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode></faultcode>
<faultstring></faultstring>
<faultactor></faultactor>
<detail></detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Value
<faultcode>
AQNameindicatingtheclassoferrorthatoccurred.Thenamespace
fortheQNamewillbethesameasthatoftheSOAPenvelopeandthe
localnamewillbeoneofthefollowing:
Local Name
Indicates that...
Server
TheIntegrationServerwasnotabletoprocess
themessagebecauseofaproblemonthe
server.
Client
TheIntegrationServerwasnotabletoprocess
themessagebecauseitwasformatted
improperly.
OR
IntegrationServerwasnotabletoprocessthe
messagebecausetheSOAPprocessor(orone
oftheservicesitcalled)threwanexception.
80
Element
Value
MustUnderstand
TheSOAPprocessorcouldnotobeyaheader
elementwhosemustUnderstandattributewas
setto1.
VersionMismatch
TheIntegrationServerdoesnotsupportthe
SOAPnamespacespecifiedintheSOAP
envelope.
<faultstring>
Amessagedescribingtheerror.Foralistofmessagesthatmight
appearinfaultstring,seewebMethodsSOAPFaultsonpage 83.
<faultactor>
AURIindicatingwhichSOAPprocessorreturnedtheerror.
Example: http://rubicon:5555/soap/rpc
<detail>
Anelementcontainingdetailedinformationabouttheerror.The
IntegrationServerreturnsthiselementwhenanexceptionoccurs
whileitisprocessingthemessage.
The <detail>elementreturnedbytheIntegrationServerisfromthe
followingnamespace:
http://www.webmethods.com/2001/10/soap
Itcontainsanelementcalled<exception>,whichhasthefollowing
childrenandprovidesspecificinformationabouttheexception:
Element
Description
<classname>
ThenameoftheJavaclassthatwasthrown.
<message>
Thedetailederrormessagefromthe
exception.
<stackTrace>
AJavastacktrace.
Important! Thiselementisincludedonlyifthe
clientisamemberoftheDevelopersor
AdministratorsgrouponthewebMethods
IntegrationServer.
81
Element
Value
<serviceStackTrace>
Aservicestacktrace.Thiselementisreturned
ifaservicestackisavailabletotheSOAP
messagehandler.Itgenerallyappearsonly
whenanexceptionisthrownbyoneofthe
webMethodsSOAPprocessorsorutilities.
Important! Thiselementisincludedonlyifthe
clientisamemberoftheDevelopersor
AdministratorsgrouponthewebMethods
IntegrationServer.
Notethatthisfaultdoesnotincludethe<detail>element.
82
<detail xmlns="http://www.webmethods.com/2001/10/soap">
<exception>
<className>com.wm.lang.flow.FlowException</className>
<message xml:lang="en-US">
[ISC.0049.9010] Failure invoking unknown service at
'unlabeledINVOKE'. The service may have been renamed, moved
or disabled.
</message>
<stackTrace xml:lang="en-US">
com.wm.lang.flow.FlowException: [ISC.0049.9010] Failure invoking unknown
service at 'unlabeledINVOKE'. The service may have been renamed, moved or
disabled.
at
java.lang.Throwable.<init>(Throwable.java:84)at
java.lang.Exception.<init>(Exception.java:35)at
com.wm.util.LocalizedException.<init>(LocalizedException.java:83)at
com.wm.lang.flow.FlowException.<init>(FlowException.java:42)at
com.wm.lang.flow.FlowExit.getFailure(FlowExit.java:199)at
com.wm.lang.flow.FlowState.willExit(FlowState.java:195)at
com.wm.lang.flow.FlowSequence.invoke(FlowSequence.java:150)at
com.wm.lang.flow.FlowRoot.invoke(FlowRoot.java:199)at
com.wm.lang.flow.FlowState.invokeNode(FlowState.java:459) at
com.wm.lang.flow.FlowState.step(FlowState.java:341)at
com.wm.lang.flow.FlowState.invoke(FlowState.java:309)at
com.wm.app.b2b.server.FlowSvcImpl.baseInvoke(FlowSvcImpl.java:1334)at
com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:692)at
com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:478)at
com.wm.app.b2b.server.HTTPSOAPHandler.process(HTTPSOAPHandler.java:234)at
com.wm.app.b2b.server.HTTPDispatch.run(HTTPDispatch.java:255) at
com.wm.util.pool.PooledThread.run(PooledThread.java:103)at
java.lang.Thread.run(Thread.java:498)
</stackTrace>
</exception>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
83
[ISC.0076.0014] SOAP Message Coder failure; a Runtime Exception was thrown in the SOAP Coder
Cause: Themessagecoderencounteredaseriousinternalerror.
Response: ContactSoftware AGCustomerCare.
[ISC.0076.0015] SOAP Message Coder cannot encode variable varName; variable does not have a
valid XML name
Cause: ThemessagecodercouldnotXMLencodetheSOAPRPCrequestorresponse
becausethepipelinecontainedthevariablevarName,whosenameisnotavalidnamefor
anXMLelement.
Response: Thiserroroftenoccursbecausethevariablenamecontainsacolon.Changethe
nameofvarNametoonethatisalsovalidasanXMLelementname(ormapvarNametoa
newvariable,andusethatvariableasyourSOAPRPCinputoroutputparameter).
[ISC.0076.0016] Soap Message Coder warning; unregistered coder for variable varName, using String
Cause: ThemessagecoderwasnotabletorecognizethedatatypeforvarNamesoittreated
thevariableasaString.
Note: Thismessageisawarningthatiswrittentotheserverlogatdebuglevel5and
higher.
Response: ChecktheincomingXMLandverifythatitdeclaresthecorrectdatatype.
[ISC.0076.0017] SOAP Message Coder error; no coder is registered for encoding style styleName
Cause: Themessagecoderencounteredaseriousinternalerror.
Response: ContactSoftware AGCustomerCare.
[ISC.0076.0018] Soap Message Coder warning; unregistered coder for variable varName, using
BasicData
Cause: ThemessagecoderwasnotabletorecognizethecomplexdatatypeforvarNameso
ittreatedthevariableasadocument(anIDataobject).
Note: Thismessageisawarningthatiswrittentotheserverlogatdebuglevel5and
higher.
Response: ChecktheincomingXMLandverifythatitdeclaresthecorrectdatatype.
84
[ISC.0076.0019] SOAP Message Coder cannot decode message; encoding style styleName is not a
registered style
Cause: ThemessagecodercouldnotdecodethesubmittedXMLbecauseitdoesnot
supportthespecifiedencodingstyle.
Response: ChecktheincomingXMLandverifythattheencodingStyleattributeisspecified
correctlyandthatitspecifiesastylethattheIntegrationServersupports.
[ISC.0076.0020] Soap Message Coder warning; invalid HREF found reference
Cause: Themessagecodercouldnotresolvethehrefpointingtoreference.Anullvaluewas
producedinstead.
Note: Thismessageisawarningthatiswrittentotheserverlogatdebuglevel5and
higher.
Response: ExaminetheincomingXMLandmakesurethatthespecifiedreferencepointsto
anelementthatexistsinthebodyofthemessage.
[ISC.0076.0021] SOAP Message Coder cannot decode message; arrayType attribute value attValue is
malformed
Cause: ThemessagecodercouldnotdecodeanXMLencodedarraybecauseitcannot
understandthevalueofthearrayTypeattribute.
Response: ChecktheincomingXMLandmakesurethatthearrayTypeattributeisspecified
correctly.Forexample,makesurethatitisnotmissinga[symbol.
[ISC.0076.0022] SOAP Message Coder cannot decode message; cannot determine type of element
elementName
Cause: ThemessagecodercouldnotdecodetheXMLencodedparametersithasreceived,
becausethesimpleelementelementNamehasanunknowndatatype(forexample,
xsi:type="myDataType").
Response: ChecktheincomingXMLandmakesurethedatatypehasbeenspecified
correctly.Alsomakesurethatitisusingthecorrectnamespace.
[ISC.0076.0023] SOAP Message Coder cannot decode message; unable to create array for arrayType
attribute value attValue
Cause: ThemessagecodercouldnotdecodeanXMLencodedarraybecauseitcouldnot
allocateanarrayofthespecifieddimensions.
Response: ChecktheincomingXMLandmakesurethatthearrayTypeattributeisspecified
correctly.Forexample,makesurethatitdoesnotspecifyanegativedimensionoran
invalidarraysize(forexample,toomanydimensionsordimensionsthatare
85
unrealisticallylarge).Ifthearrayisunusuallylargeortheserverisextremelyverylowon
memory,thepossibilityalsoexiststhatthiserrorwastheresultofanoutofmemory
condition.
[ISC.0076.9101] SOAP Encoding Registrar cannot register encoding style styleName; encoding style
already exists
Cause: Theencodingregistrarencounteredaseriousinternalerror.
Response: ContactSoftware AGCustomerCare.
[ISC.0076.9102] SOAP Encoding Registrar cannot register Java type typeName; Java type already
exists
Cause: Theencodingregistrarencounteredaseriousinternalerror.
Response: ContactSoftware AGCustomerCare.
[ISC.0076.9103] SOAP Encoding Registrar cannot register Schema type typeName; Schema type
already exists
Cause: Themessagecodeencounteredaseriousinternalerror.
Response: ContactSoftware AGCustomerCare.
[ISC.0076.9201] Null mime object received
Cause: ThemessagecodercouldnotdecodetheparametersintheSOAPmessagebecause
themessagedoesnotspecifyanencodingstyle.
Response: ThiserrorusuallyoccursbecausetheSOAPencodingStyleattributeismissing,
misplacedormisspelled.ExaminetheRPCrequestthatwassubmittedtotheIntegration
ServerandensurethattheSOAPEnvelopeincludestheencodingStyleattribute.Alsocheck
thattheencodingStyleattributehasthepropersyntaxandnamespace.
[ISC.0076.9202] No data in buffer!
Cause: Themessagecoderencounteredaseriousinternalerror.
Response: ContactSoftware AGCustomerCare.
[ISC.0076.9203] SOAP Message Coder cannot decode message; Invalid number value
Cause: ThemessagecodercouldnotdecodeanXMLencodedarraybecauseoneofits
dimensionsissettoanonnumericvalue.
Response: ChecktheincomingXMLandmakesurethatthearrayTypeattributespecifiesa
positiveinteger.Forexample,makesureithasnotbeeninadvertentlysettoanonnumeric
valuesuchasA.
86
[ISC.0076.9204] SOAP Message Coder cannot encode output data; pipeline does not match output
signature, duplicate variable varName in pipeline
Cause: ThemessagecodercouldnotXMLencodetheresultsofaSOAPremoteprocedure
callbecausethevariablevarNameappearedinthepipelinemorethanonce.
Response: OntheIntegrationServer,examinethetargetservicetodeterminewhyitisnot
producingoutputvaluesthatmatchtheoutputsignatureforvarName.Correctthe
servicessignatureand/orlogicafteridentifyingthesourceoftheproblem.
[ISC.0076.9205] SOAP Message Coder cannot encode variable varName; variable does not have a
valid XML name
Cause: ThemessagecodercouldnotXMLencodetheSOAPRPCrequestorresponse
becausethepipelinecontainedthevariablevarName,whosenameisnotavalidnamefor
anXMLelement.
Response: Thiserroroftenoccursbecausethevariablenamecontainsacolon (:).Change
thenameofvarNametoonethatisalsovalidasanXMLelementname(ormapvarNameto
anewvariable,andusethatvariableasyourSOAPRPCinputoroutputparameter).
[ISC.0076.9206] SOAP Message Coder error; no coder is registered for encoding style styleName
Cause: Themessagecoderencounteredaseriousinternalerror.
Response: ContactSoftware AGCustomerCare.
[ISC.0076.9208] SOAP Message Coder cannot decode message; cannot determine type of element
elementName
Cause: ThemessagecodercouldnotdecodetheXMLencodedparametersithasreceived,
becausethesimpleelementelementNamehasanunknowndatatype(forexample,
xsi:type="myDataType").
Response: ChecktheincomingXMLandmakesurethedatatypehasbeenspecified
correctly.Alsomakesurethatitisusingthecorrectnamespace.
[ISC.0076.9209] SOAP Message Coder cannot decode message; unable to create array for arrayType
attribute value attValue
Cause: ThemessagecodercouldnotdecodeanXMLencodedarraybecauseitcouldnot
allocateanarrayofthespecifieddimensions.
Response: ChecktheincomingXMLandmakesurethatthearrayTypeattributeisspecified
correctly.Forexample,makesurethatitdoesnotspecifyanegativedimensionoran
invalidarraysize(e.g.,toomanydimensionsordimensionsthatareunrealisticallylarge).
Ifthearrayisunusuallylargeortheserverisextremelyverylowonmemory,the
possibilityalsoexiststhatthiserrorwastheresultofanoutofmemorycondition.
87
[ISC.0076.9210] SOAP Message Coder cannot decode message; arrayType attribute value attValue is
malformed
Cause: ThemessagecodercouldnotdecodeanXMLencodedarraybecauseitcannot
understandthevalueofthearrayTypeattribute.
Response: ChecktheincomingXMLandmakesurethatthearrayTypeattributeisusingthe
correctsyntax.Forexample,makesurethatitisnotmissinga[symbol.
[ISC.0076.9211] SOAP Message Coder cannot encode output data; pipeline does not match output
signature, required variable varName is missing
Cause: ThemessagecodercouldnottransformtheresultsofaSOAPremoteprocedure
callbecausetherequiredvariablevarNamewasnotinthepipeline.
Response: OntheIntegrationServer,examinethetargetservicetodeterminewhyitisnot
producingtherequiredoutputvariables.Correcttheservicessignatureand/orlogicafter
identifyingthesourceoftheproblem.
[ISC.0076.9212] SOAP Message Coder cannot encode output data; pipeline does not match output
signature, extra variable varName in pipeline
Cause: Themessagecoderencounteredaseriousinternalerror.
Response: ContactSoftware AGCustomerCare.
[ISS.0088.9102] ASSERTION: The directive directiveName in the URL urlName should be
directiveName
Cause: TheSOAPmessagehandlerencounteredaseriousinternalerror.
Response: ContactSoftware AGCustomerCare.
[ISS.0088.9103] Error reading SOAP Message from HTTP stream -- appears to be empty
Cause: TheSOAPmessagehandlerencounteredaseriousinternalerror.
Response: ContactSoftware AGCustomerCare.
[ISS.0088.9105] Failed to register SOAP Handler directiveName
Cause: TheIntegrationServerwasnotabletosuccessfullyaddthespecifiedSOAP
processortotheprocessorregistry.
Response: VerifythattheSOAPprocessordirectiveandfullyqualifiedservicenamehave
beenspecifiedcorrectly.Thiserrorusuallyoccursbecausethedirectivenameorthe
servicenamehasnotbeenspecified.
88
89
90
91
so,determinewhethertheStringorstreamfromwhichtheSOAPobjectisgenerated
representsavalidSOAPmessage.
AlsocheckwhethertheSOAPprocessororclientusedanyofthedataremovalutilities
(suchasremoveHeaderEntryorremoveBodyEntry)andmighthaveinadvertentlyremoved
requiredportionsoftheSOAPobject(forexample,theentireBodyelement).
[ISS.0088.9125] SOAP request does not conform to the SOAP message model
Cause: TheSOAPmessagehandlercouldnotprocesstheSOAPrequestbecauseitviolates
theSOAPmessageschema(forexample,itismissingtheBodyelementortheHeader
elementfollowsthebody).
Response: Ontheclientside,correctthelogicthatbuildsthemessagetoensurethatit
producesavalidSOAPmessage.
[ISS.0088.9126] SOAP response does not conform to the SOAP message model
Cause: TheSOAPmessagehandlercouldnotreturntheSOAPresponsegeneratedbya
SOAPprocessorontheIntegrationServerbecausethemessageviolatestheSOAP
messageschema.
Response: ExaminethelogicintheSOAPprocessorandseewhetheritusesthe
stringToSoapDataorstreamToSoapDataservicetogenerateaSOAPobject.Ifso,determine
whethertheStringorstreamfromwhichtheSOAPobjectisgeneratedrepresentsavalid
SOAPmessage.Examinethelogicthatproducedthemessageandseewhetheritusesthe
stringToSoapDataorstreamToSoapDataservicetomanuallygenerateaSOAPobjectinsteadof
usingthemessagecompositionservices(e.g.,createSoapData,addHeaderEntry,addBodyEntry).If
so,determinewhethertheStringorstreamfromwhichtheSOAPobjectisgenerated
representsavalidSOAPmessage.AlsocheckwhethertheSOAPprocessororclientused
anyofthedataremovalutilities(suchasremoveHeaderEntryorremoveBodyEntry)andmight
haveinadvertentlyremovedrequiredportionsoftheSOAPobject(forexample,theentire
Bodyelement).
[ISS.0088.9127] The server could not load the SOAP XML Validator
Cause: TheSOAPmessagehandlerencounteredaseriousinternalerror.
Response: ContactSoftware AGCustomerCare.
[ISS.0088.9128] Request is from namespace 'msgNamespace', server requires namespace
'svrNamespace'
Cause: TheSOAPmessagehandlercouldnotprocessthemessagebecausethemessageis
notfromaversionofSOAPthattheIntegrationServersupports.TheIntegrationServer
supportstheversionindicatedinsvrNamespace.
Response: Fromtheclientside,resubmitthemessageusingaversionofSOAPthatthe
IntegrationServersupports.
92
93
Response: SeethedetailelementintheSOAPfaulttodeterminetheexceptionthatwas
thrownandwhichprocessitwasthrownby.
[ISS.0088.9135] A WMDocument Exception was thrown in the server, usually because an XML block
was not well-formed.
Cause: TheSOAPmessagehandler,thesoapHTTPservice,orthesoapRPCservicehas
receivedaSOAPmessagethatcontainsinvalidXML.
Response: ChecktheprocessthatsubmittedtheSOAPmessagetotheIntegrationServer
andmakesurethatitisproducingvalidXML.Thiserrorusuallyoccursbecauseofabasic
errorintheXMLdocument,suchasmissingtagsoroverlappingelements.
[ISS.0088.9136] A WattEvaluationException was thrown by the XQL Query engine.
Cause: TheXQLqueryprocessorencounteredaseriousinternalerror.
Response: ContactSoftware AGCustomerCare.
[ISS.0088.9137] Invalid input parameter; paramName must be a Document (IData).
Cause: TherequestedSOAPutilityfailedtoexecutebecausetheobjectpassedin
paramNameisnotanIDataobject.
Response: CheckthelogicintheSOAPprocessororclienttomakesurethatitpassesan
IDatainparamName.
[ISS.0088.9138] Input parameters do not conform to targetInputSignature: validationDetails.
Cause: Thepub.client:soapRPC servicecouldnotsubmittheremoteprocedurecallbecause
theinputparametersdidnotpassthedatavalidationprocess.
Response: Thiserroristhrownwhenaclientsuppliesaninvalidsetofinputparameters
foraSOAPremoteprocedurecall.Specifically,itindicatesthattheparameterssubmitted
topub.client:soapRPCinreqParmsdonotmatchthestructureandconstraintsofthe
documenttypespecifiedintargetInputSignature.
Generally,youwillwanttocodeyourclienttodetectthiskindoferrorandtakesometype
ofcorrectiveactionwhenitoccurs.
[ISS.0088.9139] Output parameters do not conform to targetOutputSignature: validationDetails.
Cause: TheSOAPRPCclientcouldnotsubmittheremoteprocedurecallbecausethe
outputparametersreturnedbytheremoteserverdidnotpassthedatavalidationprocess.
Response: Thiserroristhrownwhenaclientreceivesaninvalidsetofoutputparameters
(results)fromaSOAPremoteprocedurecall.Specifically,itindicatesthattheparameters
returnedtopub.client:soapRPCinrespParmsdonotmatchthestructureandconstraintsofthe
documenttypespecifiedintargetOutputSignature.
94
Generally,youwillwanttocodeyourclienttodetectthiskindoferrorandtakesometype
ofcorrectiveactionwhenitoccurs.
[ISS.0088.9140] Invalid target signature docTypeName, must be a Document Type
Cause: TheSOAPRPCclientcouldnotprocesstheremoteprocedurecallbecauseitwas
notabletovalidatetheinputoroutputparametersassociatedwiththerequest.The
signatureitwasgivenforvalidationisnotadocumenttype.
Response: ExaminethelogicintheSOAPRPCclientandmakesurethattheobjectit
specifiesintargetInputSignatureand/ortargetOutputSignatureisadocumenttype.Thatis,
theseparameters,ifused,specifythefullyqualifiednameofadocumenttypethatexists
ontheIntegrationServer.
[ISS.0088.9141] Invalid target signature docTypeName, Document Type does not exist
Cause: TheSOAPRPCclientcouldnotprocesstheremoteprocedurecallbecauseitwas
notabletovalidatetheinputoroutputparametersassociatedwiththerequest.The
specifieddocumenttypedoesnotexistontheIntegrationServer.
Response: ExaminethelogicintheSOAPRPCclientandmakesurethat
targetOutputSignatureand/ortargetOutputSignaturearecorrectlyspecified.(Remember
thatthenamesofdocumenttypesarecasesensitive.).Alsoverifythatthespecified
documenttypeexistsontheserverandthepackageinwhichitresidesisloadedand
enabled.
[ISS.0088.9142] attribute() incorrect attribute name \"{0}\"
Cause: Thepub.soap.util:addBodyEntryservicefailedbecauseitwasgivenanXMLnodethat
wasnotnamespacequalified.
Response: ExaminethelogicintheSOAPclientortargetservice(dependingonwhich
entityissuedtheerror)andverifythattheXMLnodethattheaddBodyEntryserviceis
attemptingtoaddisnamespacequalified(thatis,thatitincludesthexmlnsattributeand
thattheelementnamehasthepropernamespaceprefix).
Note: ThiserroroccursonlyifnamespacecheckingisenabledontheIntegrationServer.
Seewatt.server.SOAP.enforceMsgPartNSonpage 115.
95
Note: ThiserroroccursonlyifnamespacecheckingisenabledontheIntegrationServer.
Seewatt.server.SOAP.enforceMsgPartNSonpage 115.
96
97
Response: Noactionisrequired.
[ISS.0088.9157] Error initializing JAX Handler <handler>:<errorMessage>
Cause: AnerroroccurredwhileinitializingtheJAXRPChandler.Theerrormessageis
specifiedfollowingthecolon.
Response: Correcttheerrorindicatedbytheerrormessageandretry.
[ISS.0088.9158] Error destroying JAX Handler <handler>:<errorMessage>
Cause: AnerroroccurredwhiledestroyingtheJAXRPChandler.Theerrormessageis
specifiedfollowingthecolon.
Response: Correcttheerrorindicatedbytheerrormessageandretry.
[ISS.0088.9159] Failed to register JAX Handler <handler>.
Cause: AnattempttoregistertheJAXRPChandlerfailed.
Response: SearchtheIntegrationServerlogforerrorsindicatingwhytheJAXRPChandler
couldnotberegistered.Correctanyerrorsandretry.
[ISS.0088.9160] Failed to unregister JAX Handler <handler> - Not Registered.
Cause: AnattempttounregistertheJAXRPChandlerfailed.Thehandlerwasnot
registered.
Response: Noactionisrequired.
[ISS.0088.9161] Failed to find JAX Handler <handler> - Not Registered.
Cause: ThespecifiedJAXRPChandlercouldnotbelocatedbecauseitisnotregistered.
Response: RegisterthespecifiedJAXRPChandlerandretry.
[ISS.0088.9162] Failed to find JAX Handler for header <header>
Cause: TheJAXRPChandlerforthespecifiedheaderwasnotfound.
Response: CorrectthenameoftheJAXRPChandlerandretry.
[ISS.0088.9163] Could not retrieve WSDL for service <service>; WSD not found
Cause: AnattempttoretrievetheWSDLforthespecifiedservicefailsbecausetheWeb
servicedescriptordoesnotexist.
Response: CorrectthenameofthewebserviceandverifythattheWebservicedescriptor
exists.
98
99
[ISS.0088.9321] MTOM Attachments Processing Failed: Cannot convert SOAP Message to XOP
Package; base64Binary encoded data is not in the Canonical Lexical form.
Cause: Base64BinaryencodeddataisnotinCanonicalLexicalform;itcontainslinebreak
charactersortabs.
Response: ConverttheBase64BinarydataintoCanonicalLexicalform.
[ISS.0088.9322] MTOM Attachments Processing Failed: Cannot convert SOAP Message to XOP
Package; invalid SOAP Message.
Cause: TheSOAPMessageisinvalid;eitheritisnotwellformedoritdoesnotcontain
validnamespacedeclarations.
Response: CheckthestructureandcontentoftheSOAPmessage.
[ISS.0088.9323] MTOM Attachments Processing Failed: Cannot convert SOAP Message to XOP
Package; I/O Error occurred.
Cause: ConvertingSOAPMessagetoXOPpackagehasbeeninterruptedbyanother
thread.
Response: Retrytheactionthatcausedit.
[ISS.0088.9324] MTOM Attachments Processing Failed: Cannot convert XOP Package to SOAP
Message; Content-Id header field is missing in some of the attachments.
Cause: OneormoreattachmentsdoesnotcontaintheContentIdfield.Thisfieldis
requiredtoputthecontentoftheattachmentbackintotheSOAPmessage.
Response: VerifythattheserializationofXOPPackagetoMIMEstreamhadContentId
presentinthecorrespondingMIMEpart.
[ISS.0088.9325] MTOM Attachments Processing Failed: Cannot serialize the XOP Message; unable to
retrieve bytes from SOAP String using the SOAP Message Content Encoding.
Cause: TheconversionofSOAPStringtobytearrayusingtheencodingspecifiedforSOAP
Messagehasfailed.
Response: CorrectthecontentencodingspecifiedfortheSOAPmessage.
[ISS.0088.9326] MTOM Attachments Processing Failed: Cannot serialize the XOP Message; MIME
serialization has failed.
Cause: SerializationofXOPPackagetoMIMEStreamhasfailed.
Response: VerifythestructureofSOAPMessageiscorrect,particularlytheelementswhich
containsbase64Binarydata.
100
[ISS.0088.9327] MTOM Attachments Processing Failed: Cannot de-serialize the input MIME Stream;
value of the Content-type header of the MIME message is not equal to multipart/related.
Cause: ValuefortheContentTypeheaderfieldoftheMIMEMessageisnotequalto
multipart/related.
Response: VerifythatyouhavepassedthecorrectvalueforContenttypewhile
serializingtheMIMEMessage.
[ISS.0088.9328] MTOM Attachments Processing Failed: Cannot de-serialize the input MIME Stream;
value of the type parameter of the Content-Type header of the MIME message is not equal to
application/xop+xml
Cause: ValueforthetypeparameteroftheContentTypeheaderfieldoftheMIME
messageisnotequaltoapplication/xop+xml.
Response: Verifythatyouhavepassedthecorrectvaluefortypeparameterwhile
serializingtheMIMEmessage.
[ISS.0088.9329] MTOM Attachments Processing Failed: Cannot de-serialize the input MIME Stream;
value of the start-info parameter of the Content-Type header of the MIME message is not equal to
application/xop+xml
Cause: ValueforthestartinfoparameteroftheContentTypeheaderfieldofthe
MIMEmessageisnotequaltoapplication/xop+xml.
Response: Checkifyouhavepassedthecorrectvalueforstartinfoparameterwhile
serializingtheMIMEmessageotherwisepassthecorrectvalueforit.
[ISS.0088.9330] MTOM Attachments Processing Failed: Cannot de-serialize the input MIME Stream;
Content-Type header of the Root MIME Part is invalid.
Cause: InvalidcontenttypeforRootMIMEpart.
Response: VerifythatyouhavepassedthecorrectvalueforContentTypeheaderfieldof
theRootMIMEPartwhileserializingtheMIMEmessage.
[ISS.0088.9331] MTOM Attachments Processing Failed: Cannot de-serialize the input MIME Stream;
Content-Type header of the Root MIME Part does not match with the type parameter of the MIME
message.
Cause: ThevalueoftheContentTypeheaderoftheRootMIMEPartisnotequaltothe
valueofthetypeparameteroftheContentTypeheaderoftheMIMEmessage.
Response: Verifythatyouhavepassedthecorrectvalueforthesefield(s)/parameter(s)
whileserializingtheMIMEmessages.
101
[ISS.0088.9332] MTOM Attachments Processing Failed: Cannot de-serialize the input MIME Stream;
value of the type parameter of the Content-Type header of the Root MIME Part does not match
with the value of the start-info parameter of the MIME message.
Cause: ThevalueofthetypeparameteroftheContentTypeheaderoftheRootMIME
PartisnotequaltothevalueofthestartinfoparameteroftheContentTypeheaderof
MIMEmessage.
Response: Verifythatyouhavepassedthecorrectvalueforthesefield(s)/parameter(s)
whileserializingtheMIME.
[ISS.0088.9333] MTOM Attachments Processing Failed: Cannot de-serialize the input MIME Stream;
SOAP Message in the Root MIME Part is not of version 1.2.
Cause: TheversionoftheSOAPMessageisnotequalto1.2.
Response: EdittheversionoftheSOAPMessageto1.2andsendtheSOAP1.2message.
[ISS.0088.9334] MTOM Attachments Processing Failed: Cannot de-serialize the input MIME Stream;
Root MIME Part contains invalid SOAP Message.
Cause: TheSOAPmessageintheRootMIMEPartisinvalid;eitheritisnotwellformedor
itdoesnotcontainvalidnamespacedeclarations.
Response: CheckthestructureandcontentoftheSOAPmessageintheRootMIMEPart.
[ISS.0088.9335] MTOM Attachments Processing Failed: Cannot de-serialize the input MIME Stream;
input stream is not a valid MIME stream.
Cause: MIMEStreamdoesnotcontainthevaliddataaspertheMIMEspecifications.
Response: VerifythattheMIMEstreamcontainsavalidMIMEmessage.
102
103
ENTITIES
String
ENTITY
String
ID
String
IDREF
String
IDREFS
String
NCName
String
NMTOKEN
String
NMTOKENS
String
NOTATION
String
Name
String
QName
String
base64
byte[]
binary
String
boolean
Boolean
byte
Byte
century
String
date
Date
104
decimal
BigDecimal
double
Double
float
Float
int
Integer
integer
BigInteger
language
String
long
Long
month
String
negativeInteger
BigInteger
nonNegativeInteger
BigInteger
nonPositiveInteger
BigInteger
positiveInteger
BigInteger
recurringDate
String
recurringDay
String
recurringDuration
String
short
Short
string
String
time
GregorianCalendar
timeDuration
String
timeInstant
String
timePeriod
String
unsignedByte
Short
unsignedInt
Long
unsignedLong
BigInteger
unsignedShort
Integer
uriReference
String
year
String
105
ENTITIES
String
ENTITY
String
ID
String
IDREF
String
IDREFS
String
NCName
String
NMTOKEN
String
NMTOKENS
String
NOTATION
String
Name
String
QName
String
binary
String
boolean
Boolean
byte
Byte
century
String
date
Date
decimal
BigDecimal
double
Double
float
Float
int
Integer
integer
BigInteger
language
String
long
Long
month
String
negativeInteger
BigInteger
nonNegativeInteger
BigInteger
106
nonPositiveInteger
BigInteger
positiveInteger
BigInteger
recurringDate
String
recurringDay
String
recurringDuration
String
short
Short
string
String
time
GregorianCalendar
timeDuration
String
timeInstant
String
timePeriod
String
unsignedByte
Short
unsignedInt
Long
unsignedLong
BigInteger
unsignedShort
Integer
uriReference
String
year
String
CDATA
String
ENTITIES
String
ENTITY
String
ID
String
IDREF
String
IDREFS
String
hexBinary
byte[]
107
NCName
String
NMTOKEN
String
NMTOKENS
String
NOTATION
String
Name
String
QName
String
binary
String
boolean
Boolean
byte
Byte
century
String
date
Date
decimal
BigDecimal
double
Double
float
Float
int
Integer
integer
BigInteger
language
String
long
Long
month
String
negativeInteger
BigInteger
nonNegativeInteger
BigInteger
nonPositiveInteger
BigInteger
positiveInteger
BigInteger
recurringDate
String
recurringDay
String
recurringDuration
String
short
Short
string
String
time
GregorianCalendar
timeDuration
String
108
timeInstant
String
timePeriod
String
token
String
unsignedByte
Short
unsignedInt
Long
unsignedLong
BigInteger
unsignedShort
Integer
uriReference
String
year
String
ENTITIES
String
ENTITY
String
ID
String
IDREF
String
IDREFS
String
hexBinary
byte[]
NCName
String
NMTOKEN
String
NMTOKENS
String
NOTATION
String
Name
String
QName
QName
anyURI
String
base64Binary
String
boolean
Boolean
109
byte
Byte
date
Date
dateTime
GregorianCalendar
decimal
BigDecimal
double
Double
duration
String
float
Float
gDay
String
gMonth
String
gMonthDay
String
gYear
String
gYearMonth
String
int
Integer
integer
BigInteger
language
String
long
Long
negativeInteger
BigInteger
nonNegativeInteger
BigInteger
nonPositiveInteger
BigInteger
normalizedString
String
positiveInteger
BigInteger
short
Short
string
String
time
GregorianCalendar
token
String
unsignedByte
Short
unsignedInt
Long
unsignedLong
BigInteger
unsignedShort
Integer
110
Object of type
Is encoded as
type
From namespace
BigDecimal
decimal
http://www.w3.org/2001/XMLSchema
BigInteger
integer
http://www.w3.org/2001/XMLSchema
Boolean
boolean
http://www.w3.org/2001/XMLSchema
Byte
byte
http://www.w3.org/2001/XMLSchema
byte[]
base64
http://schemas.xmlsoap.org/soap/encoding/
Date
date
http://www.w3.org/2001/XMLSchema
Document
string
http://www.w3.org/2001/XMLSchema
Double
double
http://www.w3.org/2001/XMLSchema
ElementNode
string
http://www.w3.org/2001/XMLSchema
Float
float
http://www.w3.org/2001/XMLSchema
GregorianCalendar
datetime
http://www.w3.org/2001/XMLSchema
Hashtable
Hashtable
http://www.webmethods.com/2001/10/soap/encoding
IData*
data
http://www.webmethods.com/2001/10/soap/encoding
Integer
int
http://www.w3.org/2001/XMLSchema
Long
long
http://www.w3.org/2001/XMLSchema
MBoolean
boolean
http://www.w3.org/2001/XMLSchema
MByte
byte
http://www.w3.org/2001/XMLSchema
MDouble
double
http://www.w3.org/2001/XMLSchema
MFloat
float
http://www.w3.org/2001/XMLSchema
MInteger
int
http://www.w3.org/2001/XMLSchema
MLong
long
http://www.w3.org/2001/XMLSchema
MShort
short
http://www.w3.org/2001/XMLSchema
111
Object of type
Is encoded as
type
From namespace
QName
QName
http://www.w3.org/2001/XMLSchema
Short
short
http://www.w3.org/2001/XMLSchema
String
string
http://www.w3.org/2001/XMLSchema
Vector
Vector
http://www.webmethods.com/2001/10/soap/encoding
XML type
Hashtable
Hashtable
Vector
Vector
IData*
data
com.wm.util.Table
dataarray
*OranyclassthatimplementstheIDatainterface(forexample,BasicData,
IDataCodable,Values).
112
113
SOAP Parameters
Thefollowingdescribestheserverparametersthatyoucanusetoconfigurethewayin
whichSOAPoperatesontheIntegrationServer.Forinformationabouthowtosetserver
parameters,seethewebMethodsIntegrationServerAdministratorsGuide.
watt.server.SOAP.directive
SpecifiesthedirectivethatrepresentstheSOAPmessagehandler.Thedefaultissoap.This
parameterdeterminestheURLthatisusedtoaccessSOAPprocessorsontheIntegration
Server.
http://hostName:portNum/soap/[processDirective]
This parameter specifies this segment of the SOAP
processor URL
watt.server.SOAP.defaultProtocol
SpecifiesthedefaultprotocolthatIntegrationServerusesfornewSOAPmessages.
SpecifySOAP1.1ProtocolorSOAP1.2Protocol.ThedefaultisSOAP1.1Protocol.
watt.server.SOAP.MTOMThreshold
Specifiesthefieldsize,inkilobytes,thatdetermineswhetherIntegrationServerhandles
base64binaryencodeddatainaSOAPrequestasaMIMEattachmentorwhetheritsends
itinlineintheSOAPmessage.IftheWebservicedescriptorfortheSOAPmessageenables
attachmentsfortheSOAPrequest,IntegrationServerpassesasMIMEattachmentsany
base64fieldsinaSOAPmessagethatarelargerthanthethreshold.Thisonlyappliesto
SOAP1.2messages.Thedefaultis0.
watt.server.SOAP.validateSOAPMessage
SpecifieswhethertheSOAPmessagehandlerwillvalidatemessagesthatitreceivesand
sends.Settotrueorfalse.Defaultistrue.
Whenwatt.server.SOAP.validateSOAPMessageistrue,themessagehandlervalidates
messagesagainsttheSOAPschema.Beawarethatthethisvalidationprocesschecksonly
thatthemessageenvelopeisstructuredcorrectlyforexample,itchecksthemessagehas
atleastonebodyelementandthereisatmostoneheaderelement.Itdoesnotvalidateany
ofthedatacarriedbythemessage.
Ifyouareoperatinginaproductionenvironmentwherethevalidityofthemessages
submittedtotheserverisassured,youmightset
watt.server.SOAP.validateSOAPMessagetofalsetooptimizeperformance.
Note: ThisparameterisoverriddenbyanindividualSOAPprocessors
validateSOAPMessagesetting.Consequently,theservers
watt.server.SOAP.validateSOAPMessagesettingisusedonlywhenaSOAPprocessors
validateSOAPMessageparameterhasnotbeenset.Formoreinformationaboutsettingthe
validateSOAPMessageparameter,seethepub.soap.processor:registerProcessorserviceinthe
webMethodsIntegrationServerBuiltInServicesReference.
114
watt.server.SOAP.useMultiReference
Specifieshowthemessagecoderistoencodeparametersthatpointtothesame
underlyingdataobjectinthepipeline.Settotrueorfalse.Defaultistrue.
Forexample,iftwooutputparameterscDateandoDatepointtothesameunderlyingdata
inthepipeline,themessagecoderencodestheparameterslikethisif
watt.server.SOAP.useMultiReferenceistrue:
.
.
.
<cDate id="id1">03/15/2000</cDate>
<amt id="id2">300</amt>
<oDate href="#id1"></oDate>
<acct id=id4>cash</acct>
.
.
.
Andlikethisifwatt.server.SOAP.useMultiReferenceisfalse:
.
.
.
<cDate>03/15/2000</cDate>
<amt>300</amt>
<oDate>03/15/2000</oDate>
<acct>cash</acct>
.
.
.
Note: Thisparameteraffectsonlythewayinwhichmultireferencedparametersare
encoded.Itdoesnotaffectthewayinwhichtheyaredecoded.Themessagecoderalways
recognizesanddecodesmultireferencedelementsregardlessofhow
watt.server.SOAP.useMultiReferenceisset.
watt.server.SOAP.enforceMsgPartNS
Specifieswhethertheserverallowsnonnamespacequalifiedheaderandbodyentriesto
beaddedtoaSOAPmessage.Settotrueorfalse.Defaultistrue.
Ifwatt.server.SOAP.enforceMsgPartNS=true,theserverwillthrowanexceptionifthe
pub.soap.utils:addHeaderEntryorpub.soap.utils:addBodyEntryservice(ortheirunderlying
methods)attemptstoinsertanonnamespacequalifiedelementintoaSOAPmessage.If
false,nonnamespacequalifiedelementsarepermitted.
ForinteroperatbilitywithotherSOAPimplementations,werecommendthatyourun
yourserverwiththisparameterenabled(thedefaultsetting).Thisensuresthatyour
serverwillnotgenerateandtransmitSOAPmessagesthathavenonnamespacequalified
headerorbodyentries.
115
116
117
Note: TheRPCProcessorisdeprecatedforIntegrationServer7.1.
andacct.
Basic structure of a SOAP remote procedure call
.
.
.
<SOAP-ENV:Body>
GL:journalEntry xmlns:GL="http://www.expt.com/GL">
<GL:journalEntry
<Id>2398</Id>
<date>03/15/2000</date>
<amt>237.50</amt>
<acct>Cash</acct>
</GL:journalEntry>
</SOAP-ENV:Body>
.
.
.
118
FormoreinformationaboutthestructureofaSOAPRPCmessage,seetheSimpleObject
AccessProtocol(SOAP)1.1W3CNote08May2000athttp://www.w3.org/TR/SOAP/.
119
<SOAP-ENV:Body>
<ser-root:journalEntryResponse
ser-root:journalEntryResponse xmlns:ser-root="http://www.expt.com/GL">
<status xsi:type="xsd:string">closed</status>
<balance xsi:type="xsd:int">0</balance>
</ser-root:journalEntryResponse>
</SOAP-ENV:Body>
.
.
.
Theresultsusethesamenamespaceastheoriginalrequest.Bydefault,thewebMethods
IntegrationServerusestheprefixserrootforthisnamespace.
FormoreinformationaboutthestructureofaSOAPRPCresponse,seetheSimpleObject
AccessProtocol(SOAP)1.1W3CNote08May2000athttp://www.w3.org/TR/SOAP/.
Iftheprocessorcannotlocatethetargetservice,itreturnsaSOAPfaultthatcontains
thefollowingerrormessage:
[ISS.0088.9122] Service namespaceName:localName does not exist
Formoreinformationaboutthiserror,seeAppendix A,SOAPFaultsReturnedby
theIntegrationServer.
120
If the processor finds the requested service, the message coder decodes the input parameters.
ThemessagecoderextractstheXMLencodedinputparametersfromthebodyofthe
messageandconvertsthemintoJavaobjects.Formoreinformationaboutthe
decodingprocess,seeDecodingtheInputParametersonpage 126.
When the service ends, the message coder encodes the results.Themessagecoderconverts
theparametersnamedintheoutputsignaturetoasetofXMLencodedvalues.For
moreinformationaboutencoding,seeEncodingtheOutputParameterson
page 130.
121
Error Handling
Ifatargetservicethrowsanexceptionwhileitisprocessing,themessagehandler
automaticallyreturnsaSOAPfaulttotheclient.Dependingonthetypeoferrorthat
occurs,theSOAPfaultmayincludeadetailelement,whichprovidesspecific
informationabouttheexception.ThiselementwillincludeastackTraceelementifthe
clientisamemberoftheDevelopersorAdministratorsusergroup.
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
When the target
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
service throws an
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
exception, the
<SOAP-ENV:Body>
message handler
<SOAP-ENV:Fault>
returns a SOAP
<faultcode>
fault...
SOAP-ENV:Client
</faultcode>
<faultstring>
[ISS.0088.9134] Exception occurred while processing the body of message
</faultstring>
...containing the error
message...
<faultactor>
http://localhost:5555/soap/mySoapProc
</faultactor>
<detail xmlns="http://www.webmethods.com/2001/10/soap/">
<exception>
<className>nameOfClassThatWasThrown</className>
...and details
<message xml:lang="en-US">detailedMsgIssuedbyException</message>
about the error.
<stackTrace>textFromStackTrace</stackTrace>
</exception>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
FormoreinformationaboutSOAPfaults,seeAppendix A,SOAPFaultsReturnedbythe
IntegrationServer.
122
Enter...
acct
Anystringofcharacters.
amt
Adecimalvalue,suchas150.75or15.00.(Omitcommasfrom
largevalues;otherwise,thevaluewillfailvalidation.)
loc
Anystringofcharacters.
userName
AusernamethatbelongstotheDevelopersACL.
password
ThepasswordfortheusernamethatyouenteredinuserName.
Thisflowsimulatesaservicethatissuesanauthorizationcodebasedonthevalueinthe
inputparameteramt.BecauseaSOAPRPCtargetdoesnotrequireanyspeciallogic,the
servicedoesnotperformanyworkthatisSOAPspecific.Youcouldcallthisservicefrom
anytypeofclient.ItcontainsnothingthatrestrictsitsusetoSOAPremoteprocedurecalls.
ThecharacteristicsthataresignificantifthisserviceistobeusedasaSOAPRPCtargetare
itssignatureanditsuniversalname.
The Signature. Thesignatureforthisservicedefinesthreeinputvariables(acct,amt,and
loc)andoneoutputvariable(authCode).NotethattheValidate inputandValidate output
settingsareenabledinthisexampletoensurethattheinputandoutputvaluesare
validatedatruntime.
123
Thesignatureiscriticalbecauseitdetermineshowvariablesaredecodedandencoded
atruntime.Inthisexample,theinputvariablesaredeclaredasStrings,whichmeans
thatthemessagecoderwillrenderthemasStringsregardlessofthedatatypes
specifiedintheXML.
IfyouexaminethepropertiesfortheseparameterswiththeDeveloper,youwillsee
thattheContent typeandRequiredpropertiesarespecified.Thesewillbeusedto
validatethevaluesthattheclientprovides.
ThesignaturedeclaresoneoutputvariablecalledauthCode.Becausethisistheonly
variabledeclaredintheoutputsignature,itwillbetheonlyparameterreturnedtothe
client.
IfyouexaminethepropertiesforauthCode,youwillseethatitsContent type issetto
string {http://www.w3.org/2001/XMLSchema}.Thistellsthemessagecodertoset
thetypeattributetoxsd:stringwhenitencodesthisparameter.
The Universal name. Anexplicituniversalnamehasbeenspecifiedforthisserviceinthe
Universal namecategoryofthePropertiespanel.Theuniversalnamedeterminesthe
QNamethatcausesthisservicetoexecute.Inthisexample,theservicewillbe
triggeredwhenaclientsubmitsaSOAPremoteprocedurecallwhoseQNameis
composedofthenamespacenamehttp://www.expt.com/AUTHandthelocalname
getAuthCode.
124
Universal name is
specified on the
Properties panel
Encoding/Decoding Rules
ToencodeanddecodetheparametersinaSOAPRPCmessage,themessagecoderfollows
theSOAP1.1encodingstyle,whichisspecifiedbythefollowingSOAPencodingStyle
attribute:
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
Thisattributespecifiesthesetofrulesthatgovernhowtheinputandoutputparameters
ofaSOAPRPCmessagearetoberepresentedinXML.Theserulesaredefinedinthe
SOAPEncodingsectionoftheSimpleObjectAccessProtocol(SOAP)1.1W3CNote08
May2000athttp://www.w3.org/TR/SOAP/.
125
Note: Currently,theIntegrationServersupportsonlytheSOAP1.1.encodingstyle.
However,theabilitytoaccommodatedifferentencodingstylesisdesignedintothe
product,soasadditionalstylesbecomeavailable,supportforthemcaneasilybeaddedto
theIntegrationServer.
126
Message Coder
Duringthedecodingprocess,themessagecodermatchesthenamesoftheparameters
passedbytheclientwiththenamesoftheparametersdefinedintheinputsignature.It
usestheinputsignaturetodeterminehowtorendertheparametersinthepipeline.
If the input signature declares a parameter as a String,theparameterisrenderedasaJava
Stringobject,regardlessofthedatatypedeclaredintheXML.
If the input signature declares a parameter as an Object,thevalueisrenderedaccordingto
thedatatypedeclaredintheXML.(ForalistofXMLdatatypesandtheJavaclassesto
whichtheyareconverted,seeAppendix B,Encoding/DecodingDataType
Mapping.)IfanXMLelementdoesnotdeclareitstype,theparameterisrenderedas
aString.
Thefollowingtableshowshowthemessagecoderwoulddecodeaninputparameter
namedamtgivenvariousdatatypedeclarationsandinputsignatures.Notethatwhenthe
inputsignaturedefinestheparameterasaString,themessagecoderalwaysproducesa
Stringobject,regardlessofthedatatypedeclaredintheXML.
127
and Input
Signature is...
<amt xsi:type="xsd:decimal">500.00</amt>
<amt xsi:type="xsd:decimal">500.00</amt>
of class java.math.BigDecimal
<amt xsi:type="xsd:float">500.00</amt>
<amt xsi:type="xsd:float">500.00</amt>
of class java.lang.Float
<amt>500.00</amt>(that is, undeclared)
<amt>500.00</amt>(that is, undeclared)
128
.
.
.
<cDate id="id1">03/15/2000</cDate>
<amt id="id2">300</amt>
<oDate href="#id1"></oDate>
.
.
.
In a forward reference, a
referenced value appears
after the point where it is
referenced.
.
.
.
<oDate href="#id1"></oDate>
<amt id="id2">300</amt?
<cDate id="id1">03/15/2000</cDate>
.
Forreferencedelements,themessagecoderputsasinglecopyofthevalueinthepipeline
andgeneratesreferencestoit.
Note: Ifthemessagecodercannotresolveareference,itgeneratesanullobjectforthat
parameter.Italsoreportstheproblemintheserverlogiftheserverisrunningatdebug
level5orhigher.
129
Forexample,toensurethatclientsprovideanonnegativeintegerforaparameternamed
hours,youwould:
ConstrainthehoursparameterbysettingitsContent type propertyto:
nonNegativeInteger {http://www.w3.org/2001/XMLSchema}
EnabletheparametersRequiredproperty,and
Setthe Validate input optiononthetargetservices Input/Output tab.
Thesesettingswouldcausetheservertothrowanexceptioniftheclientomittedthehours
parameterorsubmittedavaluesuchas.5ortwentyratherthananonnegativeinteger.
Formoreinformationaboutvalidatingdataatruntime,seethewebMethodsDeveloper
UsersGuide.
130
Message Coder
Duringtheencodingprocess,themessagecoderconvertstheparametersdefinedinthe
outputsignaturetoXMLencodedvalues.
If the output signature declares a parameter as a String,thevalueoftheparameteris
encodedaccordingtoitsContent typeproperty.Forexample,ifContent typewere
nonNegativeInteger {http://www.w3.org/2001/XMLSchema},thevaluewouldbe
encodedasanxsi:type="xsd:nonNegativeInteger".IfContent typeisnotspecified,
themessagecoderencodesthevalueasastring(asiftheparameterwereContent type
string{http://www.w3.org/2001/XMLSchema}).
If the output signature declares a parameter as an Object,thevalueoftheparameteris
encodedaccordingtoitsunderlyingJavaclass.Forexample,iftheobjectwerea
java.lang.Boolean,themessagecoderwoulddeclareitas xsi:type="xsd:boolean"
intheresultingXML.ForalistofrecognizedJavaclassesandtheXMLSchemadata
typestowhichtheyareconverted,seeAppendix B,Encoding/DecodingDataType
Mapping.Ifthemessagecoderdoesnotrecognizetheunderlyingclass,itencodes
theparameterasastring(itusestheobjectstoString()methodtoproducethe
parametersvalue).
131
Important! Itisimportanttounderstandthatthemessagecoderencodesonlythose
parametersdefinedintheservicesoutputsignature.Itdoesnotencodetheentirepipeline.
Therefore,ifaservicehasnooutputsignature,novaluesarereturnedtotheclient.
Additionally,thismeansthatifanyoftheoriginalinputvaluesneedtobereturnedtothe
client,thosevaluesmustbeincludedintheoutputsignature.
132
Andencodesthemlikethisifwatt.server.SOAP.useMultiReference=false:
.
.
.
<cDate>03/15/2000</cDate>
<amt>300</amt>
<oDate>03/15/2000</oDate>
<acct>cash</acct>
.
.
.
Formoreinformationaboutwatt.server.SOAP.useMultiReferenceandotherSOAP
relatedserverparameters,seeAppendix C,SOAPRelatedServerParameters.Formore
informationaboutsettingserverparameters,seethewebMethodsIntegrationServer
AdministratorsOnlineHelp.
133
134
135
First, you must build a service that acts as a SOAP processor. Youcancodethisserviceto
operateonSOAPmessagesinwhatevermanneryoursolutionrequires.However,it
mustacceptasoapRequestDataobjectandasoapResponseDataobjectasinput,andmust
returnasoapResponseDataobjectasoutput.Forinformationaboutthisstep,see
BuildingaCustomSOAPProcessoronpage 137.
Second, you must register the service on the Integration Server as a SOAP processor. Youdo
thistoassociatetheservicewithaspecificprocessdirective(anamethatisunique
amongallSOAPprocessorsontheserver)andmakeitaccessibletotheSOAP
messagehandler.ForinformationaboutregisteringaserviceasaSOAPprocessor,see
RegisteringaSOAPProcessoronpage 145.
Important! ThecreationofcustomprocessorsisdeprecatedforIntegrationServer7.1.
Customprocessorscreatedinearlierreleasesarestillsupported.
ThefollowingURLwouldinvokethecustomprocessorregisteredassvcRq.
http://rubicon:5555/soap/svcRq
Important! Processdirectivesarecasesensitive.ThedirectivespecifiedintheURLmust
matchexactlytheprocessdirectiveasitisdefinedonthewebMethodsIntegrationServer.
136
IftheURLspecifiesaprocessdirectivethatisnotregisteredontheserver,theSOAP
messagehandlerreturnsaSOAPfaultcontainingthefollowingerrormessage:
[ISS.0088.9123] Requested SOAP processor directiveName is not
registered on this server.
ForinformationaboutSOAPfaults,seeAppendix A,SOAPFaultsReturnedbythe
IntegrationServer.
soapRequestData(oftypeObject)
soapResponseData(oftypeObject)
Outputs:
soapResponseData(oftypeObject)
Youcanusepub.soap.utils:requestResponseSpectospecifytheinputsandoutputsforthe
service.
2
Code the service to process SOAP messages in the way you need. Thefollowingdescribes
severaltasksthatacustomprocessortypicallyexecutes.However,thebehaviorof
yourprocessorwilldependentirelyontheneedsofyoursolution.Itmightincludeall,
some,ornoneofthefollowing:
Extracting data from the SOAP request message.ToextractinformationfromaSOAP
message,youusethedataretrievalutilitiessuchasgetBodyandgetHeader.(Fora
completelistofthedataretrievalservices,seepage 60.)Theseservicesretrievea
137
specifiedelementfromthesoapRequestDataandreturntherequestedelementas
anXMLnode(oranarrayofXMLnodes).Toextractdatafromthereturnednode,
youqueryitwiththepub.xml:queryXMLNodeservice.
Important! BeawarethatyoucannotquerythesoapRequestDataobjectdirectly.To
extractinformationfromsoapRequestData(orsimilarSOAPobjects,suchas
soapDataandsoapResponseData),youmustuseoneofthedataretrievalservicesto
extractanelementofthemessage(forexample,theheader,thebody,ortheentire
envelope)andquerytheresultingXMLnode.
Invoking services to process the data extracted from the message.Afterextractingthe
datawithwhichyouwanttowork,youcanmapittotheappropriatevariables(if
necessary)andpassittoservicesthatprocessitinsomeway.(Toensurethatthe
datayouhaveextractedisinthecorrectformat,youmightwanttovalidateit
againstaschemausingpub.schema:validateormakesurethattheservicetowhich
youpassthedataperformsdatavalidationonitsinputparameters.)
Invoking services based on a particular QName in the SOAP request message.Ifyour
SOAPmessagesuseaqualifiedname(QName)tospecifyatargetserviceonthe
webMethodsIntegrationServer,youcanusepub.soap.utils:getQName(whichresides
intheWmPublicpackage)toextracttheelementsQNamefromthemessageand
thenusepub.universalName:find(whichresidesintheWmPublicpackage)tolocate
theserviceassociatedwiththatname.
Note: ToinvoketheserviceassociatedwithaQName,youwillneedtocreatea
JavaservicethatperformsadoInvokeoftheservicereturnedby
pub.universalName:find.Seethecom.wm.app.b2b.server packageinthewebMethods
IntegrationServerJavaAPIReferenceforinformationaboutthedoInvokemethod.
ThismethodisamemberoftheServiceclass.
3
When you finish coding the service, register it as a SOAP processor. Thisstepassociatesthe
servicewithaspecificprocessdirectiveandmakesitaccessibletotheSOAPmessage
handler.ForinformationaboutregisteringaserviceasaSOAPprocessor,see
RegisteringaSOAPProcessoronpage 145.
138
Error Handling
IfyourSOAPprocessor(oranyservicethatitcalls)throwsanexception,theSOAP
messagehandlerautomaticallyreturnsthefollowingSOAPfaulttotheclient.Thefault
includesadetailelementthatprovidesspecificinformationabouttheexception.This
elementwillincludeastackTraceelementiftheclientisamemberoftheDevelopersor
Administratorsusergroup.
When a custom
processor throws an
exception, the
message handler
returns a SOAP fault...
...containing an error
message...
...and details
about the error.
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>
SOAP-ENV:Client
</faultcode>
<faultstring>
[ISS.0088.9134] Exception occurred while processing the body of the message
</faultstring>
<faultactor>
http://localhost:5555/soap/mySoapProc
</faultactor>
<detail xmlns="http://www.webmethods.com/2001/10/soap/">
<exception>
<className>nameOfClassThatWasThrown</className>
<message xml:lang="en-US">detailedMessageIssuedbyException</message>
<stackTrace>textFromStackTrace</stackTrace>
</exception>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Note: TheSOAPmessagereturnedtotheclientwhenanexceptionoccurscontainsonlythe
SOAPfault.Itdoesnotincludeanymessagecontent(forexample,headerentries,body
entries)thatthetargetservicemayhaveinsertedintosoapResponseDatabeforethe
exceptionoccurred.
139
OR
Codetheprocessortodetecttheerror,butinsteadofthrowinganexception,compose
yourownSOAPfaultinsoapResponseDataandthenexitnormally.Thiswillcausethe
messagehandlertosimplyreturnthecontentsofsoapResponseData(whichcontains
theSOAPfaultthatyourprocessorgenerated)totheclient.Ifyouchoosethis
approach,youmustbethoroughlyfamiliarwiththeSOAPspecificationregarding
faultcodes.
Important! TheSOAPspecificationstatesexplicitlythattherecipientofaSOAPmessage
mustreturnaSOAPfaultanytimeitfailstoprocessthesubmittedmessagesuccessfully.
FormoreinformationaboutSOAPfaults,seeAppendix A,SOAPFaultsReturnedbythe
IntegrationServerofthisdocumentandtheSimpleObjectAccessProtocol(SOAP)1.1
W3CNote08May2000athttp://www.w3.org/TR/SOAP/#_Toc478383507forSOAP1.1and
theSOAP1.2W3CRecommendation27April2007athttp://www.w3c.org/TR/soap12part1/
forSOAP1.2.
ExampleCustom Processor
ThefollowingisanexampleofaSOAPprocessorthatdropsthebodyofthemessage
(alongwithseveralotherpiecesofcontrolinformationthatitextractsfromtheheader)
intoaqueuebasedonthevalueofacertainheaderentry.Ifthedocumentissuccessfully
loggedintothequeue,theprocessorreturnsanacknowledgment.Otherwise,itgenerates
anerrormessageandthrowsanexceptionsothattheclientreceivesaSOAPfault.
Thisexampleislocatedinsample.soap:customProc_msgQueueintheWmSamplespackage.
YoucanfindtheWmSamplespackageinthecertifiedsamplesareaoftheKnowledgeBase
ontheAdvantageWebSite.YoumightwanttoopenthisexamplewithDevelopertosee
howthepipelineismappedbetweensteps.
Note: IfyouwanttoexecutethisservicefromDeveloper,enabletheacquireSOAPMessage
stepatthetopoftheflow.ThisstepgeneratessoapRequestDataandsoapResponseData
objects,whichsimulatethepipelinethatthisservicewouldreceivefromtheSOAP
messagehandler.IfyouwanttoexecutethisserviceviatheSOAPmessagehandler(that
is,fromaclient),disableacquireSOAPMessage.
140
Description
Step 1
141
Description
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
This service
pulls certain
control
information
from the
header...
<SOAP-ENV:Header>
<EXP:postmark xmlns:EXP="http://www.exprint.com/inbox">
<docType>RFQ</docType>
<priority>05</priority>
<sender>http://www.polymfg.com/PURCH/A30155G</sender>
<tStamp>20011129.161434206</tStamp>
</EXP:postmark>
</SOAP-ENV:Header>
...and extracts
the document
carried in the
body of the
message and
drops it in a
queue
<SOAP-ENV:Body>
<RFQ:quoteReq xmlns:RFQ="http://www.exprint.com/orderSys">
<acct>1417-A199-0404-5POLY</acct>
<jobSpecs>
<copies>5000</copies>
<stock>30F-SIL</stock>
<ink>P440</ink>
</jobSpecs>
</RFQ:quoteReq>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Toextractinformationfromthemessage,thisserviceexecutesthefollowing
steps:
Step
Description
1.1
getHeaderThisstepretrievestheheaderfromsoapRequestData.It
returnsanXMLnodethatrepresentstheentireheaderelement(thatis,
from<Header>to</Header>).
1.2
queryXMLNodeThisstepextractsspecificpiecesofcontrol
informationfromtheheaderbyexecutingthefollowingXQLqueries
againsttheXMLnodereturnedbyStep 1.1.
Var Name
XQL Query
QU_docType
/PMK:postmark/docType/text()
QU_priority
/PMK:postmark/priority/text()
QU_sender
/PMK:postmark/sender/text()
142
Description
QU_timeSen
t
/PMK:postmark/tStamp/text()
IfyouexaminethequeryXMLNodestepwithDeveloper,youwillseethat
italsoexecutesthefollowingquery,whichextractstheentireHeader
nodeasaString:
Var Name
XQL Query
wholeNode
/source()
Thisqueryisincludedfordebuggingpurposes.Itallowsyouto
examinetherawXMLassociatedwiththeHeadernode.Ifyouwereto
putthisserviceintoproduction,youwouldomitthisquery.
Step 2
1.3
getBodyThisstepretrievesthebodyfromsoapRequestData.Itreturns
anXMLnodethatrepresentstheentirebodyelement(thatis,from
<Body>to</Body>).
1.4
queryXMLNodeThisstepextractsthecontentsofthebodyelementby
executingthefollowingXQLqueryagainsttheXMLnodereturnedin
Step 1.3.
Var Name
XQL Query
QU_doc
//source()
143
Description
Step 3
The receipt
from the
queue is
returned in
the body of
the SOAP
response
message
Toproducetheresponsemessage,thisserviceexecutesthefollowingsteps:
Step 4
Step
Description
3.1.1
documentToXMLStringThisserviceconvertsthereceiptdocumentto
anXMLString.
3.1.2
xmlStringToXMLNodeThisstepconvertstheXMLStringtoanXML
node.(RecallthattoaddabodyentrytosoapResponseData,youmust
placetheentryinthepipelineasanXMLnode.)
3.1.3
addBodyEntryThisstepaddsthebodyentrytosoapResponseData.
144
Description
IfyouexecutethisserviceandexaminethecontentsoffinishedMessageonthe
Resultspanel,youwillseeaSOAPmessagesimilartothefollowing:
145
To...
directive
AStringspecifyingtheprocessdirectivethatyouwantto
assigntotheprocessor.
Note: Useonlyletters,digits,orthecharacters-_.!~*'( ) in
thenameyouspecifyindirective.
svcName
AStringspecifyingthefullyqualifiednameoftheservice
thatyouareregisteringasaSOAPprocessor.
descriptiveName
Optional.AStringthatcontainsadescriptivecommentfor
thisSOAPprocessor.Thiscommentisshownwhenyourun
theutilityservicepub.soap.processor:listtogetalistofthe
registeredSOAPprocessors.
validateSoapMessage
Optional.AStringindicatingwhethertheSOAPmessage
handleristovalidatetheSOAPmessagesthatthisprocessor
sendsandreceives.Thissettingoverridestheserversglobal
watt.server.SOAP.validateSOAPMessage setting.
Run the flow service that you just created and verify that it executed successfully.Ifaprocessor
isalreadyregisteredunderthenameyouspecifiedindirective,theservicewillthrow
anexception.Inthiscase,youmusteitherregisterthenewprocessorunderadifferent
name,or,ifyouwantthenewprocessortoreplacethecurrentone,youmust
unregisterthecurrentprocessor(withpub.soap.processor:unregisterProcessor)andthen
registerthenewone.
146
Eachdocumentinlistwillcontainthefollowingkeys:
Key
Value
directive
AStringcontainingtheprocessdirectivethatisassignedtothe
SOAPprocessor.
svcName
AStringcontainingthefullyqualifiednameoftheservicethat
functionsastheSOAPprocessor.
descriptiveName
AStringcontainingthedescriptivecommentthatwasgiventothe
SOAPprocessorwhenitwasregistered.Thiselementwillbeempty
iftheprocessorwasnotregisteredwithadescriptivecomment.
validateSoapData
AStringindicatingwhethertheSOAPmessagehandlervalidates
theSOAPmessagesthatthisprocessorsendsandreceives.
147
148
Index
Index
A
accessing
custom processor 136
default processor 40
RPC Client 66
RPC processor 118
actor attribute
example of 14, 15
general usage 14, 15
addBodyEntry service 43, 49, 53, 56, 138, 144
addHeaderEntry service 43, 49, 53, 55, 138
adding content to a SOAP message 43, 48, 53, 55, 56, 138, 144
addTrailer service 43, 53, 138
application data 15
architecture of SOAP facility 22
attributes (actor, mustUnderstand) 14, 15
B
behavior
default processor 40
RPC processor 120
Body element
adding content to 48, 56
basic structure of 10
example of 16
Fault codes 17, 80
requirements of 15
building a custom processor
example 140
general steps 137
building a target service
example 44, 123
general steps 42
building SOAP messages
example 53
general steps 52
building solutions
receive messages 32
send messages 37
business payload 15
C
classname element 81
composing
SOAP request 52, 53
SOAP response 43, 48, 138, 144
conventions used in this document 7
createSoapData service 52, 54
creating
SOAP messages 52
custom processors
accessing 136
addressing messages to 136
example of 140
how to build 137
inputs and outputs 136, 137
overview of 136
registering on server 136, 138, 145
returning errors from 139
unregistering on server 147
D
data types
supported by message coder 103
XML to Java conversion 104, 111
data-retrieval services
using in custom processors 137, 141
using in target service 42, 46
deactivating a SOAP processor 147
decoding SOAP RPC parameters. See message coder
decomposing SOAP messages. See extracting data from SOAP
messages
default processor
accessing 40
addressing messages to 40
behavior of 40
building target services for 42
inputs and outputs 41
149
Index
E
encoding SOAP RPC parameters. See message coder
encodingStyle attribute 125
enforceMsgPartNS parameter 115
Envelope element
basic structure of 10
namespace declarations 11
requirements of 11
error handling
in custom processors 139
in target services 43, 122
list of Fault codes 79
explicit universal names 34
extracting data from SOAP messages 42, 46, 63, 73, 137, 141
G
getBody service 42, 46, 60, 137, 143
getBodyEntries service 60
getDocument service 60
getHeader service 42, 60, 137, 142
getHeaderEntries service 60
getQName service 138
getTrailers service 42, 60, 137
H
Header element
adding content to 49, 55
attributes of 14
basic structure of 10
example of 13
namespace declarations 12
requirements of 12
HTTP, using to send SOAP messages 57
I
implicit universal names 34
invoking a remote procedure call 66
J
Java data types 103
Java-to-XML data type mapping 111
Fault codes
example of 18, 82
list of 79
structure of 17, 80
testing for 63, 73
faultactor element 17, 81
faultcode element 17, 80
faultstring element 17, 81
feature overview 22
fetching data from a SOAP message 42, 46, 63, 73, 137, 141
find service 37, 138
list service
for registered processors 146
for universal names 37
local names 33, 34
M
message coder
data type mapping 103
data-type mappings for decoding 104
data-type mappings for encoding 111
decoding Object parameters, RPC client 76
decoding Object parameters, RPC processor 127
decoding RPC parameters, RPC client 76
decoding RPC parameters, RPC processor 126
150
Index
N
namespace names 33
namespaces
enforcing in header and body entries 53, 115
for SOAP elements 11
usage in Envelope 11
usage in the Header 12
usage in universal names 33
nodes
adding to SOAP messages 43, 49, 53, 55, 138, 144
extracting data by querying 42, 46, 60, 137, 142, 143
generating 43, 49, 53, 55, 138, 144
returned by data-retrieval services 42, 46, 60, 137, 142, 143
validating contents of 43, 138
normalization
expected of QNames 41, 119
universal names 34
O
overview of SOAP 10
P
parameters, watt.server.SOAP 114
payload 15
posting SOAP messages to the webMethods Integration Server
23
process directive
assigning to custom processor 145
deactivating 147
description of 32
for custom processor 136
for default processor 40
for RPC processor 118
modifying 147
position in URL 23
processor:list service 146
processor:registerProcessor service 145
151
Index
Q
QNames
extracting from message 138
invoking services by 138
used in SOAP RPC 118, 119, 120
qualified names. See QNames
queryXMLNode service 42, 46, 60, 137, 142, 143
R
receiving messages
building solutions that receive messages 32
overview of 22
via custom processor 136
via default processor 40
via RPC processor 118
registering a custom processor 136, 138, 145
registerProcessor service 145, 146
remote procedure call
decoding output parameters 76
encoding input parameters 74
invoking 66
processing response 73
request messages
composing 52
processing 42, 137
response messages
composing 43, 138
processing 63, 73
retrieving data from SOAP messages 42, 46, 63, 73, 137, 141
RPC client 66
calling procedures remotely 66
RPC message
example of 118
QName 118, 119
response namespace 120
results example 119
RPC processor
accessing 118
addressing messages to 118
S
schemas
governing Envelope structure 12
validating application data against 43, 138
validating messages against 24
sending SOAP messages
building solutions that send messages 37
example 61
general steps 57
overview of 25
sending SOAP RPC messages
overview of 27
using the RPC client 66
ser-root prefix 120
server parameters
watt.server.SOAP.directive 114
watt.server.SOAP.enforceMsgPartNS 115
watt.server.SOAP.useMultiReference 115
watt.server.SOAP.validateSOAPMessage 114
serviceStackTrace element 82
SOAP directive, changing 114
SOAP faults. See Fault codes
SOAP message handler. See message handler
SOAP processors
custom processors 33, 136
default processor 33, 40
displaying list of 146
overview of 32
posting messages to 23
registering on server 145
role in overall architecture 23, 25
RPC processor 33, 118
supplied by webMethods 33
unregistering 147
soapData object
adding content to 53
creating 52, 54
soapDataToString service 49, 56, 63, 144
152
Index
target services
assigning universal names to 43
example of 44, 123
how to build 42
returning errors from 43, 122
selection process 40
signature requirements 42
using with RPC processor 121
trailers
example of 18
usage 18
troubleshooting information 7
typographical conventions in this document 7
watt.server.SOAP.directive 114
watt.server.SOAP.enforceMsgPartNS 115
watt.server.SOAP.useMultiReference 75, 115, 132
watt.server.SOAP.validateSOAPMessage 114
X
XML data types 103
XML nodes. See nodes
XML, encoding and decoding. See message coder
xmlStringToXMLNode service 43, 49, 53, 138, 144
XML-to-Java data type mapping 104
153
Index
154