This page last changed on Apr 17, 2014 by dot.

Hi,

I'm working on adding support for the RFXtrx433 to OpenRemote. However, when setting up the local OpenRemote environment for development, I'm running into a bit of trouble.

I've downloaded the latest stable components from:

Circumvented problems:

  • Java 7 disallowed using specific functions used by OpenRemote code base (name clash error), so I reverted back to Java 6 Update 45 (64 bit) and Java SE Development Kit 6 Update 45 (64 bit).
  • Google Web Toolkit (GWT) 2.6 broke compatibility with previous versions (Element type mismatch), so I reverted back to GWT 2.5.1.

Used software:

  • Apache Ant 1.9.3 extracted to D:\apache-ant-1.9.3\bin
  • GWT 2.5.1 extracted to D:\OpenRemote_Sourceforge\Designer_2_13_9_Rosemary_20130330\gwt-2.5.1
  • MySQL 5.6.17.0 Community Edition on the default install path (C:/)

Taken steps:

  • Created beehive database with MySQL Workbench (imported sql file), registered an user account and activated it in the database
  • Added JAVA_HOME, JAVA_JRE to system variables
  • Compiled the Controller with "ant"
  • Compiled the Beehive and Designer with "ant war"
  • Renamed Designer-2.13.9-2013-03-30-Rosemary.war output file to modeler.war
  • Moved Beehive and Designer to "D:\OpenRemote_Sourceforge\Controller_2_0_2\output\OpenRemote-Controller-2.0.2\webapps"
  • Started the controller by calling "D:\OpenRemote_Sourceforge\Controller_2_0_2\output\OpenRemote-Controller-2.0.2\bin\openremote.bat" from the cmd.

The problems:

  • Log4J will give the following error: "log4j:ERROR setFile(null,true) call failed.
    java.io.FileNotFoundException: ..\logs\beehive.openremote.org\3.0\beta1\html\spring.html (The system cannot find the path specified)". Logging shouldn't break the system so I ignored this error.
  • Beehive, Controller and Designer all function but the designer gives "Error 500 The call failed on the server; see server log for details" when trying to save a simple Panel with one button.

I've tried searching the forums and adjusting the config.properties files, but the given solutions do not seem to work in my case. The .log files only list that the user must be new and a beehive backup could not be found.

BEEHIVE config.properties ##############################################
#jdbc config
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/beehive?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
jdbc.username = root
jdbc.password = root

#Work directory, contains svn-repos, workCopy and sync history logs.
work.dir = D:/beehiveWorkDir

#iconDir
icons.dir = http://localhost:8080/beehive/icons/

#lircCrawRegex, it can not be modified until the structure of remote lirc website had changed.
lirc.craw.regex = <tr><td valign=\"top\"><img src=\"/icons/(folder|text|script)\\.gif\" alt=\"\\[\\s\\w+\\]\"></td><td><a href=\"(.?)/?\">.?/?</a></td><td align=\"right\">(\\d\\d-\\w\\w\\w-\\d\\d\\d\\d\\s\\d\\d:\\d
d) </td><td align=\"right\">\\s*[-\\w\\.]+
s*</td></tr>
BEEHIVE ##################################################

Only changed the line at the end of this file:

CONTROLLER config.properties ###############################################
beehive.REST.Root.Url = http://localhost:8080/beehive/rest/
CONTROLLER ##################################################

DESIGNER config.properties #################################################
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/beehive?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
jdbc.username = root
jdbc.password = root

beehive.REST.Root.Url = http://localhost:8080/beehive/rest/
irService.REST.Root.Url = http://localhost:8080/irservice/rest/

panel.xsd.path = /panel-2.0-M7.xsd
controller.xsd.path = /controller-2.0-M7.xsd
webapp.server.root = http://localhost:8080/modeler/

controller.config.xml.path=/controller-config-2.0-M7.xml
controller.config.xsd.path=/controllerConfig-2.0-M7.xsd

#Email sender configuration for account activation.
#NOTE: host, username, password MUST be trimmed!
mail.sender.host=
mail.sender.port=25
mail.sender.username=
mail.sender.password=
mail.smtp.auth.on=false
mail.smtp.timeout=25000
DESIGNER ##################################################

DESIGNER build.properties ##################################################
#Configure path to GWT SDK. IF you want compile the project, please download and config it.
gwt.sdk = D:\gwt-2.5.1

#Version number
#
#Major version for API/Schema compatibility
#Minor version for compatible features
#Last version for bug fixes
version = 2.13.9

#Build date (use YYYY-MM-DD format)
build.date = 2013-03-30

#Build Identifier (arbitrary string name to match major.minor version – for convenience)
version.name = Rosemary
DESIGNER ##################################################

Any help solving this "500" error in the local Designer would be much appreciated!

Douwe

In your catalina logs on the tomcat where you are running your designer and beehive, can you find the stack traces that are reported after the 500 errors – they'll likely point out the code lines that are causing the error and then it is easier to narrow down the configuration mistake.

Posted by juha at Apr 17, 2014 11:39

Thanks for the pointer. The error below is added to the catalina log (localhost.log.0) when pressing "Save" in the local Designer.
Given the error, I cannot tell where look for possible configuration errors. What could be wrong?

17-apr-2014 12:55:44 org.apache.catalina.core.ApplicationContext log
SEVERE: Exception while dispatching incoming RPC call
java.lang.NullPointerException
at javax.servlet.GenericServlet.getServletName(GenericServlet.java:322)
at javax.servlet.GenericServlet.log(GenericServlet.java:277)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:212)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at org.openremote.modeler.server.BaseGWTSpringController.handleRequest(BaseGWTSpringController.java:67)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:859)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:793)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:67)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.codehaus.groovy.grails.plugins.gwt.GwtCacheControlFilter.doFilter(GwtCacheControlFilter.java:57)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.openremote.modeler.filter.UserTimeoutFilter.doFilter(UserTimeoutFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:354)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Posted by dot at Apr 17, 2014 12:21

This seems a more generic framework error, and doesn't show the specifics.

Is there a nested exception stack around this one which you posted? Before or after this log entry?

Does http://localhost:8080/beehive/rest/ from your web browser respond normally?

Posted by juha at Apr 17, 2014 12:51

No, there aren't any other exception stacks around the one I posted above.

http://localhost:8080/beehive/rest/ returns: "HTTP Status 404 - Could not find resource for relative : / of full path: http://localhost:8080/beehive/rest/"

However:

I should add that I did not upload a "openremote.zip" to the local Controller, because of the local Designer "500 error" when saving.

Posted by dot at Apr 17, 2014 13:44

Well the best I can decipher is that it fails in this line in the GWT code:

  log("An IncompatibleRemoteServiceException was thrown while processing this call.", ex);

So it seems to first fail due to what is an incompatible exception type, and then it fails again in logging it correctly by throwing a null pointer in the servlets log method attempting to retrieve the servlet name.

IIRC the version of GWT the Designer releases has been tested with is GWT 2.4.0. Maybe downgrade to that version and see if the problem persists. Also make sure to clear your browser caches to make sure that only the versions of Javascript compiled for the version you're hosting on the Tomcat for the designer are used (and you don't get a mix of Javascript cached on browser and different versions expected on the server).

That's the best guess I have at the moment, the error is getting raised in a place that could indicate GWT version incompatibility.

Posted by juha at Apr 17, 2014 14:19

Thank you for your time and help!

Replacing GWT 2.5.1 with GWT 2.4.0 fixed the problem. I'm now able to save designs.

Posted by dot at Apr 17, 2014 14:41
Document generated by Confluence on Jun 05, 2016 09:31