Friday, February 22, 2008

Oracle ESB -Designtime cache has not been initialized

I got this error just after installing the ESB DesignTime(Repository) component on SOA Suite when I called up http://localhost:7777/esb

I looked in the logfiles for the oc4j instance hosting esbdt

In my case at
D:\SOAHA\soaONE\j2ee\oc4j_esbdt\log\oc4j_esbdt_OC4J_ESBDT_1\oc4j\log.xml

The error message was as follows -

java.lang.NoClassDefFoundError: org/apache/log4j/Category))

The workaround is as follows -

Add the following line to the orion-application.xml file for esbdt

(remove-inherited...)


Tuesday, February 12, 2008

ACEGI on OC4J

Acegi Security is a powerful, flexible security solution for enterprise software, with a particular emphasis on applications that use Spring. Using Acegi Security provides your applications with comprehensive authentication, authorization, instance-based access control, channel security and human user detection capabilities.

I downloaded acegi version 1.0.6 from http://www.acegisecurity.org/downloads.html

Extract the zip to a temp directory -



Extract the acegi-security-samples-tutorial-1.0.6.war to a temp directory



Copy this directory structure to OC4J e.g. to d:\oc4j




Update OC4J default-web-site.xml




Update OC4J application.xml



Restart OC4J

Test



More info - http://www.acegisecurity.org/

Monday, February 11, 2008

Leveraging AXIS web services on OC4J

Step 1 - Deploy axis to OC4J
Step 2 - Use it!

Step 1 - Deploy axis to OC4J

I'm using standalone OC4J 10.1.3.3.
Download Apache AXIS from http://ws.apache.org/axis/ (I used the version 1.4)
Unzip to a directory of your choice e.g. D:\axis



Copy the axis sub-directory across to your OC4J installation





Update the OC4J default-web-site.xml file with the following entry -





Update the OC4J application.xml file with the following entry -




Stop/Start OC4J

Test by calling the following URL - http://localhost:8888/axis/

Creating a simple JAVA WEB Service

Create a simple java class in JDeveloper without a package structure e.g.

public class SayHi2U {
public SayHi2U() {
}
public String sayHi(String name){
return "Hi there " + name;
}
}
Copy the .java file to the axis sub-directory on OC4J
Rename from .java to .jws




Stop/Start OC4J

Test with the URL http://localhost:8888/axis/SayHi2U.jws

Standard Java Web Service Deployment

The simple java web service deployment, described in the previous section, is very limited. Standard deployment of Java Web Services is as follows –

Here we will use the CreditRatingChecker Class defined below




Create the following directory structure under the OC4J\axis sub-directory –



Copy the .class file, CreditRatingChecker.class, to this directory

Create the following file, deploy.wsdd, in the same directory



What is a wsdd? - Accroding to the Apache Axis doc -
To really use the flexibility available to you in Axis, you should get familiar with the Axis Web Service Deployment Descriptor (WSDD) format. A deployment descriptor contains a bunch of things you want to "deploy" into Axis - i.e. make available to the Axis engine. The most common thing to deploy is a Web Service...

We will use the AXIS admin client to „deploy“ the web service, but firstly we have to set the classpath etc.

Create a .bat file in the same directory with the following –

set AXIS_HOME=D:\AXIS\axis-1_4
set AXIS_LIB=%AXIS_HOME%\lib
set AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;
set AXISCLASSPATH=%AXISCLASSPATH%;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;
set AXISCLASSPATH=%AXISCLASSPATH%;%AXIS_LIB%\log4j-1.2.8.jar;%AXIS_LIB%\xml-apis.jar;%AXIS_LIB%\xercesImpl.jar
set classpath=%AXISCLASSPATH%;%classpath%

Open a DOS box in the directoy
Run your .bat file
Then enter the following cmd (-p is the Port directive)
java org.apache.axis.client.AdminClient deploy.wsdd -p 8888

Test