• Recent
    • Tags
    • Popular
    • Register
    • Login

    Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

    Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website Mango 5 Documentation Website

    Building Mango in Eclipse

    Development general discussion
    13
    42
    48.9k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      Jay
      last edited by

      Hi all,

      I'm having a problem running/compiling mango using eclipse, and was wondering if someone here might know what I did wrong...

      I've followed all the steps described by Andras to build the project in Eclipse, including "add external jar" to add the following jars from ${tomcat.home}/lib

      servlet-api
      jsp-api

      When I try to build, I get several compile errors starting with

      [javac] C:\Dev\testing\workspace\Mango\src\com\serotonin\mango\vo\User.java:26: package javax.servlet.http does not exist
      [javac] import javax.servlet.http.HttpSessionBindingEvent;
      

      Finally, I copied the files

      servlet-api.jar and
      jsp-api.jar

      into ...war\WEB-INF\lib.

      Then the build process successfully compiles and copies files to Tomcat's webapps folder. In fact, it does this even if I remove the "external jars" servlet-api and jsp-api from classpath (using eclipse)!

      However, when I try to run the application, it returns a HTTP Status 500 page with a null pointer exception in javax.servlet.http.HttpServlet.service

      org.apache.jasper.JasperException: java.lang.NullPointerException
      org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:536)
      org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:368)
      org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
      org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

      I suspect this is related to the servlet-api jar.

      Anyone have any suggestions...?

      Jay

      1 Reply Last reply Reply Quote 0
      • J
        jmo
        last edited by

        I'm having the same problem...
        I'll work on it more tonight or tomorrow and see what happens...

        1 Reply Last reply Reply Quote 0
        • L
          lordportux
          last edited by

          hello team!

          I´m trying to build mango source 1.12.4 and I got the next error:

          > [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\vo\dataSource\DataSourceVO.java:434: error: name has private access in DataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "dsEdit.head.name", from.name, name);
          [javac]                                                                                    ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\vo\dataSource\DataSourceVO.java:435: error: xid has private access in DataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "common.xid", from.xid, xid);
          [javac]                                                                              ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\vo\dataSource\DataSourceVO.java:436: error: enabled has private access in DataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "common.enabled", from.enabled, enabled);
          [javac]                                                                                  ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\br\org\scadabr\vo\dataSource\dnp3\Dnp3DataSourceVO.java:164: error: rbePeriodType has private access in Dnp3DataSourceVO
          [javac]         AuditEventType.maybeAddPeriodChangeMessage(list, "dsEdit.dnp3.rbePeriod", from.rbePeriodType,
          [javac]                                                                                       ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\br\org\scadabr\vo\dataSource\dnp3\Dnp3DataSourceVO.java:165: error: rbePollPeriods has private access in Dnp3DataSourceVO
          [javac]                 from.rbePollPeriods, rbePeriodType, rbePollPeriods);
          [javac]                     ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\br\org\scadabr\vo\dataSource\dnp3\Dnp3DataSourceVO.java:166: error: synchPeriods has private access in Dnp3DataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "dsEdit.dnp3.synchPeriod", from.synchPeriods, synchPeriods);
          [javac]                                                                                           ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\br\org\scadabr\vo\dataSource\dnp3\Dnp3DataSourceVO.java:167: error: staticPollPeriods has private access in Dnp3DataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "dsEdit.dnp3.staticPeriod", from.staticPollPeriods,
          [javac]                                                                                            ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\br\org\scadabr\vo\dataSource\dnp3\Dnp3DataSourceVO.java:169: error: sourceAddress has private access in Dnp3DataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "dsEdit.dnp3.sourceAddress", from.sourceAddress,
          [javac]                                                                                             ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\br\org\scadabr\vo\dataSource\dnp3\Dnp3DataSourceVO.java:171: error: slaveAddress has private access in Dnp3DataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "dsEdit.dnp3.slaveAddress", from.slaveAddress, slaveAddress);
          [javac]                                                                                            ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\br\org\scadabr\vo\dataSource\dnp3\Dnp3DataSourceVO.java:172: error: retries has private access in Dnp3DataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "dsEdit.dnp3.retries", from.retries, retries);
          [javac]                                                                                       ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\br\org\scadabr\vo\dataSource\dnp3\Dnp3DataSourceVO.java:173: error: retries has private access in Dnp3DataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "dsEdit.modbus.retries", from.retries, retries);
          [javac]                                                                                         ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\vo\dataSource\modbus\ModbusDataSourceVO.java:207: error: updatePeriodType has private access in ModbusDataSourceVO
          [javac]         AuditEventType.maybeAddPeriodChangeMessage(list, "dsEdit.updatePeriod", from.updatePeriodType,
          [javac]                                                                                     ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\vo\dataSource\modbus\ModbusDataSourceVO.java:208: error: updatePeriods has private access in ModbusDataSourceVO
          [javac]                 from.updatePeriods, updatePeriodType, updatePeriods);
          [javac]                     ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\vo\dataSource\modbus\ModbusDataSourceVO.java:209: error: quantize has private access in ModbusDataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "dsEdit.quantize", from.quantize, quantize);
          [javac]                                                                                   ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\vo\dataSource\modbus\ModbusDataSourceVO.java:210: error: timeout has private access in ModbusDataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "dsEdit.modbus.timeout", from.timeout, timeout);
          [javac]                                                                                         ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\vo\dataSource\modbus\ModbusDataSourceVO.java:211: error: retries has private access in ModbusDataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "dsEdit.modbus.retries", from.retries, retries);
          [javac]                                                                                         ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\vo\dataSource\modbus\ModbusDataSourceVO.java:212: error: contiguousBatches has private access in ModbusDataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "dsEdit.modbus.contiguousBatches", from.contiguousBatches,
          [javac]                                                                                                   ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\vo\dataSource\modbus\ModbusDataSourceVO.java:215: error: createSlaveMonitorPoints has private access in ModbusDataSourceVO
          [javac]                 from.createSlaveMonitorPoints, createSlaveMonitorPoints);
          [javac]                     ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\vo\dataSource\modbus\ModbusDataSourceVO.java:216: error: maxReadBitCount has private access in ModbusDataSourceVO
          [javac]         AuditEventType.maybeAddPropertyChangeMessage(list, "dsEdit.modbus.maxReadBitCount", from.maxReadBitCount,
          [javac]                                                                                                 ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\vo\dataSource\modbus\ModbusDataSourceVO.java:219: error: maxReadRegisterCount has private access in ModbusDataSourceVO
          [javac]                 from.maxReadRegisterCount, maxReadRegisterCount);
          [javac]                     ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\vo\dataSource\modbus\ModbusDataSourceVO.java:221: error: maxWriteRegisterCount has private access in ModbusDataSourceVO
          [javac]                 from.maxWriteRegisterCount, maxWriteRegisterCount);
          [javac]                     ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\util\test\DummyServletContext.java:35: error: DummyServletContext is not abstract and does not override abstract method getJspConfigDescriptor() in ServletContext
          [javac] public class DummyServletContext implements ServletContext {
          [javac]        ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\util\test\DummyServletContext.java:54: error: getAttributeNames() in DummyServletContext cannot implement getAttributeNames() in ServletContext
          [javac]     public Enumeration<?> getAttributeNames() {
          [javac]                           ^
          [javac]   return type Enumeration<?> is not compatible with Enumeration<String>
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\util\test\DummyServletContext.java:77: error: getInitParameterNames() in DummyServletContext cannot implement getInitParameterNames() in ServletContext
          [javac]     public Enumeration<?> getInitParameterNames() {
          [javac]                           ^
          [javac]   return type Enumeration<?> is not compatible with Enumeration<String>
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\util\test\DummyServletContext.java:155: error: getServletNames() in DummyServletContext cannot implement getServletNames() in ServletContext
          [javac]     public Enumeration<?> getServletNames() {
          [javac]                           ^
          [javac]   return type Enumeration<?> is not compatible with Enumeration<String>
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\util\test\DummyServletContext.java:161: error: getServlets() in DummyServletContext cannot implement getServlets() in ServletContext
          [javac]     public Enumeration<?> getServlets() {
          [javac]                           ^
          [javac]   return type Enumeration<?> is not compatible with Enumeration<Servlet>
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\util\test\DummyServletContext.java:131: error: getResourcePaths(String) in DummyServletContext cannot implement getResourcePaths(String) in ServletContext
          [javac]     public Set<?> getResourcePaths(String arg0) {
          [javac]                   ^
          [javac]   return type Set<?> is not compatible with Set<String>
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\util\test\DummyServletContext.java:53: error: method does not override or implement a method from a supertype
          [javac]     @Override
          [javac]     ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\util\test\DummyServletContext.java:76: error: method does not override or implement a method from a supertype
          [javac]     @Override
          [javac]     ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\util\test\DummyServletContext.java:130: error: method does not override or implement a method from a supertype
          [javac]     @Override
          [javac]     ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\util\test\DummyServletContext.java:154: error: method does not override or implement a method from a supertype
          [javac]     @Override
          [javac]     ^
          [javac] C:\Users\Lordportux\workspace\myMangoBranch\src\com\serotonin\mango\util\test\DummyServletContext.java:160: error: method does not override or implement a method from a supertype
          [javac]     @Override
          [javac]     ^
          [javac] Note: Some input files use or override a deprecated API.
          [javac] Note: Recompile with -Xlint:deprecation for details.
          [javac] 32 errors
          

          what's the problem? :(

          1 Reply Last reply Reply Quote 0
          • J
            johnparker16
            last edited by

            In addition, i suggest modifying the code in your tomcat-users computer file. There is a known crawler that looks for credit card Tomcat circumstances and uses the administrator to publish and start programs.

            1 Reply Last reply Reply Quote 0
            • C
              chahin
              last edited by

              Hi,
              am trying to run th build.xml file but i found some Error :shock: :

              for example : /*** Compiling 616 source files to C:\workspace-pfe\mango\build\WEB-INF\classes
              [javac] C:\workspace-pfe\mango\src\com\serotonin\mango\vo\User.java:26: error: package javax.servlet.http does not exist
              [javac] import javax.servlet.http.HttpSessionBindingEvent; ***/

              help please :cry:

              REM: i download the code source from http://sourceforge.net/projects/scadabr/files/Software/mango-src/mango-source-1.12.3.zip/download (VERSION 1.12.3)

              1 Reply Last reply Reply Quote 0
              • D
                Dusan
                last edited by

                Hi,

                I had similar problem with javax.servlet.http.... I resolved it with adding all libraries in the project. Right click on the project/Build Path/Configure Build Path/Choose Java Build Path on the left and add all .jar files from war/WEB-INF/lib.
                That should be ok.

                I have another problem:
                My build is successful, but I can't see it in my browser. I copy files from webapps/test to webapps/ROOT, but http://localhost:8080/ returnes error. Please, help!

                Thank you very much!

                Dusan

                1 Reply Last reply Reply Quote 0
                • M
                  mlohbihler
                  last edited by

                  Can you provide some more details on the nature of the error? Is there anything in the Tomcat log?

                  Best regards,
                  Matthew

                  1 Reply Last reply Reply Quote 0
                  • D
                    Dusan
                    last edited by

                    Hi,

                    thank you for answering!

                    http://localhost:8080/test returnes this:


                    HTTP Status 500 -

                    type Exception report
                    message
                    description The server encountered an internal error () that prevented it from fulfilling this request.
                    exception
                    org.apache.jasper.JasperException: Unable to compile class for JSP:

                    An error occurred at line: 22 in the generated java file
                    The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

                    Stacktrace:
                    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
                    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
                    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
                    org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
                    org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
                    org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
                    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
                    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
                    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
                    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
                    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.

                    Apache Tomcat/6.0.35

                    http://localhost:8080/mango works (folder mango contains extracted mango-1.13.0.zip downloaded from Mango Website).
                    .................................................................................................................................
                    I built it as Andreas did (on the first page). That is:

                    -get Eclipse IDE for Java EE Developers
                    -get Mango source code, unpack it
                    -add empty subdirectories lib, src_gen and src_test to Mango source
                    -add RXTXcomm.jar in lib directory
                    -in file build.properties, edit tomcat.home to point at the tomcat location on your system.
                    C:/Program Files/Apache Software Foundation/Tomcat 6.0
                    -get axis-ant.jar and put it into the WEB-INF/lib directory
                    -In Eclipse choose import->general and browse to the mango source
                    -I used "add jar" to add these jars in war/WEB-INF/lib :

                    modbus4J
                    seroUtils
                    common-httputils
                    quartz
                    bacnet4J
                    commons-codec
                    joda-time

                    servlet-api
                    jsp-api

                    -I added the rest of .jar files

                    -right-click build.xml in the project explorer and choose run as->2(3).ant-build...
                    choose the createconfigfiles target
                    -right-click build.xml again and again choose run as->2(3).ant-build...
                    choose the default deploy

                    The newly built Mango is now copied to the tomcat webapps/test directory
                    ..............................................................................................................................

                    I don't think it is connected to the problem, but I see WARNING signs on several packages in src folder (in Eclipse).
                    Also, I see "C:\Documents and Settings\Administrator\Desktop\mango-source-1.12.4\build.xml:82: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds" in console, after building it.

                    Thank you very much!

                    Dusan

                    1 Reply Last reply Reply Quote 0
                    • M
                      mlohbihler
                      last edited by

                      There's not really an error message there beyond, "there was an error", so it's hard to say. I'd suggest looking for differences between the "test" deployment and the "mango" deployment.

                      Best regards,
                      Matthew

                      1 Reply Last reply Reply Quote 0
                      • D
                        Dusan
                        last edited by

                        OK, I'll try to figure it out.

                        Thank you very much!

                        Dusan

                        1 Reply Last reply Reply Quote 0
                        • D
                          Dusan
                          last edited by

                          Hi again,

                          I'm analysing Mango source code. I don't know how JSP pages are connected.

                          For example: the first page is login.jsp (in WEB-INF/jsp/). When user clicks on Log in button,
                          what is the next jsp page that will be shown to him?

                          Where can I define navigation rules?

                          In JSF there is a file faces-config.xml where navigation rules are defined (start JSP page, servlet which checks username and password, and the next JSP page).

                          I imported Mango source code in Eclipse as General/Existing Project into Workspace.

                          P.S. I opened new topic about it, Programming in Mango.

                          Thank you very much!

                          Dusan

                          1 Reply Last reply Reply Quote 0
                          • W
                            wangkai2010
                            last edited by

                            @craig said:

                            I do the following:

                            1. make sure you have eclipse release which includes the web tools project.
                            2. unpack mango source in a directory called "myMangoBranch" inside the eclipse workspace directory
                            3. Do File->New->Other, choose "Dynamic Web project" from under "Web"
                            4. Make Project name "myMangoBranch" (must match existing directory name)
                            5. I don't have to change any other options on the new dynamic web project dialog, target runtime is apache tomcat 6.0 (you may have to add a target runtime), so I hit next.
                            6. Source folders on the build path i leave as "src" and default output folder I leave as build/classes, so i hit next
                            7. Content Directory I change from "WebContent" to war. Hit finish!

                            In accordance with the above steps.I build the project,but I meet fatal error:

                            Exception sending context initialized event to listener instance of class com.serotonin.mango.MangoContextListener
                            java.util.MissingResourceException: Can't find bundle for base name env, locale zh_CN
                            at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
                            at java.util.ResourceBundle.getBundleImpl(Unknown Source)
                            at java.util.ResourceBundle.getBundle(Unknown Source)
                            at com.serotonin.util.PropertiesUtils.<init>(PropertiesUtils.java:30)
                            at com.serotonin.util.PropertiesUtils.<init>(PropertiesUtils.java:24)
                            at com.serotonin.mango.Common.getEnvironmentProfile(Common.java:300)
                            at com.serotonin.mango.db.DatabaseAccess.createDatabaseAccess(DatabaseAccess.java:72)
                            at com.serotonin.mango.MangoContextListener.databaseInitialize(MangoContextListener.java:253)
                            at com.serotonin.mango.MangoContextListener.contextInitialized(MangoContextListener.java:94)
                            at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
                            at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
                            at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
                            at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
                            at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
                            at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
                            at org.apache.catalina.core.StandardService.start(StandardService.java:525)
                            at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
                            at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
                            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                            at java.lang.reflect.Method.invoke(Unknown Source)
                            at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
                            at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
                            2012-11-26 10:07:22 org.apache.catalina.core.StandardContext start

                            I need help.Could someone helps me.Thank you!!

                            1 Reply Last reply Reply Quote 0
                            • A
                              abhig4488
                              last edited by

                              Hi all
                              i followed all the steps told by craig.
                              But it showed error Eclipse that the myMangoBranch directory already exists (and suggests to use import existing project). & if i import the project cannot be run properly using tomcat..
                              Can anyone help please?

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post