I have been using the Backendless Standalone v3.0.0-16
I’m downloading Business Logic from a console.
But it was an error in CodeRunner.sh
runner.properties
# This is main configuration file for Code Runner
# Application id
application.id = D3C5565D-xxxx-961C-xxxx-88D35E127600
# Code Runner ID assigned by Backendless Console.
application.secretKey = 66E337DC-xxxx-9E74-xxxx-83C6FD23A300
# Application version name
# Default: v1
application.version = v1
# Optional argument. Search path for classes which will be used for debugging or publishing.
# By default Code Runner looks for the ./build/classes directory located in the current directory
location.classes = ../classes/
# Optional argument. Search path for jar files which are the dependencies for the code which is debugged or published.
# By default Code Runner looks for the ./build/libs directory located in the current directory.
location.jar = ../libs/
# System properties
# Don't touch, if you do not really understand this
system.server.url = http://xxxx.compute-1.amazonaws.com:80/api
# system.redis.master.host = 127.0.0.1
system.redis.master.host = xxxx.compute-1.amazonaws.com
system.redis.master.port = 7738
system.pool.core = 20
system.type = LOCAL
system.repo.path = ../repo/
enterprise.allowedHosts = api.backendless.com,\
xxxx.compute-1.amazonaws.com:80,\
localhost,\
localhost:9000,\
api.gmo-mbaas.com
Error
$ ./CodeRunner.sh
Listening for transport dt_socket at address: 5005
Exception in thread "main" java.lang.RuntimeException: com.mashape.unirest.http.exceptions.UnirestException: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:7737 [/127.0.0.1] failed: Connection refused
at com.backendless.coderunner.config.RemoteConfigProvider.retrieveHosts(RemoteConfigProvider.java:32)
at com.backendless.coderunner.config.RemoteConfigProvider.<init>(RemoteConfigProvider.java:15)
at com.backendless.coderunner.config.Config.init(Config.java:25)
at com.backendless.coderunner.CodeRunnerLoader.main(CodeRunnerLoader.java:34)
Caused by: com.mashape.unirest.http.exceptions.UnirestException: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:7737 [/127.0.0.1] failed: Connection refused
at com.mashape.unirest.http.HttpClientHelper.request(HttpClientHelper.java:146)
at com.mashape.unirest.request.BaseRequest.asJson(BaseRequest.java:68)
at com.backendless.coderunner.config.RemoteConfigProvider.retrieveHosts(RemoteConfigProvider.java:27)
... 3 more
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 127.0.0.1:7737 [/127.0.0.1] failed: Connection refused
at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:142)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:319)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)
at com.mashape.unirest.http.HttpClientHelper.request(HttpClientHelper.java:141)
... 5 more
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:72)
at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:125)
... 16 more
$ ./CodeRunner.sh
Listening for transport dt_socket at address: 5005
[INFO] CodeRunner(tm) Backendless Debugging Utility
[INFO] Copyright(C) 2016 Backendless Corp. All rights reserved.
[INFO] Version: 3.0.0 Build date: 20160129-0801
[INFO] CodeRunner session is running for 2 hours and will be terminated on 07:45:26.620[UTC]
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.backendless.coderunner.CodeRunnerLoader.main(CodeRunnerLoader.java:39)
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
at redis.clients.util.Pool.getResource(Pool.java:50)
at redis.clients.jedis.JedisPool.getResource(JedisPool.java:86)
at com.backendless.redis.JedisManager.getJedis(JedisManager.java:94)
at com.backendless.redis.JedisManager.execute(JedisManager.java:220)
at com.backendless.redis.JedisManager.create(JedisManager.java:74)
at com.backendless.redis.JedisManager.create(JedisManager.java:54)
at com.backendless.coderunner.redis.RedisPoolManager.<init>(RedisPoolManager.java:62)
at com.backendless.coderunner.redis.RedisPoolManager.<clinit>(RedisPoolManager.java:19)
... 1 more
Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused
at redis.clients.jedis.Connection.connect(Connection.java:154)
at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:83)
at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1643)
at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:85)
at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:861)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435)
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363)
at redis.clients.util.Pool.getResource(Pool.java:48)
... 8 more
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at redis.clients.jedis.Connection.connect(Connection.java:148)
... 15 more
I don’t understand a setting method and am in trouble.
I was download to Coderunner SDK.
CodeRunner.sh succeeded.
But Deploy.sh fails.
@Asset( "Work" )
public class WorkTableEventHandler extends com.backendless.servercode.extension.PersistenceExtender<Work>
{
@Override
public void beforeCreate( RunnerContext context, Work work) throws Exception
{
work.setKey(work.getKey().toUpperCase());
work.setValue(work.getValue().toLowerCase());
}
}
playServer.log
00:34:56.806 [ERROR] backendless - D3C5565D-3141-961C-FF75-88D35E127600 --- ERR timeout is negative
redis.clients.jedis.exceptions.JedisDataException: ERR timeout is negative
at redis.clients.jedis.Protocol.processError(Protocol.java:117)
at redis.clients.jedis.Protocol.process(Protocol.java:142)
at redis.clients.jedis.Protocol.read(Protocol.java:196)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:288)
at redis.clients.jedis.Connection.getBinaryMultiBulkReply(Connection.java:224)
at redis.clients.jedis.BinaryJedis.blpop(BinaryJedis.java:1969)
at redis.clients.jedis.BinaryJedis.blpop(BinaryJedis.java:1834)
at com.backendless.servercode.codeBinding.EventHandlerInvoker.executeReturnValMethod(EventHandlerInvoker.java:90)
at com.backendless.servercode.codeModel.ModelCodeExtender.executeBinding(ModelCodeExtender.java:240)
at com.backendless.servercode.codeModel.ModelCodeExtender.executeBefore(ModelCodeExtender.java:192)
at com.backendless.servercode.codeModel.ModelCodeExtender.performActionWithValidationUnsafe(ModelCodeExtender.java:142)
at com.backendless.servercode.codeModel.ModelCodeExtender.performActionWithValidation(ModelCodeExtender.java:108)
at com.backendless.services.persistence.common.CustomLogicDecorator.performActionWithValidation(CustomLogicDecorator.java:214)
at com.backendless.services.persistence.common.CustomLogicDecorator.create(CustomLogicDecorator.java:67)
at com.backendless.services.persistence.common.CustomLogicDecorator.create(CustomLogicDecorator.java:29)
at com.backendless.services.persistence.common.PersistenceInterfaceAdapter.create(PersistenceInterfaceAdapter.java:34)
at com.backendless.services.persistence.PersistenceServiceForClients.save(PersistenceServiceForClients.java:197)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at weborb.util.Invocation.invoke(Invocation.java:190)
at weborb.util.Invocation.invoke(Invocation.java:62)
at weborb.handler.JavaObjectHandler.invoke(JavaObjectHandler.java:112)
at weborb.handler.Handlers.invokeWithHandler(Handlers.java:353)
at weborb.handler.Handlers.invoke(Handlers.java:294)
at weborb.dispatch.Invoker.handleInvoke(Invoker.java:150)
at weborb.v3types.ReqMessage.execute(ReqMessage.java:84)
at com.backendless.types.v3.RequestMessage.directExecute(RequestMessage.java:133)
at com.backendless.types.v3.RequestMessage.executeMessage(RequestMessage.java:117)
at com.backendless.types.v3.RequestMessage.execute(RequestMessage.java:65)
at weborb.dispatch.V3Dispatcher.dispatch(V3Dispatcher.java:43)
at controllers.WebORB.handleAMFRequest(WebORB.java:90)
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$87$$anonfun$apply$87.apply(routes_routing.scala:4262)
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$87$$anonfun$apply$87.apply(routes_routing.scala:4262)
at play.core.Router$HandlerInvokerFactory$$anon$4.resultCall(Router.scala:264)
at play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1.invocation(Router.scala:255)
at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:55)
at com.backendless.TimeOutAction.call(TimeOutAction.java:57)
at com.backendless.CloseEntityManagerAction.call(CloseEntityManagerAction.java:18)
at play.core.j.JavaAction$$anonfun$11.apply(JavaAction.scala:82)
at play.core.j.JavaAction$$anonfun$11.apply(JavaAction.scala:82)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:40)
at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:46)
at play.core.j.HttpExecutionContext.execute(HttpExecutionContext.scala:32)
at scala.concurrent.impl.Future$.apply(Future.scala:31)
at scala.concurrent.Future$.apply(Future.scala:492)
at play.core.j.JavaAction$class.apply(JavaAction.scala:82)
at play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1.apply(Router.scala:252)
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130)
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130)
at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:129)
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:128)
at scala.Option.map(Option.scala:146)
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:128)
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:121)
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:483)
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:483)
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:519)
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:519)
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:496)
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:496)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
00:34:56.817 [ERROR] backendless - D3C5565D-3141-961C-FF75-88D35E127600 --- redis.clients.jedis.exceptions.JedisDataException: ERR timeout is negative
java.lang.RuntimeException: redis.clients.jedis.exceptions.JedisDataException: ERR timeout is negative
at com.backendless.servercode.codeBinding.EventHandlerInvoker.executeReturnValMethod(EventHandlerInvoker.java:133)
at com.backendless.servercode.codeModel.ModelCodeExtender.executeBinding(ModelCodeExtender.java:240)
at com.backendless.servercode.codeModel.ModelCodeExtender.executeBefore(ModelCodeExtender.java:192)
at com.backendless.servercode.codeModel.ModelCodeExtender.performActionWithValidationUnsafe(ModelCodeExtender.java:142)
at com.backendless.servercode.codeModel.ModelCodeExtender.performActionWithValidation(ModelCodeExtender.java:108)
at com.backendless.services.persistence.common.CustomLogicDecorator.performActionWithValidation(CustomLogicDecorator.java:214)
at com.backendless.services.persistence.common.CustomLogicDecorator.create(CustomLogicDecorator.java:67)
at com.backendless.services.persistence.common.CustomLogicDecorator.create(CustomLogicDecorator.java:29)
at com.backendless.services.persistence.common.PersistenceInterfaceAdapter.create(PersistenceInterfaceAdapter.java:34)
at com.backendless.services.persistence.PersistenceServiceForClients.save(PersistenceServiceForClients.java:197)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at weborb.util.Invocation.invoke(Invocation.java:190)
at weborb.util.Invocation.invoke(Invocation.java:62)
at weborb.handler.JavaObjectHandler.invoke(JavaObjectHandler.java:112)
at weborb.handler.Handlers.invokeWithHandler(Handlers.java:353)
at weborb.handler.Handlers.invoke(Handlers.java:294)
at weborb.dispatch.Invoker.handleInvoke(Invoker.java:150)
at weborb.v3types.ReqMessage.execute(ReqMessage.java:84)
at com.backendless.types.v3.RequestMessage.directExecute(RequestMessage.java:133)
at com.backendless.types.v3.RequestMessage.executeMessage(RequestMessage.java:117)
at com.backendless.types.v3.RequestMessage.execute(RequestMessage.java:65)
at weborb.dispatch.V3Dispatcher.dispatch(V3Dispatcher.java:43)
at controllers.WebORB.handleAMFRequest(WebORB.java:90)
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$87$$anonfun$apply$87.apply(routes_routing.scala:4262)
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$87$$anonfun$apply$87.apply(routes_routing.scala:4262)
at play.core.Router$HandlerInvokerFactory$$anon$4.resultCall(Router.scala:264)
at play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1.invocation(Router.scala:255)
at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:55)
at com.backendless.TimeOutAction.call(TimeOutAction.java:57)
at com.backendless.CloseEntityManagerAction.call(CloseEntityManagerAction.java:18)
at play.core.j.JavaAction$$anonfun$11.apply(JavaAction.scala:82)
at play.core.j.JavaAction$$anonfun$11.apply(JavaAction.scala:82)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:40)
at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:46)
at play.core.j.HttpExecutionContext.execute(HttpExecutionContext.scala:32)
at scala.concurrent.impl.Future$.apply(Future.scala:31)
at scala.concurrent.Future$.apply(Future.scala:492)
at play.core.j.JavaAction$class.apply(JavaAction.scala:82)
at play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1.apply(Router.scala:252)
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130)
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130)
at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:129)
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:128)
at scala.Option.map(Option.scala:146)
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:128)
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:121)
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:483)
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:483)
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:519)
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:519)
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:496)
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:496)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: redis.clients.jedis.exceptions.JedisDataException: ERR timeout is negative
at redis.clients.jedis.Protocol.processError(Protocol.java:117)
at redis.clients.jedis.Protocol.process(Protocol.java:142)
at redis.clients.jedis.Protocol.read(Protocol.java:196)
at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:288)
at redis.clients.jedis.Connection.getBinaryMultiBulkReply(Connection.java:224)
at redis.clients.jedis.BinaryJedis.blpop(BinaryJedis.java:1969)
at redis.clients.jedis.BinaryJedis.blpop(BinaryJedis.java:1834)
at com.backendless.servercode.codeBinding.EventHandlerInvoker.executeReturnValMethod(EventHandlerInvoker.java:90)
... 65 common frames omitted
coderunner.log
[ERROR] [Worker] exception timeout value is negative
java.lang.IllegalArgumentException: timeout value is negative
at java.lang.Thread.join(Thread.java:1240) ~[na:1.8.0_65]
at com.backendless.coderunner.runtime.pool.Worker.run(Worker.java:57) ~[CodeRunner.jar:na]
These options control the maximum execution time in seconds.
The bug was that the first one was multiplied by 1000 in our code, which led to overflow and that’s why the result wasn’t retrieved from the handlers’ code.
The second one just needs to be increased because otherwise it would limit the execution time of handlers in debug mode.