Friday, June 18, 2010

Passing Userid and Password Credentials as SOAP Header in BPEL

Problem
There may be Services that have policies enforced to receive the userid/password as part of the requests. If you do not have a Service Bus then this informaton has to be passed from the BPEL.


Solution

  1. Right click on the Web Service in Composite Design view
  2. Select "Configue WS Policies"
  3. Add Client Security Policy as applies to your case. I had to us "oracle/wss_http_token_client_policy"
  4. Add the following Binding Properties from the Property Inspector
    1. "oracle.webservices.auth.username" : admin
    2. "oracle.webservices.auth.password" : admin
If you look at the source generated in the composite .xml, you would see the following


  <reference name="...Service" ui:wsdlLocation="....wsdl">
    <interface.wsdl  ...../>
    <binding.ws port="....."
    
      <property name="oracle.webservices.auth.username" type="xs:string"
                many="false" override="may">admin</property>
      <property name="oracle.webservices.auth.password" type="xs:string"
                many="false" override="may">admin</property>




    </binding.ws>
  </reference>

Thursday, June 17, 2010

Increasing memory of JDeveloper IDE

Problem
JDeveloper 11.1.1.3 by default comes with 768M of Max memory. When you have lot of files or objects in memory(I noticed this during XSLT of a large structure) JDeveloper runs out of memory and cannot open the file.

Solution

  1. Go to C:\JDeveloperStudio11113\jdeveloper\ide\bin
  2. Open ide.conf
  3. And increase the memory to 1024 : AddVMOption  -Xmx1024M
  4. Restart the Jdeveloper and this should not cause any poblem.

Disabling WS Addressing in BPEL

Background and Problem
In BPEL, the WS Addressing seems to be enabled by default. The external Web Service that is invoked from BPEL Service receives the WS Addressing and first verifies the end point. For some reason this end point that was generated by BPEL is incorrect and so throws an error. The only way the communication can be successful is to disable the WS Addressing.

Solution
In SOA 11.1.1.3, this can be achieved by adding a binding property in the BPEL.

  • Select the WebService and you will see the Property Inspector.
  • Add the Property "oracle.soa.ws.outbound.omitWSA" and set it to true. As of this version this property is not available in the dropdown. So you need to add this.
  • Save it and deploy the new Service to test it out.
  • The Steps are shown below as an image