# BankControl.jcx Sample

This topic inludes the source code for the BankControl.jcx Sample.

## Sample Location

This sample is located in the following directory in your WebLogic Workshop installation:

BEA_HOME/weblogic81/samples/workshop/SamplesApp/WebServices/creditReport/

## Sample Source Code

`001 package creditReport; 002 003 /** 004 * Bank.jws is a very simple service for use by the CreditReport.jws sample service. Bank simulates a "long-running" procedure by using a timer to delay its asynchronous response. Note that Bank.jws and IRS.jws are identical except for method names and the default duration of the timer timeout. 005 * @jc:location http-url="Bank.jws" jms-url="Bank.jws" 006 * @jc:wsdl file="#BankWsdl" 007 * @editor-info:link autogen-style="java" source="Bank.jws" autogen="true" 008 */ 009 public interface BankControl extends com.bea.control.ControlExtension, com.bea.control.ServiceControl 010 { 011 public static class StartHeader 012 implements java.io.Serializable 013 { 014 public java.lang.String conversationID; 015 public java.lang.String callbackLocation; 016 } 017 018 public static class ContinueHeader 019 implements java.io.Serializable 020 { 021 public java.lang.String conversationID; 022 } 023 024 public static class CallbackHeader 025 implements java.io.Serializable 026 { 027 public java.lang.String conversationID; 028 } 029 030 031 public interface Callback extends com.bea.control.ServiceControl.Callback 032 { 033 /** 034 * <p>onDeliverAnalysis is a callback delivered to the client when processing is complete.</p> 035 * @jc:conversation phase="finish" 036 */ 037 public void onDeliverAnalysis (java.lang.String result); 038 039 } 040 041 /** 042 * <p>Starts the asynchronous analysis operation. When analysis is complete the onDeliverAnalysis callback will be called. If cancelAnalysis is invoked before the results are delivered, results will never be delivered.</p> 043 * @jc:conversation phase="start" 044 */ 045 public void startCustomerAnalysis (java.lang.String ssn); 046 047 /** 048 * <p>Cancels the analysis. The onDeliverAnalysis callback will not be called and the conversation is finished.</p> 049 * @jc:conversation phase="finish" 050 */ 051 public void cancelAnalysis (); 052 053 static final long serialVersionUID = 1L; 054 } 055 056 /** @common:define name="BankWsdl" value:: 057 <?xml version="1.0" encoding="utf-8"?> 058 <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:conv="http://www.openuri.org/2002/04/soap/conversation/" xmlns:cw="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:jms="http://www.openuri.org/2002/04/wsdl/jms/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://workshop.bea.com/Bank" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://workshop.bea.com/Bank"> 059 <types> 060 <s:schema elementFormDefault="qualified" targetNamespace="http://workshop.bea.com/Bank" xmlns:s="http://www.w3.org/2001/XMLSchema"> 061 <s:element name="onDeliverAnalysisResponse"> 062 <s:complexType> 063 <s:sequence/> 064 </s:complexType> 065 </s:element> 066 <s:element name="onDeliverAnalysis"> 067 <s:complexType> 068 <s:sequence> 069 <s:element name="result" type="s:string" minOccurs="0"/> 070 </s:sequence> 071 </s:complexType> 072 </s:element> 073 <s:element name="startCustomerAnalysis"> 074 <s:complexType> 075 <s:sequence> 076 <s:element name="ssn" type="s:string" minOccurs="0"/> 077 </s:sequence> 078 </s:complexType> 079 </s:element> 080 <s:element name="startCustomerAnalysisResponse"> 081 <s:complexType> 082 <s:sequence/> 083 </s:complexType> 084 </s:element> 085 <s:element name="cancelAnalysis"> 086 <s:complexType> 087 <s:sequence/> 088 </s:complexType> 089 </s:element> 090 <s:element name="cancelAnalysisResponse"> 091 <s:complexType> 092 <s:sequence/> 093 </s:complexType> 094 </s:element> 095 </s:schema> 096 097 <s:schema elementFormDefault="qualified" targetNamespace="http://www.openuri.org/2002/04/soap/conversation/"> 098 <s:element name="StartHeader" type="conv:StartHeader"/> 099 <s:element name="ContinueHeader" type="conv:ContinueHeader"/> 100 <s:element name="CallbackHeader" type="conv:CallbackHeader"/> 101 <s:complexType name="StartHeader"> 102 <s:sequence> 103 <s:element minOccurs="0" maxOccurs="1" name="conversationID" type="s:string"/> 104 <s:element minOccurs="0" maxOccurs="1" name="callbackLocation" type="s:string"/> 105 </s:sequence> 106 </s:complexType> 107 <s:complexType name="ContinueHeader"> 108 <s:sequence> 109 <s:element minOccurs="1" maxOccurs="1" name="conversationID" type="s:string"/> 110 </s:sequence> 111 </s:complexType> 112 <s:complexType name="CallbackHeader"> 113 <s:sequence> 114 <s:element minOccurs="1" maxOccurs="1" name="conversationID" type="s:string"/> 115 </s:sequence> 116 </s:complexType> 117 </s:schema> 118 </types> 119 <message name="onDeliverAnalysisSoapIn"> 120 <part name="parameters" element="s0:onDeliverAnalysisResponse"/> 121 </message> 122 <message name="onDeliverAnalysisSoapOut"> 123 <part name="parameters" element="s0:onDeliverAnalysis"/> 124 </message> 125 <message name="startCustomerAnalysisSoapIn"> 126 <part name="parameters" element="s0:startCustomerAnalysis"/> 127 </message> 128 <message name="startCustomerAnalysisSoapOut"> 129 <part name="parameters" element="s0:startCustomerAnalysisResponse"/> 130 </message> 131 <message name="cancelAnalysisSoapIn"> 132 <part name="parameters" element="s0:cancelAnalysis"/> 133 </message> 134 <message name="cancelAnalysisSoapOut"> 135 <part name="parameters" element="s0:cancelAnalysisResponse"/> 136 </message> 137 <message name="onDeliverAnalysisHttpGetIn"/> 138 <message name="onDeliverAnalysisHttpGetOut"> 139 <part name="result" type="s:string"/> 140 </message> 141 <message name="startCustomerAnalysisHttpGetIn"> 142 <part name="ssn" type="s:string"/> 143 </message> 144 <message name="startCustomerAnalysisHttpGetOut"/> 145 <message name="cancelAnalysisHttpGetIn"/> 146 <message name="cancelAnalysisHttpGetOut"/> 147 <message name="onDeliverAnalysisHttpPostIn"/> 148 <message name="onDeliverAnalysisHttpPostOut"> 149 <part name="result" type="s:string"/> 150 </message> 151 <message name="startCustomerAnalysisHttpPostIn"> 152 <part name="ssn" type="s:string"/> 153 </message> 154 <message name="startCustomerAnalysisHttpPostOut"/> 155 <message name="cancelAnalysisHttpPostIn"/> 156 <message name="cancelAnalysisHttpPostOut"/> 157 <message name="StartHeader_literal"> 158 <part name="StartHeader" element="conv:StartHeader"/> 159 </message> 160 <message name="ContinueHeader_literal"> 161 <part name="ContinueHeader" element="conv:ContinueHeader"/> 162 </message> 163 <message name="CallbackHeader_literal"> 164 <part name="CallbackHeader" element="conv:CallbackHeader"/> 165 </message> 166 <portType name="BankSoap"> 167 <operation name="onDeliverAnalysis"> 168 <documentation>&lt;p&gt;onDeliverAnalysis is a callback delivered to the client when processing is complete.&lt;/p&gt;</documentation> 169 <output message="s0:onDeliverAnalysisSoapOut"/> 170 <input message="s0:onDeliverAnalysisSoapIn"/> 171 </operation> 172 <operation name="startCustomerAnalysis"> 173 <documentation>&lt;p&gt;Starts the asynchronous analysis operation. When analysis is complete the onDeliverAnalysis callback will be called. If cancelAnalysis is invoked before the results are delivered, results will never be delivered.&lt;/p&gt;</documentation> 174 <input message="s0:startCustomerAnalysisSoapIn"/> 175 <output message="s0:startCustomerAnalysisSoapOut"/> 176 </operation> 177 <operation name="cancelAnalysis"> 178 <documentation>&lt;p&gt;Cancels the analysis. The onDeliverAnalysis callback will not be called and the conversation is finished.&lt;/p&gt;</documentation> 179 <input message="s0:cancelAnalysisSoapIn"/> 180 <output message="s0:cancelAnalysisSoapOut"/> 181 </operation> 182 </portType> 183 <portType name="BankHttpGet"> 184 <operation name="onDeliverAnalysis"> 185 <documentation>&lt;p&gt;onDeliverAnalysis is a callback delivered to the client when processing is complete.&lt;/p&gt;</documentation> 186 <output message="s0:onDeliverAnalysisHttpGetOut"/> 187 <input message="s0:onDeliverAnalysisHttpGetIn"/> 188 </operation> 189 <operation name="startCustomerAnalysis"> 190 <documentation>&lt;p&gt;Starts the asynchronous analysis operation. When analysis is complete the onDeliverAnalysis callback will be called. If cancelAnalysis is invoked before the results are delivered, results will never be delivered.&lt;/p&gt;</documentation> 191 <input message="s0:startCustomerAnalysisHttpGetIn"/> 192 <output message="s0:startCustomerAnalysisHttpGetOut"/> 193 </operation> 194 <operation name="cancelAnalysis"> 195 <documentation>&lt;p&gt;Cancels the analysis. The onDeliverAnalysis callback will not be called and the conversation is finished.&lt;/p&gt;</documentation> 196 <input message="s0:cancelAnalysisHttpGetIn"/> 197 <output message="s0:cancelAnalysisHttpGetOut"/> 198 </operation> 199 </portType> 200 <portType name="BankHttpPost"> 201 <operation name="onDeliverAnalysis"> 202 <documentation>&lt;p&gt;onDeliverAnalysis is a callback delivered to the client when processing is complete.&lt;/p&gt;</documentation> 203 <output message="s0:onDeliverAnalysisHttpPostOut"/> 204 <input message="s0:onDeliverAnalysisHttpPostIn"/> 205 </operation> 206 <operation name="startCustomerAnalysis"> 207 <documentation>&lt;p&gt;Starts the asynchronous analysis operation. When analysis is complete the onDeliverAnalysis callback will be called. If cancelAnalysis is invoked before the results are delivered, results will never be delivered.&lt;/p&gt;</documentation> 208 <input message="s0:startCustomerAnalysisHttpPostIn"/> 209 <output message="s0:startCustomerAnalysisHttpPostOut"/> 210 </operation> 211 <operation name="cancelAnalysis"> 212 <documentation>&lt;p&gt;Cancels the analysis. The onDeliverAnalysis callback will not be called and the conversation is finished.&lt;/p&gt;</documentation> 213 <input message="s0:cancelAnalysisHttpPostIn"/> 214 <output message="s0:cancelAnalysisHttpPostOut"/> 215 </operation> 216 </portType> 217 <binding name="BankSoap" type="s0:BankSoap"> 218 <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> 219 <operation name="onDeliverAnalysis"> 220 <soap:operation soapAction="http://workshop.bea.com/Bank/onDeliverAnalysis" style="document"/> 221 <cw:transition phase="finish"/> 222 <input> 223 <soap:body use="literal"/> 224 </input> 225 <output> 226 <soap:body use="literal"/> 227 <soap:header wsdl:required="true" message="s0:CallbackHeader_literal" part="CallbackHeader" use="literal" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> 228 </output> 229 </operation> 230 <operation name="startCustomerAnalysis"> 231 <soap:operation soapAction="http://workshop.bea.com/Bank/startCustomerAnalysis" style="document"/> 232 <cw:transition phase="start"/> 233 <input> 234 <soap:body use="literal"/> 235 <soap:header wsdl:required="true" message="s0:StartHeader_literal" part="StartHeader" use="literal" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> 236 </input> 237 <output> 238 <soap:body use="literal"/> 239 </output> 240 </operation> 241 <operation name="cancelAnalysis"> 242 <soap:operation soapAction="http://workshop.bea.com/Bank/cancelAnalysis" style="document"/> 243 <cw:transition phase="finish"/> 244 <input> 245 <soap:body use="literal"/> 246 <soap:header wsdl:required="true" message="s0:ContinueHeader_literal" part="ContinueHeader" use="literal" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/> 247 </input> 248 <output> 249 <soap:body use="literal"/> 250 </output> 251 </operation> 252 </binding> 253 <binding name="BankHttpGet" type="s0:BankHttpGet"> 254 <http:binding verb="GET"/> 255 <operation name="onDeliverAnalysis"> 256 <http:operation location="/onDeliverAnalysis"/> 257 <cw:transition phase="finish"/> 258 <input> 259 <mime:mimeXml part="Body"/> 260 </input> 261 <output> 262 <http:urlEncoded/> 263 </output> 264 </operation> 265 <operation name="startCustomerAnalysis"> 266 <http:operation location="/startCustomerAnalysis"/> 267 <cw:transition phase="start"/> 268 <input> 269 <http:urlEncoded/> 270 </input> 271 <output/> 272 </operation> 273 <operation name="cancelAnalysis"> 274 <http:operation location="/cancelAnalysis"/> 275 <cw:transition phase="finish"/> 276 <input> 277 <http:urlEncoded/> 278 </input> 279 <output/> 280 </operation> 281 </binding> 282 <binding name="BankHttpPost" type="s0:BankHttpPost"> 283 <http:binding verb="POST"/> 284 <operation name="onDeliverAnalysis"> 285 <http:operation location="/onDeliverAnalysis"/> 286 <cw:transition phase="finish"/> 287 <input> 288 <mime:mimeXml part="Body"/> 289 </input> 290 <output> 291 <mime:content type="application/x-www-form-urlencoded"/> 292 </output> 293 </operation> 294 <operation name="startCustomerAnalysis"> 295 <http:operation location="/startCustomerAnalysis"/> 296 <cw:transition phase="start"/> 297 <input> 298 <mime:content type="application/x-www-form-urlencoded"/> 299 </input> 300 <output/> 301 </operation> 302 <operation name="cancelAnalysis"> 303 <http:operation location="/cancelAnalysis"/> 304 <cw:transition phase="finish"/> 305 <input> 306 <mime:content type="application/x-www-form-urlencoded"/> 307 </input> 308 <output/> 309 </operation> 310 </binding> 311 <service name="Bank"> 312 <documentation>Bank.jws is a very simple service for use by the CreditReport.jws sample service. Bank simulates a "long-running" procedure by using a timer to delay its asynchronous response. Note that Bank.jws and IRS.jws are identical except for method names and the default duration of the timer timeout.</documentation> 313 <port name="BankSoap" binding="s0:BankSoap"> 314 <soap:address location="http://localhost:7001/creditReport/Bank.jws"/> 315 </port> 316 <port name="BankHttpGet" binding="s0:BankHttpGet"> 317 <http:address location="http://localhost:7001/creditReport/Bank.jws"/> 318 </port> 319 <port name="BankHttpPost" binding="s0:BankHttpPost"> 320 <http:address location="http://localhost:7001/creditReport/Bank.jws"/> 321 </port> 322 </service> 323 </definitions> 324 * :: 325 */`