Hide last authors
PaulSnow 1.10 1 {{box cssClass="floatinginfobox" title="**Contents**"}}{{toc/}}{{/box}}
Manuel Smeria 1.12 2
PaulSnow 1.1 3 =Apache Geronimo Installation=
4
Manuel Smeria 1.12 5 {{info}}
6 * This was written for version **//2.2//**. There is no reason why it wouldn't work on other platforms.
7 * The default username for Geronimo is **//system//** and the default password is **//manager//**.
8 {{/info}}
PaulSnow 1.1 9
Manuel Smeria 1.12 10 Out of the box you will have issues with Geronimo, but these are not hard to fix. This was the error I got that lead me down the path to writing this deployment guide for Geronimo:
PaulSnow 1.8 11
PaulSnow 1.4 12 {{error}}
PaulSnow 1.5 13 Error 500 org.apache.commons.lang.StringUtils.replaceEach(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;
PaulSnow 1.4 14 {{/error}}
15
Manuel Smeria 1.12 16 == Quick Steps ==
PaulSnow 1.4 17
PaulSnow 1.2 18 For the impatient, the steps to get it working are:
Manuel Smeria 1.12 19 * Add Apache commons language to the repository
20 * Create a ##geronimo-web.xml## file and add it to your war file
21 * Make your changes as per a normal installation (i.e., to the ##xwiki.cfg##, ##hibernate.cfg.xml##, etc.)
PaulSnow 1.2 22 The optional steps I did were:
Manuel Smeria 1.12 23 * Add a higher version of commons-beanutils to repository
24 * Add a higher version of commons-fileupload to repository
25 * Add a higher version of commons-io to repository
PaulSnow 1.2 26
PaulSnow 1.7 27 === Minimum XML Changes ===
28
Manuel Smeria 1.12 29 Modify your ##geronimo-web.xml## and add the following library to match how you installed the library into the repository:
PaulSnow 1.7 30
31 {{code language="xml"}}
32 <dependency>
33 <groupId>apache-commons</groupId>
34 <artifactId>commons-lang</artifactId>
35 <version>2.5</version>
36 <type>jar</type>
37 </dependency>
38 {{/code}}
39
40 = All Changes =
41
PaulSnow 1.2 42 == geronimo-web.xml ==
43
Manuel Smeria 1.12 44 Here is a sample deployment resource xml file:
45
PaulSnow 1.2 46 {{code language="xml"}}
PaulSnow 1.9 47
PaulSnow 1.3 48 <?xml version="1.0" encoding="UTF-8"?>
49 <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1">
50 <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">
51 <!--
52 ** GroupID : The grouping you put xwiki in, like your parent container I guess.
53 ** ArtifactID : Same as the war name, full name + version.
54 ** Version : A version of the software.
55 ** Type : Type of deployment. In this case a WAR archive.
56 -->
57 <dep:moduleId>
58 <dep:groupId>default</dep:groupId>
59 <dep:artifactId>xwiki-enterprise-web-2.3.1</dep:artifactId>
60 <dep:version>1275530872796</dep:version>
61 <dep:type>war</dep:type>
62 </dep:moduleId>
63 <!--
64 ** Configure the JDBC connection pool, in this case the pool is based on H2 database.
65 ** It is here you would configure your oracle, postgres, mysql, sqlserver, etc pool drivers.
66 -->
67 <dep:dependencies>
68 <dep:dependency>
69 <dep:groupId>jdbc</dep:groupId>
70 <dep:artifactId>h2</dep:artifactId>
71 <dep:version>1.2.136</dep:version>
72 <dep:type>jar</dep:type>
73 </dep:dependency>
74 <!-- The location of the pool -->
75 <dependency>
76 <groupId>console.dbpool</groupId>
77 <artifactId>XWikiDS</artifactId>
78 </dependency>
79 </dep:dependencies>
80 <!-- Libraries
81 ** This is where I specified the libraries that were out of date in geronimo
82 ** that lead to it not working. There might be better ways, but this was how
83 ** I did it to get it working quickly.
84 -->
85 <!-- Required -->
86 <dependency>
87 <groupId>apache-commons</groupId>
88 <artifactId>commons-lang</artifactId>
89 <version>2.5</version>
90 <type>jar</type>
91 </dependency>
92 <!-- Optional -->
93 <dependency>
94 <groupId>apache-commons</groupId>
95 <artifactId>commons-beanutils</artifactId>
96 <version>1.8.3</version>
97 <type>jar</type>
98 </dependency>
99 <!-- Optional -->
100 <dependency>
101 <groupId>apache-commons</groupId>
102 <artifactId>commons-fileupload</artifactId>
103 <version>1.2.1</version>
104 <type>jar</type>
105 </dependency>
106 <!-- Optional -->
107 <dependency>
108 <groupId>apache-commons</groupId>
109 <artifactId>commons-io</artifactId>
110 <version>1.4</version>
111 <type>jar</type>
112 </dependency>
113
114 </dep:environment>
115 <!-- Whatever the webroot you want, ie http://127.0.0.1/xwiki -->
116 <context-root>xwiki</context-root>
117 <!--
118 ** Map the reference to the JDBC pool located at resource-link to the jndi location ref-name
119 -->
120 <resource-ref>
121 <ref-name>jdbc/XWikiDS</ref-name>
122 <resource-link>XWikiDS</resource-link>
123 </resource-ref>
124
125 </web-app>
PaulSnow 1.9 126
PaulSnow 1.4 127 {{/code}}
128
129 == Warnings In The Log File ==
130
Manuel Smeria 1.12 131 {{warning}}
132 * 37866: 2010-06-03 15:12:03,484 WARN [RequestUtils] No FormBeanConfig found under 'download'
133 * 39221: 2010-06-03 15:12:18,062 WARN [RequestUtils] No FormBeanConfig found under 'get'
134 * 39804: 2010-06-03 15:12:21,046 WARN [RequestUtils] No FormBeanConfig found under 'view'
135 {{/warning}}
PaulSnow 1.6 136
Manuel Smeria 1.12 137 I saw these in the log files and apparently you can just ignore them.
PaulSnow 1.6 138
139 == Using a JDBC Datasource ==
140
Manuel Smeria 1.12 141 Navigate to Geronimo -> Services -> Database Pools and click the //Using the Geronimo database pool wizard// link.
PaulSnow 1.6 142
143 === Step 1: Select Name and Database ===
144
Manuel Smeria 1.12 145 Name of Database Pool: {{box}}<Pool Name>{{/box}}
146 A name that is different than the name of any other database pools in the server (no spaces in the name please).
PaulSnow 1.6 147
Manuel Smeria 1.12 148 Database Type: {{box}}<Database Version>{{/box}}
149 The type of database the pool will connect to.
PaulSnow 1.6 150
Manuel Smeria 1.12 151 === Step 2: Select Driver, JAR, Parameters ===
PaulSnow 1.6 152
Manuel Smeria 1.12 153 JDBC Driver Class: {{box}}<driver>{{/box}} (e.g. //org.h2.Driver//)
154 Driver JAR: {{box}}<jarfile for the driver>{{/box}} (e.g. //jdbc/h2/1.2.136/jar//)
PaulSnow 1.6 155 DB User Name: {{box}}<username>{{/box}}
156 DB Password: {{box}}<password>{{/box}}
157 Confirm Password: {{box}}<password>{{/box}}
158
159 === Step 3: Final Pool Configuration ===
160
Manuel Smeria 1.12 161 JDBC Connect URL: {{box}}<url>{{/box}} (e.g. //jdbc:h2:tcp:~/~/localhost~/xwiki23//)
PaulSnow 1.6 162 Make sure the generated URL fits the syntax for your JDBC driver.
163 Driver Status: Loaded Successfully
164 Connection Pool Parameters
165 Transaction Type: {{box}}LOCAL{{/box}}
166
167 Type of transactions that this connection pool supports.
Manuel Smeria 1.12 168 Pool Min Size: {{box}}0{{/box}}
PaulSnow 1.6 169
170 The minimum number of connections in the pool. Leave blank for default.
Manuel Smeria 1.12 171 Pool Max Size: {{box}}10{{/box}}
PaulSnow 1.6 172
173 The maximum number of connections in the pool. Leave blank for default.
Manuel Smeria 1.12 174 Blocking Timeout: {{box}}<default>{{/box}} (in milliseconds)
PaulSnow 1.6 175
176 The length of time a caller will wait for a connection. Leave blank for default.
Manuel Smeria 1.12 177 Idle Timeout: {{box}}<default>{{/box}} (in minutes)

Get Connected