Return to Navigation

Sample Code for an Online Application

The following example shows how an online application uses ADF to call the SAD_SAVEAPPL service operation:

1. Create the web service proxy using the WSDL URL. It will generate the proxy code (methods) to invoke the service operations.

Sample code of generated proxy:

@WebServiceClient(wsdlLocation="http://<hostname>/PSIGW/
PeopleSoftServiceListeningConnector/SAD_ADMISSIONS.1.wsdl",
targetNamespace="http://xmlns.oracle.com/Enterprise/HCM/services/SAD_ADMISSIONS.1",
  name="SAD_ADMISSIONS")
public class SAD_ADMISSIONS
  extends Service
{  private static URL wsdlLocationURL;
  private static Logger logger;
  static
  {  try    {      logger = Logger.getLogger("sadAdmissions.SAD_ADMISSIONS");
           URL baseUrl = SAD_ADMISSIONS.class.getResource(".");
           if (baseUrl == null)  {
        wsdlLocationURL = SAD_ADMISSIONS.class.getResource("http://<hostname>/PSIGW/PeopleSoftServiceListeningConnector/SAD_ADMISSIONS.1.wsdl");
        if (wsdlLocationURL == null)   {
          baseUrl = new File(".").toURL();
          wsdlLocationURL =
              new URL(baseUrl, "http://<hostname>/PSIGW/PeopleSoftServiceListeningConnector/SAD_ADMISSIONS.1.wsdl");
        }
      }     else      {
                if (!baseUrl.getPath().endsWith("/")) {
         baseUrl = new URL(baseUrl, baseUrl.getPath() + "/");
}                wsdlLocationURL =
            new URL(baseUrl, "http://<hostname>/PSIGW/PeopleSoftServiceListeningConnector/SAD_ADMISSIONS.1.wsdl");
      }
    }    catch (MalformedURLException e)
    {  logger.log(Level.ALL,
       "Failed to create wsdlLocationURL using         http://<hostname>/PSIGW/PeopleSoftServiceListeningConnector/SAD_ADMISSIONS.1.wsdl",
          e);
    }
  }
//...
//...
//...
  @WebEndpoint(name="SAD_ADMISSIONS_Port")
  public SAD_ADMISSIONS_PortType getSAD_ADMISSIONS_Port()
  {    return (SAD_ADMISSIONS_PortType) super.getPort(new QName("http://xmlns.oracle.com/Enterprise/HCM/services/SAD_ADMISSIONS.1", "SAD_ADMISSIONS_Port"),
SAD_ADMISSIONS_PortType.class);
  }
//...
}

  @WebMethod(operationName="SAD_SAVEAPPL", action="SAD_SAVEAPPL.v1")
  @SOAPBinding(parameterStyle=ParameterStyle.BARE)
  @Action(input="SAD_SAVEAPPL.v1", fault =
      { @FaultAction(value="http://xmlns.oracle.com/Enterprise/HCM/services/SAD_ADMISSIONS.1/SAD_ADMISSIONS_PortType/SAD_SAVEAPPL/Fault/SAD_FAULT_RESP.V1",
          className=sadAdmissions.SAD_FAULT_RESPV1.class) }, output="http://xmlns.oracle.com/Enterprise/HCM/services/SAD_ADMISSIONS.1/SAD_ADMISSIONS_PortType/SAD_SAVEAPPL_RESP.V1")
  @WebResult(targetNamespace="http://xmlns.oracle.com/Enterprise/HCM/services",
    partName="parameter", name="SAD_SAVEAPPL_RESP")
  public SADSAVEAPPLRESP sadSAVEAPPL(@WebParam(targetNamespace="http://xmlns.oracle.com/Enterprise/HCM/services",
      partName="parameter", name="SAD_SAVEAPPL_REQ")
    SADSAVEAPPLREQ parameter)
    throws sadAdmissions.SAD_FAULT_RESPV1;

2. Use the proxy methods to invoke the service operation:

//Create the Application request
        SADSAVEAPPLREQ reqSaveAppl = new SADSAVEAPPLREQ();
 //Construct the Application request by setter methods created by web service proxy

 //Create the Application response
        SADSAVEAPPLRESP respSaveAppl = new SADSAVEAPPLRESP();

        try {
            SecurityPolicyFeature[] securityFeatures =
            new SecurityPolicyFeature[]            { new SecurityPolicyFeature("oracle/wss_username_token_client_policy") };
            sAD_ADMISSIONS = new SAD_ADMISSIONS();
            SAD_ADMISSIONS_PortType sAD_ADMISSIONS_PortType =             sAD_ADMISSIONS.getSAD_ADMISSIONS_Port(securityFeatures);

            Map<String, Object> requestContext =             ((BindingProvider) sAD_ADMISSIONS_PortType).getRequestContext();
            SAD_ADMISSIONS_PortClient.setPortCredentialProviderList(requestContext);
            // Add WS-Security header username & password if we currently 
            authenticate (logged on)
            requestContext.put(BindingProvider.USERNAME_PROPERTY, username);
            requestContext.put(BindingProvider.PASSWORD_PROPERTY, password);

            // invoke the sadSAVEAPPL method created by we service proxy
            respSaveAppl = sAD_ADMISSIONS_PortType.sadSAVEAPPL(reqSaveAppl);

            // pass the response (respSaveAppl) to the response handler

        }
        catch (SOAPFaultException sfe) {
            //handle SOAP Fault
        }
        catch (Exception e) {
            //handle any other exception
        }