Building Mango in Eclipse
-
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-apiWhen 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.jarinto ...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
-
I'm having the same problem...
I'll work on it more tonight or tomorrow and see what happens... -
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? :(
-
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.
-
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)
-
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
-
Can you provide some more details on the nature of the error? Is there anything in the Tomcat log?
-
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 JspFactoryStacktrace:
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-timeservlet-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 deployThe 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
-
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.
-
OK, I'll try to figure it out.
Thank you very much!
Dusan
-
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
-
@craig said:
I do the following:
- make sure you have eclipse release which includes the web tools project.
- unpack mango source in a directory called "myMangoBranch" inside the eclipse workspace directory
- Do File->New->Other, choose "Dynamic Web project" from under "Web"
- Make Project name "myMangoBranch" (must match existing directory name)
- 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.
- Source folders on the build path i leave as "src" and default output folder I leave as build/classes, so i hit next
- 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 startI need help.Could someone helps me.Thank you!!
-
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?