Beruflich Dokumente
Kultur Dokumente
BestPracticesDocument
LastUpdated:April14,2009
OracleProprietaryandConfidential
TableofContents
OracleBPMWebServicesBestPracticesdocument ..................................................................3
ConsumingExternalWebServicesfromOracleBPM ................................................................4
IntrospectingWebServices..............................................................................................................4
ChangingtheWSDLURLatruntime.............................................................................................8
DiscoveringWebServicesoverHTTPSusingcertificates...................................................8
WebServiceAuthentication .......................................................................................................... 11
WSSecurity:UserNameTokenProfilesecuredWebServices.................................. 11
HTTPBasicAuthentication(Transportsecurity) ........................................................... 13
SpecifyingadifferentUser/PasswordwheninvokingtheWebServiceusing
PBL....................................................................................................................................................... 14
ExposingOBPMassetsasWebServicesforexternalconsumption.................................. 16
SpecifyingSecurityforProcessesexposedasWebServices........................................... 16
SpecifyingSecurityforPAPIWS ................................................................................................. 17
ClientFrameworkstoconnecttoProcessasaWebServiceandPAPIWS .............. 18
ClientAuthentication........................................................................................................................ 18
SessionIdbasedClientAuthentication ............................................................................... 18
WSSecurityUserNameTokenProfileauthentication.................................................. 19
PAPIWSSingleSignOn................................................................................................................... 20
GeneralBestPractices .......................................................................................................................... 22
WebServiceVersioning................................................................................................................... 22
WebServiceExceptionHandling ................................................................................................ 22
OracleProprietaryandConfidential
OracleBPMWebServicesBestPracticesdocument
Thefollowingdocumentwillconcentrateonprovidinggeneralinformation
abouthowtouseWebServiceswithOracleBPM.
Thedocumentwillbedividedinthefollowingsections:
a) ConsumingExternalWebServicesfromOracleBPM
b) ExposingOBPMassetsasWebServicesforexternalconsumption
c) BestPractices
d) Troubleshooting
OracleProprietaryandConfidential
ConsumingExternalWebServicesfromOracleBPM
Thissectionofthedocumentwillconcentrateondescribingthedifferent
proceduresanddetailsabouthowtoconsumeanddiscoveraWebServicethatcan
beintrospectedandtheninvokedfromanOracleBPMbusinessprocess.
IntrospectingWebServices
OracleBPMhasthecapabilityofdiscoveringorintrospectingaWebService
WSDLDefinitionusingaURL.Typically,theWSDLsareexposedthroughanHTTP(S)
accessibleURLandinthecaseofthePayPalWebServices,thesearetheavailable
URLs:
http://www.paypal.com/wsdl/PayPalSvc.wsdl
https://www.paypal.com/wsdl/PayPalSvc.wsdl
IfweusetheOracleBPMStudioWebServiceIntrospectorWizardwecan
discovereitheroneoftheseserviceswiththefollowingwizardsequence:
OracleProprietaryandConfidential
WecanrightclickontheStudioCatalogModuleandselectCatalogue
Component>WebServiceasshowninthefigureabove.
ThenextstepwouldbetoprovidetheWSDLURLasshowninthefigure
below.
OralternativelyusetheWSDLURLusingtheHTTPStransportprotocolas
shownbelow:
OracleProprietaryandConfidential
ClickNexttocontinueandyouwillseetheprogressoftheintrospection
goingonasshowninthefigurebelow.
ClickFinishtocompletetheintrospection.Afterthisstep,youarereadyto
usethediscoveredandintrospectedWebServicecomponents.
TheresultofdiscoveringorinstrospectingaWebServicealsodefines2new
entriesintheprojectExternalResourcessectionasshowninthefollowing2
figuresbelow.
OracleProprietaryandConfidential
Inthiscase,weareselectingtheWebServiceonespecificallyanditpointing
totheWebServiceEndPoint/2.0/.ItisalsomakingreferencetoaspecificServer
Configurationthathasthemachinelocationasshowninthefigurebelow.
Inthisfigure,youwillseetheURLtextfieldcontainingtheaddressorURLto
theWebServiceEndPointextractedfromtheintrospectedordiscoveredWSDL.
OracleProprietaryandConfidential
ChangingtheWSDLURLatruntime
Onceaprojecthasbeenpublishedanddeployed,itispossibletochangethe
valuesforthepreviouslymentionedExternalresources:WebServiceEndPointHost
andPortaswellastheEndPointURLinthatEndPointmachinelocation.
ThiscanbedonethroughtheProcessAdministratorWebInterfaceasshown
below.
DiscoveringWebServicesoverHTTPSusingcertificates
WhentryingtodiscoveraWebServiceWSDLoverHTTPSthatuses
certificates,iftheclientdoesnothavethecertificateinstalledontheclient
application(inthiscaseOracleBPMStudio),therewillbeproblemsinreachingout
toitandproperlyaddressingtheintrospectionprocedure.
Thetypicalerrormessagewiththiscasewhenthecertificateisnotinstalled
intheOracleBPMStudiowouldbesomethinglikethis:
Introspecting...
downloading /stockquote.wsdl
[Error] I/O error: sun.security.validator.ValidatorException: PKIX
path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable
to find valid certification path to requested target..
[Error] Instrospection exception:
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
OracleProprietaryandConfidential
sun.security.provider.certpath.SunCertPathBuilderException: unable
to find valid certification path to requested target.
ThismeanstheOracleBPMStudioapplicationisreceivingacertificatefrom
theWebServerhostingtheWSDLthatitcannottrust.Assuch,weneedtoinstallthe
certificateontheJavaVirtualMachineusedbyOracleBPMStudio.Belowwewill
describethesesteps.
1.Copytheclientcertificate(filewith.cerextension)tothemachinewhere
OracleBPMStudioisinstalled.Forexamplec:\CitiCertificate.cer.
2.Install/ImportthecertificateonakeystorethatisbeingusedbytheOracle
BPMStudio.Bydefault,OracleBPMStudiodoesnotuseaKeyStore,sowewillmost
likelyneedtogenerateanewone.Thiscanbedonewithacommandlineasfollows:
>$JAVA_HOME/bin/keytoolimportaliasCitiGroupfile
c:\CitiCertificate.cerkeystorec:\OBPMStudioKeyStore.storestorepasspassword
Inthiscase,weassumethattheOrganizationnameforwhichthecertificate
wasextendedisCitiGroup.Wealsoassumethatthepasswordforthekeystorein
whichwewillimportthecertificatewillbepassword.Wealsoassumeyouhavea
JavaDeveloperKit(JDK)installedsincethesecertificaterelatedcommandsarenot
distributedwiththeJVMthatcomeswithOracleBPMStudio.
3.SetthefollowingpropertiesinthefollowingfilesdependingtheOracle
BPMStudioversionused:
ALBPMStudio5.7:Editthe$STUDIO/bin/albpmstudio.propertiesandadd
thefollowing2systemproperties:
javax.net.ssl.trustStore=c:/CitiKeyStore.store
javax.net.ssl.trustStorePassword=password
# fuego.boot.verbose=true
fuego.log.runningtime=true
fuego.update.disabled=true
javax.net.ssl.trustStore=c:/CitiKeyStore.store
javax.net.ssl.trustStorePassword=password
#
ALBPMStudio6.0/OBPMStudio10gR3:Editthe
$STUDIO/eclipse/eclipse.iniandaddthefollowingsystemproperties:
OracleProprietaryandConfidential
javax.net.ssl.trustStore=c:/CitiKeyStore.store
javax.net.ssl.trustStorePassword=password
asindicatedinthelinebelow:
-Djava.endorsed.dirs=
-XX:PermSize=64M
-Djavax.net.ssl.trustStore=c:/CitiKeyStore.store
-Djavax.net.ssl.trustStorePassword=password
IMPORTANT:ItisworthpointingoutthatthepropertiesareNOTtheones
withtheprefixkeyStore,buttheoneswiththeprefixtrustStore.
4.LaunchOracleBPMStudioagainandthistime,whenyoutrytoinstrospect
theWebServiceitshouldwork.
AnotheralternativepathforthisistodownloadtheWSDLfilewiththe
browserlocallyandintrospecttheWebServicefromthefilesystemdirectly.
OracleProprietaryandConfidential
WebServiceAuthentication
ThissubsectionofthedocumentwillconcentrateonaddressinghowOracle
BPMcaninvokesecuredwebservices.
WSSecurity:UserNameTokenProfilesecuredWebServices
TheUserNameTokenProfileauthenticationisnotanoutoftheboxfeature
inALBPM5.7.ThisparticularimplementationfollowingtheWSUsernameToken
Profile1.1isprovidedstartinginALBPM6.0andalsoinOBPM10gR3.
ThefollowingsectionwilldescribehowtointrospectaWebServicethatat
runtimeusesWSSecurityUserNameTokenProfile.ThiswillbeillustratedinOracle
BPMStudio10gR3butitisthesameinALBPMStudio6.0.
1. LaunchtheWebServiceintrospectionwizardasshownbelow.
2. ClickNexttocontinueandwaituntiltheintrospectioncompletesas
shownbelow.ClickFinishtoproceed.
OracleProprietaryandConfidential
3. AftertheWebServicehasbeenintrospected,itisnecessarytogotothe
WebServicegeneratedExternalResourcesasshownbelow.
4. YouwillseetheSecurityTabatthebottomofthepanel.Clickonitand
youwillhavethefollowingpanelasshowninthefigurebelow.
OracleProprietaryandConfidential
5. IftheWebServiceisnotusingWSSecurityUserNameTokenProfile,the
valueintheSendUserNameTokendropdownshouldbeNone.
Otherwise,iftheWebServiceisprotectedwithWSSecurityUserName
TokenProfile,selectthewaythecredentialswillbesentfromtheWeb
Serviceitself.Theoptionsaretosendthecredentialsinplainformator
encryptedwithaDigest.
6. SelecttheappropriatemechanismforsendingtheUserNameTokenand
specifythedefaultusernameandpasswordforproperlyauthenticating
thefutureWebServicecalls.
HTTPBasicAuthentication(Transportsecurity)
InadditiontothesecurityenforcedattheSOAPstacklevel,itispossiblethat
theWebContainerusingBasicAuthenticationprotectstheWebServiceexposed
throughHTTPatthetransportlevel.
OracleBPMstartedsupportingHTTPBasicAuthenticationinALBPM6.0and
itisalsosupportedinOBPM10gR3.
InsteadofconfiguringthissecurityaspectintheWebServiceExternal
Resource,itisnecessarytospecifyitintheServerConfigurationexternalresource
OracleProprietaryandConfidential
partoftheWebService.ThefigurebelowwillshowwheretheHTTPBasic
Authenticationcanbespecified.
Fromthefigureabove,itshouldbeclearthattheRequiresHTTPBasic
Authenticationcheckboxisselectedandthatvalidvaluesarespecifiedinthe
User/PasswordTextFieldinthispanel.
SpecifyingadifferentUser/PasswordwheninvokingtheWebServiceusingPBL
ItispossiblethattheWebServicecallsmaynotneedtobedoneusingthe
generalcredentialsprovidedthroughtheprocedurebelow.Intheeventthatthecall
needstobeimpersonatedwithadifferentusernameandpassword,thisisthePBL
codethatcanbewrittenforthisparticularusecase.Thefollowingsampleassumes
thattheWebServiceisprotectedbothattheSOAPandHTTPlevels.Youwillneedto
OracleProprietaryandConfidential
adaptyourcodebasedonyourneedsbutwewantedtopresentalloptionsinthis
codesnippet.
configuration = Fuego.WebServices.Configuration();
endpoint =
Fuego.WebServices.HttpEndpoint("http://localhost:8081/
ws/myService");
// Add Endpoint
configuration.endpoint = endpoint;
// Setting Http Basic Authentication
endpoint.setUsername("username");
endpoint.setPassword("mypassword");
// Setting UsernamTokenProfile-Digest
httpBasicAuthPolicy =
Fuego.WebService.HttpBasicAuthenticationSecurityPolicy
("test1","password");
usernameTokenPlain =
Fuego.WebService.UsernameTokenProfileSecurityPolicy("t
est2","password");
policies as Fuego.WebService.SecurityPolicy[];
policies[]=usernameTokenPlain;
// Add policy
configuration.securityPolicies = policies;
service = Module.Pepe.Test1Service(configuration);
test1 service
using parameter = null
returning parameterOutput = parameterOutput
Alternatively,youcangettheExternalResourcedefinitionbyusingthe
followingConfigurationobjectconstructorbyprovidingthecasesensitivenameof
theExternalResourcenameasthesingleconstructorargument:
configuration =
Fuego.WebServices.Configuration("MyExternalResources")
;
OracleProprietaryandConfidential
ExposingOBPMassetsasWebServicesforexternalconsumption
Thissectionofthedocumentwillconcentrateondetailsastohowexpose
certainOracleBPMassetsasWebServices.Withinthiscategoryofassetswillfind:
a) ProcessesExposedasWebServices
b) PAPIWS
SpecifyingSecurityforProcessesexposedasWebServices
WhenexposingaprocessasaWebService,itispossibletospecifyhowitis
goingtobesecured.AtdesigntimeandinOracleBPMStudio10gR3(andalso
ALBPM6.0),itispossibletospecifywhatistheWebServicesecuritymechanismfor
doingthis.
IntheStudioIDE,gothroughthefollowingmenupath:Process>Process
WebService.Apanelsimilartotheonebelowwillbepresentedwhereitispossible
tospecifythemethodsthatwillexposetheprocesspublicinterfaceandwhereitis
alsopossibletospecifythesecurity.
OracleProprietaryandConfidential
Inthefigureabove,itispossibletospecifyWSSecurityUserNameToken
ProfileaswellasHTTPBasicAuthenticationasindicatedintheprevioussections.
Whentheprojectispublishedanddeployed,properExternalResourceswill
begeneratedforeveryprocessexposedasaWebServiceandtherightcredentials
canbespecifiedthere.
SpecifyingSecurityforPAPIWS
AnotherapplicationthatcanleveragetheWSSecurityandHTTPBasic
AuthenticationisPAPIWS.Asitmaybeknown,startinginALBPM6.0(andalsoas
partofOBPM10gR3),PAPIWSisbundledasasingleWebApplicationthatcan
serverSOAPrequeststointeractwithbusinessprocesseswithafinergranular
controlthanProcessesexposedasWebServices.
WhenlaunchingtheAdminCentercomponentofanyoftheEnterprise
distributions,itwillbepossibletoentertheConfigurationofthisinstallationand
navigatetothePAPIWSTabasshowninthefigurebelow.
OracleProprietaryandConfidential
Inthispanel,itispossibletoselecttheEnableHTTPBasicAuthentication
(disabledbydefault)aswellasEnableUserNameTokenProfileAuthentication
(enabledbydefault).
Itisthenresponsibilityoftheclientapplicationstoprovideproper
credentialsforthelevelofsecurityrequestedbythePAPIWSWebApplication.
ClientFrameworkstoconnecttoProcessasaWebServiceandPAPIWS
Whenaprocessinterfacehasbeencreatedforagivenprocessoryouwantto
connecttotheOracleBPMPAPIWSAPI,thefollowing2WebServicestack
frameworkshavebeenvalidated:
JAXWS2.1.x
.NETFramework2.0.5andMicrosoftWebServiceEnhancements3.0.
TherehavebeensomeproblemswhentestingdifferentWebServiceclient
frameworkslikeAXIS.SoAXISisnotrecommendedforinvokingWebService
componentsinOracleBPM.
Samplecodesnippetscanbefoundthroughthislink:
http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/papi/index.html.
ChecktheOracleBPMPAPIWebServicesectionforthedata.
ClientAuthentication
WhenyouareimplementingyourownWebServiceclientapplicationtotalktoa
businessprocessexposedasaWebServiceyouhavethefollowingalternatives:
SessionIdbasedauthentication
WSSecurityUserNameTokenProfileauthentication
Letsseeindetailseachinthenext2subsections.
SessionIdbasedClientAuthentication
ThisauthenticationmechanismistheonlyoneavailableinALBPM5.5and
ALBPM5.7.ItisalsosupportedindeprecatedfashioninALBPM6.0butifyouare
OracleProprietaryandConfidential
planningonusingthisnewrelease,werecommendtheuseofWSSecuritybased
authentication.
Inthiscase,theclientfirstneedstocreateasessionandthenusethe
returnedsessionidinallsubsequentcalls.Theclientapplicationisalsoinchargeof
thesessionlifecycleanditistheresponsibilityoftheclientapplicationtoclosethe
sessionwhenitisnolongerneeded.Itisworthtomentionthatthesessioncreation
isnotaquickoperationsinceitneedstoalsoidentifypermissionssoweencourage
sessioncachingtechniquesontheclientsidetopreventopeningandclosing
sessionstoofrequently.
ThefollowingisasnippetofcodeonhowtocreatethesessionwithPAPIWS
usingtheSessionIdmechanism:
ProcessServiceservice=locator.getProcessService();
StringuserId=user;
Stringpassword=password;
StringmySessionId=;
mySessionId=service.createSession(userId,password);
InstanceInfo[]instances=service.getInstancesByView(mySessionId,
view);
service.closeSession(mySessionId);
WSSecurityUserNameTokenProfileauthentication
ThisauthenticationmechanismhasbeenintroducedinALBPM6.0andonly
availableinALBPM6.0andOBPM10gR3.Itreplacesthesessionidbased
authenticationandthecredentialsasdefinedintheWSSecurityspecification
definitioncantravelintheSOAPmessage.
Inthiscase,theclientapplicationdoesnotneedtodosessionmanagement
asthisisautomaticallymanagedontheserversidebythePAPIWSapplicationof
theBPMEngineprovidingprocessesexposedasWebServices.Usuallythese
OracleProprietaryandConfidential
sessionswillleaveforaconfigurableamountoftimeandwhentheyarenotalready
created,theywillbecreatedontheflightautomatically.
Youcanfindcodesnippetsforcreatinganauthenticationrequestthrough
thislink:
http://download.oracle.com/docs/cd/E13154_01/bpm/docs65/pdf/Oracle
BPMPAPIDeveloperGuide_10.3.pdf
PAPIWSSingleSignOn
PAPIWSfunctionalityisprovidedthroughtheimplementationofaWeb
Application.InALBPM5.5andALBPM5.7,thePAPIWSfunctionalitywasjointly
distributedwiththeALBPMPortalWebApplication.InALBPM6.0andOBPM
10gR3,thePAPIWSfunctionalitywasdecoupledfromtheALBPMPortalorOBPM
WorkSpaceWebApplicationimplementationtoseparateandconfigurethese
individually.Oneofthesethingsissecurity.
InALBPM5.5andALBPM5.7,itispossibletoconfiguretheDirectoryService
usingtheTrustedmodewhereatauthenticationorlogintime,onlytheidentityof
theconnecteduserisvalidatedwithoutapasswordmatchingvalidation.This
functionalityalsoexistsinALBPM6.0andOBPM10gR3.Thisconfigurationis
inheritedbyconfiguringtheDirectoryServiceinTrustedmode.Asetofparticular
preferencesneedstobedefinedinthedirectory.properties(ALBPM5.5andALBPM
5.7)ordirectory.xml(ALBPM6.0andOBPM10gR3)aswellassomespecificsinthe
DirectoryServiceDatabase.Thisparticularconfigurationisoutofthescopeofthis
document,butitisincludedhereasareferenceofavailablefunctionality.
InadditiontotheTrustedDirectoryServicemode,ALBPM6.0andOBPM
10gR3canimplementaSSOmodulesoadditionalvalidationisavailable.ThisSSO
canbeseenintheAdminCenterTab.Thesettingsherearethenpropagatedtothe
papiws.propertiesfileinthefollowingpropertyentries:
fuego.papiws.enableSSO
fuego.papiws.sso.loginClassName
Belowyouwillfindthereferenceimplementationforacustom
implementationoftheloginClassName.
publicclassSSOUserLogin
implementsSSOUserLoginInterface
{
//~Methods..............................................................................................
OracleProprietaryandConfidential
publicStringgetUser(finalHttpServletRequestrequest,finalHttpServletResponse
response)
throwsSSOLoginException
{
returnrequest.getRemoteUser();
}
publicStringgetPassword(finalHttpServletRequestrequest,finalHttpServletResponse
response)
throwsSSOLoginException
{
returnnull;
}
publicbooleanskipFDIAuthentication()
{
returntrue;
}
publicStringgetLogoutURL()
{
returnnull;
}
publicStringgetLogoutRelativePath()
{
returnnull;
}
}
Intheprevioussubsectionswehaveidentifiedhowtocreatesessionswitha
sessionIdandWSSecurityauthenticationmechanisms.IfyouareconfiguringSSO
forPAPIWS,thenyouwillstillneedtocreatethesessionsthroughtheprovided
mechanismsanditwilldependontheSSOauthenticationmodulewhattodowith
theprovideddata.Thedefaultmechanismimpliescheckingtheparticipantexistsin
theOracleBPMDirectoryServicebutnopasswordmatchingisexercised.Sothe
passwordprovidedwhencreatingasessiondoesnotneedtohaveavalidone.
OracleProprietaryandConfidential
GeneralBestPractices
Thissectionofthedocumentwillmainlyconcentrateonprovidinggeneral
bestpracticeswhenworkingwithWebServicesmostlywhentheyareconsumed
fromwithinOracleBPMthroughtheintrospectionframework.
WebServiceVersioning
ItwouldnotbeuncommontoseetheWebServiceevolveovertime.
GenerallyspeakingyoucanhaveaWebServiceaddnewmethods,change
argumentsonanexistingmethodstojustnameafewofthemostcommon
upgrade/maintenanceoperations.
ALBPMdoesactuallyversiontheprocessesaswellasthecatalogitusesall
together,butoneoftheproblemswithWebServicesisthatpossibledifferent
implementationversionsmayusethesameExternalResource.
Thebestpracticeinthiscaseisthatifforsomereason,theinterfacesofthe
WebServicechangesandyouhaveinflightinstancesthatmaystillneedtoinvoke
thisWebService,thattheWebServiceisintrospectedagainonadifferentModule.
ThiswillforceanewExternalResourcedifferentthantheoneusedbytheprevious
versionoftheWebServiceusedbypreviousversionsorrevisions.Thiswillprevent
theundesiredeffectofanexistingoldinstancetryingtoinvokeanewinterfacethat
isnotcompatible.
WebServiceExceptionHandling
TheOracleBPMEngineconceptuallymanage2differenttypeofexceptions:
SystemExceptions:Thesearetypicallyassociatedtounexpected
componentinvocationbehaviorsnotrelatedwithbusinesslogicthatcan
becheckedintheimplementationofyourbusinessprocessorBPM
Objects.Forexample,thecomponentbackendnotbeingavailable,
networkissues,etc.Thesetypeofexceptionswillbe
BusinessExceptions:Thesearetypicallydefinedwithinthescopeofthe
BPMProjectCatalogandaretriggeredmanuallybythedeveloperinthe
codetheyimplement.Forexample,wemaycheckthedifferentpiecesofa
mailaddressandfindthatthezipcodedoesnotmatchtheaddress.In
OracleProprietaryandConfidential
thiscase,wecanmanuallyraiseaBusinessExceptionduetothiscoded
validation.
Dependingonwhatistheexceptiontype,theOracleBPMEnginewillreact
differentlytothem.Itisimperativethatthedifferencesareknownaswellasthe
effectstheyhaveonexceptioncatching/trappingcodingpractices.
InALBPM5.7,theinvocationofaWebServicemethodcantriggerbothtype
ofexceptions.WhentheWebServicerespondswithaSOAPfaulthandler,itwillbe
masqueradedasaBusinessException.Ontheotherhand,specificunderlyingWeb
ServiceproblemswillbetrappedasaSystemException.AllWebServiceExceptions
mustbetreatedasSystemExceptionsfromanexceptionhandlingperspective.Ifit
isnecessarytochangetheexceptionmechanismbehavior,itwillmandatorytore
catalogthewholeWebServiceagainsincenewmetadataneedstoberefreshedand
updated.Itisalsonecessarytogenerateanewrevisionoftheprojectifitisalready
deployedandupandrunning.
WhethertheWebServiceexceptionsareSystemorBusinesscanbedefined
intheAdvancedTaboftheWebServicedefinitionasshowninthefigurebelow.
Selectthecheckboxappropriately.
OracleProprietaryandConfidential
WhenSOAPFaultsaredeclaredintheWSDL,thesewillberepresentedas
ExceptionsintheWebServicemodulethathasbeenintrospected.Theseexceptions
wouldthenbeabletobeusedinanyexceptioncatchingconstructasshownbelow.
do
WebService.callMethod(m1,m2)
oneasMySOAPFaultException
//DoSomethingwiththisWebServiceException
end
IntheeventthattheexceptionsareNOTdefinedasSOAPFaultHandlers,it
willbenecessarytouseanexceptioncatcherusingtheAnytypeasshownbelow:
do
WebService.callMethod(m1,m2)
oneasAny
//DoSomethingwiththisWebServiceException
end
SomethingworthpointingoutisthatSOAPFaultexceptionsarenotJavaExceptions
andassuch,theydonotextendfromthejava.lang.Exceptionsuperclass.Anyisa
exceptionlayerontopofjava.lang.exception(inthePBLscriptinglanguage),that
allowshandlingthesenondeclaredSOAPFaults.
OracleProprietaryandConfidential
Troubleshooting
WhilediscoveringWebServicesaccessibleoverthenetwork,itispossible
thataproxyneedstobespecified.IftheWebServiceWSDLcannotbeaccessedas
showninthefigurebelow,itisnecessarytospecifytheproxyhostandportas
systempropertiesfortheJavaVirtualMachinerunningtheintrospectionaswellas
fortheonerunningtheBPMEngine.
ThesystempropertiesthatneedtobespecifiedintheOracleBPMStudioand
OracleBPMEngineare(theyarecasesensitive):
http.proxyHost
http.proxyPort
ThesecanbesetintheOracleBPMStudio5.7throughthefollowingmenu
paths:File>Preferences>ConnectionSettingsasshowninthefigure
below.
OracleProprietaryandConfidential
AccordingtoSunsspecification,ifthetransportprotocolusedisHTTPS
insteadofHTTP,thesystempropertiesare(notethesintheprefixword):
https.proxyHost
https.proxyPort
ThesepropertiescannotbeaddedthroughtheStudioUIandtheyneedtobe
addedtotheOracleBPMStudio5.7Launcherpropertiesfileunder
$STUDIO/bin/albpmstudio.laxasshowninthescreenshotbelow.
Theimportantlineshouldreadasfollows:
lax.nl.java.option.additional=eaXms64mXmx256m
Dhttps.proxyHost=proxyHost.oracle.comDhttps.proxyPort=8080
Dfile.encoding=UTF8
InALBPM6.0,thesepropertiescanbespecifiedinthe
$STUDIO/eclipse/eclipse.inifile.
InOracleBPMStudio10gR3,thepropertiesinthe
$STUDIO/eclipse/eclipse.inidoesnotwork,andtheseproxysettingsneedtobe
specifiedintheIDEitselffollowingthismenupath:"Window">"Preferences">
OracleProprietaryandConfidential
"General">"NetworkConnections".Inthispanel,weneedtospecifytheHTTPand
HTTPSproxyservers.Checkthefigurebelow.
Afterthesechanges,restartOracleBPMStudioandtrytheWebService
introspectionagain.
OracleProprietaryandConfidential