General Installation of Opentaps

From Opentaps Wiki

Jump to: navigation, search

Contents


Installing opentaps ERP + CRM is fairly easy, and you do not need root user privileges. These instructions will help you get started running opentaps ERP + CRM on both Unix/Linux and Windows operating systems.

Prerequisites

The first step is to make sure that you have the correct Java Virtual Machine installed. For opentaps 0.8.x and 0.9.x, you must use Java 1.4.2. For opentaps 1.0.x, you must use Java 5. opentaps 1.4 works with both Java 5 or Java 6, though it is pre-compiled with Java 6. In both cases, you must use the Sun Java SDK, not GNU gcj which may have been supplied with Fedora Core or Ubuntu or the Java Runtime JRE supplied with Windows.

To determine what version of Java you are using, type the following command:

$ java -version

For opentaps 0.8.x and opentaps 0.9.x, you must see something like this: Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_xxxx)

For opentaps 1.0.x, you must see something like the following: Java(TM) 2 RuntimeEnvironment, Standard Edition (build 1.5.xxxx)

You must not see anything like gij (GNU libgcj) version 4.0.1 20050727 (Red Hat 4.0.1-5)

or anything that says "JRE".

If you do not see the correct JVM, you must go download it from Sun.

Next, you should unzip the opentaps ERP + CRM .zip file you have just downloaded and go into the directory where it is unzipped:

$ cd opentaps

Starting on Unix/Linux

If you are using a Unix/Linux system, you should make the startup scripts executable:

$ chmod u+x startofbiz.sh
$ chmod u+x stopofbiz.sh

IMPORTANT: If your system already has gcj and you just installed new Sun JVM, you must tell opentaps ERP + CRM to use the Sun JVM instead of the GCJ JVM in /bin/java by specifying where the JVM is:

$ export JAVA_HOME=/usr/java/j2sdk_xxxx/

(or whichever directory your Sun JVM was installed.) You can even put this directive into startofbiz.sh and stopofbiz.sh

To start the opentaps server,

$ ./startofbiz.sh

The server is started as a background process, and the logs are piped to a file called "console.log" in the logs/ sub-directory for opentaps 0.8.x and 0.9.x and runtime/logs sub-directory for opentaps 1.0.x To see the logs,

$ tail -f runtime/logs/console.log

or

$ tail -f logs/console.log

To stop the opentaps ERP + CRM server,

$ ./stopofbiz.sh

To start the Point Of Sales terminal, instead of using startofbiz.sh and stopofbiz.sh, use

$ java -jar ofbiz.jar -pos

Starting on Windows

IMPORTANT: If you are using Windows, you may run into problems with having paths with directories that have spaces in the name, such as "C:\Documents and Settings". You can avoid these problems by unzipping in your C:\ directory.

IMPORTANT: opentaps ERP + CRM runs as a server on your computer and needs to access a number of ports. If you are having start up problems, try re-configuring or temporarily disabling your firewall.

If you are using Windows, call up a command line terminal (Windows > Run Program > "cmd") From the terminal, go to your opentaps ERP + CRM directory

C:> cd c:\opentaps

You may need set a variable called JAVA_HOME first to tell Windows where Java is located:

C:> set JAVA_HOME=c:\java_x.x.x


Or which ever directory Java was installed in.

Now run the batch file to start the opentaps ERP + CRM server:

C:\opentaps> startofbiz.bat

The server will run in the terminal. Alternatively, you can create a Windows shortcut to the startofbiz.bat and place it on your desktop.

If you want to start the Point Of Sales system, use this command instead:

C:\opentaps> java -jar ofbiz.jar -pos

Mac OS X Users

A recent update to OS X 10.4.6 has made Java 5 the default JVM. To use Java 1.4.2 for opentaps 0.8.x or 0.9.x, set your JAVA_HOME to the correct path:

$ export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.4.2/Home

You can also use /Applications/Utilities/Java/J2SE 5.0/Java Preferences.app to set your preferred Java environment.

Accessing the Server

To access the opentaps ERP + CRM server, open any browser and type in the following:


With opentaps 1.4, you will see a greeting page which prompts you to login. The applications you can access are displayed as icons:

Image:Opentaps home.png

In earlier versions of opentaps, you will see a menu in your browser which shows you all the applications available.

Image:Opentaps startup.png

You can now click on the application you wish to access. If you are using an older version of Sequoia ERP, you will need to access the applications directly using:

http://locahost:8080/crmsfa/control/main

for CRMSFA or

http://localhost:8080/ecommerce/control/main

for the online store.

