RUL-01726 when Defining new Pattern in a Rule

After importing XMLFacts from an XSD, you try to create a new Pattern for a new Rule by comparing a Double (java.lang.Double type) with a double value (e.g. 4.2) , and you get following error in RuleAuthor

'RUL-01726: Data type operator for <, at position 0: java.lang.Double

The reason is that xsd:double type from the XSD was transformed in Rules into the Java class java.lang.Double. When you try to compare it with a double value (e.g. 4.2), this raises an error as you cannot compare a Java Class with a double value.

In order to compare these two data types, you can use the following solution :

1. Go to Definition -> JavaFact and click on Create to create a new JavaFact
2. Expand java.lang tree and select the Double class
3. Click Import . At this moment you should also see a new JavaFact created and named
java.lang.Double
4. Now go to RuleSets -> Rules and try to create a New Pattern
5. Create a new pattern and before clicking apply select the "Advanced Test " option
6. Edit the expression and change it to
myValue.doubleValue() <>The solution is to use the doubleValue() method of the java.lang.Double class. This method returns the double value, so you can compare it now with a number.

Note: Same would apply for other types of variables. For example, if you get an error "java.lang.Integer <>

Posted in Labels: , | 0 comments

NullPointerException using HTTP Basic Authentication

If you try to use use HTTP Basic Authentication headers to invoke a secured Web Service in BPEL 10.1.3.4

<property name="httpBasicHeaders">credentials</property>
<property name="httpBasicUsername">your_username</property>
<property name="httpBasicPassword">your_password</property>

You may encounter a NullPointerException error ONLY if you use ports 80 or 443 :

<Faulthttp://schemas.oracle.com/bpel/extensionhttp://schemas.xmlsoap.org/soap/envelope/>
<faultcode>null:bindingFault</faultcode>
<faultstring>business exception</faultstring>
<faultactor>cx-fault-actor</faultactor>
<detail>
<summary>com.collaxa.cube.ws.wsif.providers.http.WSIFOperation_HTTP@c54b88 : Could not invoke 'process'; nested exception is: java.lang.NullPointerException</summary>
<detail>java.lang.NullPointerException</detail>
</detail>
</Fault>

The simplest workaround is to try to host your web-service on ports other than 80 (http) /443 (https).

The issue is fixed in MLR 8 for 10.1.3.4 - patch number 8372150.

Posted in Labels: , | 5 comments

Getting Started with SOA 11g

Some quick steps to get a working SOA 11g install with a 11g DB repository

Database Install

SOA 11g supports Oracle 10g and 11g database, with following version
- Oracle Database 10g (10.2.0.4 or later)
- Oracle Database 11g (11.1.0.7 or later)

Note: you should install the DB with AL32UTF8 character set, otherwise you will get a warning when you run RCU:

The database you are connecting is with non-AL32UTF8 character set. Oracle
strongly recommends using AL32UTF8 as the database character set.
(however, as per certification page of SOA this warning can be ignored)

For download page of DB 11g go to
http://www.oracle.com/technology/software/products/database/index.html

and next you need to upgrade to 11.1.0.7 using
Patch 6890831 11.1.0.7.0 PATCH SET FOR ORACLE DATABASE SERVER

Follow all the PRE and POST install steps from the patch 6890831 readme for a succesfull upgrade to 11.1.0.7.

SOA Certification

Make sure your OS meets minimum requirements as specified in
http://www.oracle.com/technology/software/products/ias/files/fusion_requirements.htm
and the certification page
http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html

Run
# ulimit -n
to find the maximum file descriptors

If the descriptors value is 1024, then edit /etc/security/limits.conf to increase the descriptor limit,
for example to 4096 :

* soft nofile 4096
* hard nofile 4096

Run RCU (Repository Creation Utility)

Download it from here :
http://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.html

Run the RCU (Repository Creation Utility) to create SOA Schemas .
If you let the default settings you will end up with following schemas
- DEV_SOAINFRA
- DEV_ORABAM
- DEV_ORASDPM
- DEV_MDS

Weblogic 11g

Download Weblogic 11g from OTN :
http://www.oracle.com/technology/software/products/ias/htdocs/wls_main.html

and install it :

chmod +x wls1031_linux32.bin
./wls1031_linux32.bin

Install Soa 11g

Download the SOA package from here :
http://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.html

Run config.sh

Go to SOA_HOME/common/bin folder and run
./config.sh

If you let at previous steps (WLS and SOA) default settings you will have here:
- Domain name = base_domain
- At the configure JDK screen choose Development Mode for JDK and Production Mode to use JRockit
- In the JDBC config screens the schema names are those given to RCU above
- Don't select anything at Advanced Configuration Screen

Start the server

First start WLS admin server
MW_HOME/user_projects/domains/domain_name/startWebLogic.sh
and next start soa_server1 (and bam_server1 if you installed also BAM).
MW_HOME/user_projects/domains/domain_name/startManagedWebLogic.sh soa_server1

Open a browser window:

- To access the Administration Server console:
http://host:admin_server_port/console

- To access Enterprise Manager:
http://host:admin_server_port/em

by default port is set to 7001.

Jdeveloper 11g

Download JDev 11g (for Linux or Windows)
http://www.oracle.com/technology/software/products/jdev/htdocs/soft11.html

and also download "JDeveloper extension for SOA technologies" from here:

http://www.oracle.com/technology/products/jdev/101/update/fmw_products.xml

Install JDeveloper and open it. Select Help/Check For Updates, Install from local file.
Bowse to the location you saved "soa-jdev-extension.zip"
After Install completes restart JDeveloper and go to Help > About > Version tab to confirm that the SOA extension are installed.

Last step is to create a new connection in JDev and you are ready to test your first composite:

Go to View > Application Server Navigator, right-click the Application Servers and select "New Application Server" . Enter connection details -> the default port is 7001 and WLS domain "base_domain" (if you left unchanged the install defaults). When testing the connection you should see 8 of 8 succesful completed tests.


Reference documentation:

SOA Install Guide:
http://download.oracle.com/docs/cd/E12839_01/doc.1111/e13925/overview.htm#
SOA Quick Install Guide:
http://download.oracle.com/docs/cd/E12839_01/install.1111/e14318/qisoa.htm#
DB 11g Install Guide:
http://www.oracle.com/pls/db111/portal.portal_db?selected=11&frame=#essentials#

Posted in Labels: , | 3 comments