Wiki source code of Geronimo Installation
Last modified by Vincent Massol on 2017/09/06 11:34
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | {{box cssClass="floatinginfobox" title="**Contents**"}}{{toc/}}{{/box}} | ||
| 2 | |||
| 3 | =Apache Geronimo Installation= | ||
| 4 | |||
| 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}} | ||
| 9 | |||
| 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: | ||
| 11 | |||
| 12 | {{error}} | ||
| 13 | Error 500 org.apache.commons.lang.StringUtils.replaceEach(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String; | ||
| 14 | {{/error}} | ||
| 15 | |||
| 16 | == Quick Steps == | ||
| 17 | |||
| 18 | For the impatient, the steps to get it working are: | ||
| 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.) | ||
| 22 | The optional steps I did were: | ||
| 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 | ||
| 26 | |||
| 27 | === Minimum XML Changes === | ||
| 28 | |||
| 29 | Modify your ##geronimo-web.xml## and add the following library to match how you installed the library into the repository: | ||
| 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 | |||
| 42 | == geronimo-web.xml == | ||
| 43 | |||
| 44 | Here is a sample deployment resource xml file: | ||
| 45 | |||
| 46 | {{code language="xml"}} | ||
| 47 | |||
| 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> | ||
| 126 | |||
| 127 | {{/code}} | ||
| 128 | |||
| 129 | == Warnings In The Log File == | ||
| 130 | |||
| 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}} | ||
| 136 | |||
| 137 | I saw these in the log files and apparently you can just ignore them. | ||
| 138 | |||
| 139 | == Using a JDBC Datasource == | ||
| 140 | |||
| 141 | Navigate to Geronimo -> Services -> Database Pools and click the //Using the Geronimo database pool wizard// link. | ||
| 142 | |||
| 143 | === Step 1: Select Name and Database === | ||
| 144 | |||
| 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). | ||
| 147 | |||
| 148 | Database Type: {{box}}<Database Version>{{/box}} | ||
| 149 | The type of database the pool will connect to. | ||
| 150 | |||
| 151 | === Step 2: Select Driver, JAR, Parameters === | ||
| 152 | |||
| 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//) | ||
| 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 | |||
| 161 | JDBC Connect URL: {{box}}<url>{{/box}} (e.g. //jdbc:h2:tcp:~/~/localhost~/xwiki23//) | ||
| 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. | ||
| 168 | Pool Min Size: {{box}}0{{/box}} | ||
| 169 | |||
| 170 | The minimum number of connections in the pool. Leave blank for default. | ||
| 171 | Pool Max Size: {{box}}10{{/box}} | ||
| 172 | |||
| 173 | The maximum number of connections in the pool. Leave blank for default. | ||
| 174 | Blocking Timeout: {{box}}<default>{{/box}} (in milliseconds) | ||
| 175 | |||
| 176 | The length of time a caller will wait for a connection. Leave blank for default. | ||
| 177 | Idle Timeout: {{box}}<default>{{/box}} (in minutes) |