Signing In

For the back end web applications, use the username "admin" and the password "ofbiz".

For the ecommerce online store application, use username "DemoCustomer" and password "ofbiz".

For the Point Of Sales application, use username "1" and password "1" for a manager and username "2" and password "2" for a cashier.

Oh No! It Didn't Work! What Do I Do?

Look in your runtime/logs/console.log and runtime/logs/ofbiz.log (or simply logs/console.log or logs/ofbiz.log files for opentaps 0.8.x and 0.9.x) and see what error messages are recorded. Check that you are using the correct version, that your database connection is successful, that there were no port conflicts, and that none of the required ports are blocked.

Here are some specific issues and possible solutions:

Bad version number in .class file

This means that the Java virtual machine on your computer is different than the one that was used to compile opentaps. For example, your computer might have Java 5, and you may have downloaded opentaps 1.4, which was pre-compiled with Java 6.

To fix this, either download and install the same Java virtual machine SDK as was used to compile the copy of opentaps you obtained, or try to recompile opentaps using your computer's Java virtual machine with

ant

or

./ant

Cannot create the Java virtual machine

Your computer may not have the memory available to satisfy opentaps. Check the Hardware Guidelines for Opentaps and Recommended Memory Settings.

PermGen Space and other Memory Errors

See Recommended Memory Settings for possible changes to your start scripts.

Build Aspect class Errors

If you got "Unable to rename old file" build error, you can try to use follow line to replace the weave target on hot-deploy/opentaps-common/build-aspects.xml.

    <!-- ================================================================== -->
    <!-- Weave advice into target jars                                      -->
    <!-- ================================================================== -->
    <target name="weave" depends="detect-dependencies" if="processRequired">
      <echo message="[build] =========== Start Building Aspect (Weave) ============="/>
      <java classname="org.codehaus.aspectwerkz.compiler.AspectWerkzC" fork="true">
        <jvmarg value="-Daspectwerkz.definition.file=${aopConfig}"/>
        <jvmarg value="-Daspectwerkz.transform.filter=no"/>
        <!-- <jvmarg value="-Daspectwerkz.transform.verbose=true"/> -->
        <!-- <jvmarg value="-Daspectwerkz.transform.details=true"/> -->
        <arg value="-verify"/>
        <classpath refid="local.class.path" />
        <classpath>
          <pathelement path="${build.dir}/classes/common"/>
        </classpath>
        <!-- below is the jars to post-process -->
        <arg value="${ofbiz.dir}/framework/entity/build/lib/ofbiz-entity.jar"/>
      </java>
      <java classname="org.codehaus.aspectwerkz.compiler.AspectWerkzC" fork="true">
        <jvmarg value="-Daspectwerkz.definition.file=${aopConfig}"/>
        <jvmarg value="-Daspectwerkz.transform.filter=no"/>
        <!-- <jvmarg value="-Daspectwerkz.transform.verbose=true"/> -->
        <!-- <jvmarg value="-Daspectwerkz.transform.details=true"/> -->
        <arg value="-verify"/>
        <classpath refid="local.class.path" />
        <classpath>
          <pathelement path="${build.dir}/classes/common"/>
        </classpath>
        <!-- below is the jars to post-process, if these jar not effect each other you can put them in same pos, else please seperate them into another task -->
        <arg value="${ofbiz.dir}/framework/common/build/lib/ofbiz-common.jar"/>
      </java>
      <java classname="org.codehaus.aspectwerkz.compiler.AspectWerkzC" fork="true">
        <jvmarg value="-Daspectwerkz.definition.file=${aopConfig}"/>
        <jvmarg value="-Daspectwerkz.transform.filter=no"/>
        <!-- <jvmarg value="-Daspectwerkz.transform.verbose=true"/> -->
        <!-- <jvmarg value="-Daspectwerkz.transform.details=true"/> -->
        <arg value="-verify"/>
        <classpath refid="local.class.path" />
        <classpath>
          <pathelement path="${build.dir}/classes/common"/>
        </classpath>
        <!-- below is the jars to post-process -->
        <arg value="${ofbiz.dir}/applications/order/build/lib/ofbiz-order.jar"/>
      </java>
      <jar jarfile="${lib.dir}/${name}.jar" update="true" basedir="${build.dir}/classes/common" includes="org/opentaps/aspect/secas/**" />
        <!-- put aop.xml into target jar META-INF dir -->
         <mkdir dir="${build.dir}/classes/META-INF" />
         <copy file="${aopConfig}" tofile="${build.dir}/classes/META-INF/aop.xml" overwrite="true"/>
       	<!-- create new jar with aop.xml, then copy it to orign location, using these for avoid unable rename error on windows 64bit system-->
           <zip destfile="${lib.dir}/ofbiz-entity.jar">
         	  <zipfileset src="${ofbiz.dir}/framework/entity/build/lib/ofbiz-entity.jar"/>
         	  <fileset dir="${build.dir}/classes/">
         	    <include name="META-INF/aop.xml"/>
         	  </fileset>
           </zip>
       	<delete file="${ofbiz.dir}/framework/entity/build/lib/ofbiz-entity.jar" failonerror="false"/>
           <move file="${lib.dir}/ofbiz-entity.jar" tofile="${ofbiz.dir}/framework/entity/build/lib/ofbiz-entity.jar"/>

           <zip destfile="${lib.dir}/ofbiz-common.jar">
         	  <zipfileset src="${ofbiz.dir}/framework/common/build/lib/ofbiz-common.jar"/>
         	  <fileset dir="${build.dir}/classes/">
         	    <include name="META-INF/aop.xml"/>
         	  </fileset>
           </zip>
       	<delete file="${ofbiz.dir}/framework/common/build/lib/ofbiz-common.jar" failonerror="false"/>
           <move file="${lib.dir}/ofbiz-common.jar" tofile="${ofbiz.dir}/framework/common/build/lib/ofbiz-common.jar"/>

       	<zip destfile="${lib.dir}/ofbiz-order.jar">
         	  <zipfileset src="${ofbiz.dir}/applications/order/build/lib/ofbiz-order.jar"/>
         	  <fileset dir="${build.dir}/classes/">
         	    <include name="META-INF/aop.xml"/>
         	  </fileset>
           </zip>
       	<delete file="${ofbiz.dir}/applications/order/build/lib/ofbiz-order.jar" failonerror="false"/>
           <move file="${lib.dir}/ofbiz-order.jar" tofile="${ofbiz.dir}/applications/order/build/lib/ofbiz-order.jar"/>

         <echo message="[build] =========== Done Building Aspect (Weave) =============="/>
       </target>

