Raible's Wiki

Raible Designs
Wiki Home
News
Recent Changes

AppFuse

Homepage
  - Korean
  - Chinese
  - Italian
  - Japanese

QuickStart Guide
  - Chinese
  - French
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish
  - Japanese

User Guide
  - Korean
  - Chinese

Tutorials
  - Chinese
  - German
  - Italian
  - Korean
  - Portuguese
  - Spanish

FAQ
  - Korean

Latest Downloads

Other Applications

Struts Resume
Security Example
Struts Menu

Set your name in
UserPreferences


Referenced by
Articles




JSPWiki v2.2.33

[RSS]


Hide Menu

AppFuseOnOracleAS


Difference between current version and current version:

At line 1 added 207 lines.
!!Steps for running Appfuse under OracleAs (Orion) OC4J 9.0.4
''Contributed by Mike Lawrence (mike at systemsplanet.com) Feb 04, 2004. Original is [attached|oracleas.html] at the bottom of this page.''
This page includes instructions for installing and configuring AppFuse to run on the Oracle Application Server (Orion). Special Thanks to Matt for his help in getting this up and running!
For Oracle AS 10g Release 2 (10.1.2.0.2), see [AppFuseOnOracleAS10g].
%%note __NOTE:__ You will have to change the "contextConfigLocation" <context-param> in web.xml (metadata/web/web-settings.xml) to specify each context file individually (comma or space separated). The wildcard syntax (/WEB-INF/applicationContext*.xml) doesn't work on OC4J. More details on the [mailing list|https://appfuse.dev.java.net/servlets/ReadMsg?list=issues&msgNo=414].%%
!!OC4J Installation
1. [Download|http://otn.oracle.com/software/products/ias/index.html] Oracle App Server 9.0.4.
* Choose Production Software
* Choose OracleAS J2EE Downloads, Pure Java release.
* Choose [Oracle Application Server Containers for J2EE 10g (OC4J)|http://download.oracle.com/otn/java/oc4j/904/oc4j_extended.zip] build# 031125
2. Unzip the files to the path __c:\oc4j-9.0.4__
3. Complete the install with the commands:
* c:
* cd c:\oc4j-9.0.4\j2ee\home
* java -jar oc4j.jar –install
4. Set the administrator password to: __welcome__
5. Run the App Server: __java -jar oc4j.jar__
6. Verify it's running by loading [http://localhost:8888/index.html].
7. Stop the App Server: __ java -jar admin.jar ormi://localhost:23791 admin welcome -shutdown__
!!Configure OC4J for AppFuse
1. Edit __C:\oc4j-9.0.4\j2ee\home\config\applications.xml__ and add the following line:
{{{
<web-module id="appfuse" path="../../home/applications/appfuse.war" />
}}}
2. Comment out the line (Note this was the default in version 9.0.3) to force the use of principals.xml:
{{{
<!-- <jazn provider="XML" location="./jazn-data.xml"/> -->}}}
3. Edit __C:\oc4j-9.0.4\j2ee\home\config\http-web-site.xml__ and add the line:
{{{
<web-app application="default" name="appfuse" root="/appfuse" />
}}}
4. Edit __C:\oc4j-9.0.4\j2ee\home\config\principals.xml__ and add the following to the &lt;group&gt; element:
{{{
<group name="tomcat">
<description>tomcat grp</description>
</group>
<group name="admin">
<description>admin grp</description>
</group>
}}}
Then add the following to the &lt;users&gt; element:
{{{
<user username="tomcat" password="536c0b339345616c1b33caf454454d8b8a190d6c"
deactivated="false">
<description>tomcat user</description>
<group-membership group="tomcat" />
</user>
<user username="mraible" password="536c0b339345616c1b33caf454454d8b8a190d6c"
deactivated="false">
<description>The appfuse administrator</description>
<group-membership group="admin" />
</user>
}}}
;:__''NOTE:__ This version is using an xml file, principals.xml, for user authentication.''
5. Edit __C:\oc4j-9.0.4\j2ee\home\config\data-sources.xml__ and add the following:
{{{
<data-source class="com.evermind.sql.DriverManagerDataSource"
name="jdbc/appfuse" location="jdbc/appfuse"
connection-driver="com.mysql.jdbc.Driver"
username="root" password=""
url="jdbc:mysql://localhost/appfuse"
inactivity-timeout="30" />
}}}
6. Copy __C:\appfuse\lib\mysql-connector-java-3.0.9-stable\mysql-connector-java-3.0.9-stable-bin.jar__ to __C:\oc4j-9.0.4\j2ee\home\applib__.
!!Set Environment Variables
1. Create an environment variable ORACLE10_HOME with the value __c:\oc4j-9.0.4__
!!AppFuse Modifications
1. Add the a target to deploy to Oracle/Orion in __build.xml__ (or course, you could also simply modify the existing ''deploy'' target):
{{{
<target name="deploy-oracle10" depends="package-web"
description="deploy war to /j2ee/home/applications under $ORACLE10_HOME">
<echo>Copying ${webapp.dist}/${webapp.war} to </echo>
<echo> ${env.ORACLE10_HOME}/j2ee/home/applications/${webapp.name}.war</echo>
<copy file="${webapp.dist}/${webapp.war}"
tofile="${env.ORACLE10_HOME}/j2ee/home/applications/${webapp.name}.war"/>
</target>
}}}
2. Edit __\appfuse\metadata\web\filter-mappings.xml__ and comment out all the filters __except for__ the ''actionFilter'':
{{{
<filter-mapping>
<filter-name>actionFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
}}}
;:''These don't seem to work on Orion, that's why they're commented out.''
3. Orion starts Servlets before Listeners, so LoginServlet.init() gets called before StartupListener.contextInitialized(). To fix that problem, you'll need to add code StartupListener.contextInitialized():
[{Java2HtmlPlugin
Map config = (HashMap) ctx.getAttribute(Constants.CONFIG); // "appConfig"
if (config == null) {
log.info("Creating New Application Context conf Object");
config = new HashMap();
}
}]
And similarly in LoginServlet.init():
[{Java2HtmlPlugin
Map config = (HashMap) ctx.getAttribute(Constants.CONFIG); // "appConfig"
if (config == null) {
log.info("Creating New Application Context conf Object");
config = new HashMap();
}
}]
This way it doesn’t matter who gets started 1st. The context will be initialized and added to. This works for Tomcat and Orion.\\
4. Orion doesn’t like Matt’s cool error page trick. Here’s how to get around it.
* Edit metadata\web\web-security.xml
%%(margin-left: 40px)
{{{<form-error-page>/security/loginError.jsp</form-error-page>}}}%%
* Create web\security\loginError.jsp containing:
%%(margin-left: 40px)
{{{<%@ include file="/common/taglibs.jsp"%>
<jsp:include page="/security/login.jsp" flush="true">
<jsp:param name="error" value="true"/>
</jsp:include>
}}}%%
;:''The latest code in CVS actually uses this strategy as its more portable. ~ [Matt|MattRaible]''
!!Verify AppFuse Installation using Tomcat
{{{
* C:\mysql-4.0.17\bin\mysqld.exe --console (start MySQL)
* ant setup-tomcat (Configure Tomcat)
* ant setup-db (Configure MySQL)
* ant test-all (Run all tests)
* ant test-reports (Generate Test Results)
* View C:\appfuse\build\test\reports\index.html (Verify results)
* C:\jakarta-tomcat-5.0.16\bin\startup.bat (start Tomcat)
* http://localhost:8080/appfuse (Verify Appfuse is running in Tomcat)
}}}
;:''__NOTE:__ Make sure C:\appfuse\lib\hibernate-2.1.1\lib\jta.jar is in C:\jakarta-tomcat-5.0.16\common\lib''
!!Build for Oracle
1. Use ant to create a war and deploy it.
{{{
ant -Dhttp.port=8888 clean package-web
ant -Dhttp.port=8888 deploy-oracle10
}}}
You should see the following message:
''Copying C:\appfuse/dist/webapps/appfuse-1.3.war to c:\oc4j-9.0.4/j2ee/home/applications/appfuse.war''
;:''__NOTE:__ OC4J uses port 8888 by default. You can set this to be the default by defining an http.port=8888 property in build.properties, or changing the default in properties.xml.''
!!Test with OC4J
1. Start the App Server (cd c:\oc4j-9.0.4\j2ee\home; java -jar oc4j.jar)
{{{
04/02/04 09:32:43 Auto-unpacking C:\oc4j-9.0.4\j2ee\home\applications\appfuse.war... done.
04/02/04 10:39:42 Auto-deploying appfuse (New server version detected)...
04/02/04 10:39:43 Oracle Application Server Containers for J2EE 10g (9.0.4.0.0) initialized
}}}
2. Open page [http://localhost:8888/appfuse] and login with username/password __tomcat/tomcat__.
!!Eclipse
Modified the Eclipse Project, Properties, Java Build Path. A couple of Jars were incorrect. [MyEclipse|http://myeclipseide.com] allows you to do source-level debugging under Tomcat and OC4J.
!!Differences between Tomcat and OC4J
These messages display when Tomcat is started, but don’t display under OC4J. This one is probably because I'm not using the database for authentication yet.
{{{
AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@137d4a4)
LogAbandoned: true
RemoveAbandoned: true
RemoveAbandonedTimeout: 60
…
NamingHelper.bind(68) | Creating subcontext: hibernate
}}}
!!OC4J Version 9.0.3 Notes
* Copy the JDBC driver to C:\oc4j-9.0.3\j2ee\home\lib instead of C:\oc4j-9.0.4\j2ee\home\applib
* rename C:\oc4j-9.0.3\jdk\lib\tools.jar tools.jar.old #obsolete jar file
* copy C:\j2sdk1.4.2_03\lib\tools.jar to C:\oc4j-9.0.3\jdk\lib\tools.jar
* rename C:\oc4j-9.0.3\j2ee\home\lib\jasper.zip jaspar.jar
!!Useful Links
* [The Oracle FAQ|http://www.orafaq.com/]
* C:\oc4j-9.0.4\j2ee\home\default-web-app\standaloneguide.pdf
* [http://www.orionserver.com]
* [http://www.oracle.com/appserver/]
* [Webtest Support for Ant 1.6|http://lists.canoo.com/pipermail/webtest/2004q1/001389.html]
* [http://raibledesigns.com/wiki/Wiki.jsp?page=AppFuseOnResin]
* [http://orionsupport.com/archive/articles/datasourceusermanager.html]

Back to AppFuseOnOracleAS, or to the Page History.