What to do if you get an RMIDispatcher Error

If you see an error message like this:

Exception in thread "main" java.lang.NoSuchMethodError: sun.rmi.transport.Object 

Table.getStub(Ljava/rmi/Remote;)Ljava/rmi/server/RemoteStub; at org.objectweb.carol.rmi.jrmp.server.JUnicastRemoteObject.unexportObject(JUnicastRemoteObject.java:138) at org.objectweb.carol.rmi.multi.JrmpPRODelegate.unexportObject(JrmpPRODelegate.java:94) at org.objectweb.carol.rmi.multi.MultiPRODelegate.unexportObject(MultiPRODelegate.java:132) at javax.rmi.PortableRemoteObject.unexportObject(Unknown Source) at org.objectweb.jotm.SubCoordinator.doAfterCompletion(SubCoordinator.java:1548)

You are experiencing a problem instantiating the RMI dispatcher. The RMI dispatcher is used to call remote services running on another instance of oopentaps. For demo purposes, you can usually turn this off by editing the file base/config/ofbiz-containers.xml and commenting out the <containers> for rmi-dispatcher and rmi-print-server.

What to do if you get a BSH Error

If you see this error message: java.lang.NoSuchMethodError: bsh.BshClassManager.createClassManager()Lbsh/BshClassManager; at org.ofbiz.base.util.BshUtil.getMasterInterpreter(BshUtil.java:124) at org.ofbiz.base.util.BshUtil.makeInterpreter(BshUtil.java:95) at org.ofbiz.base.util.BshUtil.runBshAtLocation(BshUtil.java:144)

The problem is that your computer has another copy of beanshell (bsh.jar) installed in the Java class path. For example, OS X sometimes has a bsh.jar in /Library/Java/Extensions/ Simply move it out of the way and try again.

Keystore was tampered with, or password was incorrect on OS X

If you encounter this error message: Keystore was tampered with, or password was incorrect

It is actually a problem with Java 6 on OS X, and you can fix it by changing your keystore:

sudo keytool -keystore "/System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/Deploy.bundle/Contents/Home/lib/security/cacerts" -storepasswd -new "changeit" Enter password: <your sudo password> Enter password: changeme

The new keystore password must be exactly "changeme". You do not need to modify the ofbiz-containers.xml file. Just restart opentaps after this.



© Open Source Strategies, Inc. Development of this documentation site is sponsored by Open Source Strategies, Inc.
Help support opentaps with a subscription to this documentation site.