Coder Social home page Coder Social logo

serverless-plugins's Introduction

serverless-plugins's People

Contributors

adrieankhisbe avatar alexbeletsky avatar asprouse avatar dearlordylord avatar dependabot[bot] avatar dherault avatar djamelsoualmi avatar dnalborczyk avatar esetnik avatar freitasmurillo avatar gemmadlou avatar godu avatar hemslo avatar jameskyburz avatar justin-cmp avatar larrybotha avatar limess avatar lukemcgregor avatar maxwell2022 avatar moonthug avatar nicksieger avatar ramansah avatar rastasheep avatar rpedretti avatar szarlus avatar viniciusalberkovics avatar zoellner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

serverless-plugins's Issues

Incorrect QueueUrl used: preserve docker host in queueUrl

I am running serverless offline inside a docker container, and I have my SQS endpoint as http://elasticmq:9324. This works fine for creating new queues, but when we fetch the QueueUrl from SQS here:

const {QueueUrl} = await fromCallback(cb => client.getQueueUrl({QueueName}, cb));

We get back a QueueUrl of http://localhost:9324/queue/queue-name instead of http://elasticmq:9324/queue/queue-name, thus causing the fetching of messages from the queue to fail.

I think this is a bug/feature of the GetQueueUrl API endpoint, but could we perhaps avoid using it and compute the QueueUrl ourselves?

YAMLException: duplicated mapping key

After adding serverless-offline-sqs plugin and configuration, startup fails with the following output:

myservice | YAMLException: duplicated mapping key in "/var/task/serverless.yml" at line 2, column 1:
myservice | Serverless: Load command config: ...
myservice | ^
myservice | at generateError (/var/task/node_modules/js-yaml/lib/js-yaml/loader.js:167:10)
myservice | at throwError (/var/task/node_modules/js-yaml/lib/js-yaml/loader.js:173:9)
myservice | at storeMappingPair (/var/task/node_modules/js-yaml/lib/js-yaml/loader.js:335:7)
myservice | at readBlockMapping (/var/task/node_modules/js-yaml/lib/js-yaml/loader.js:1098:9)
myservice | at composeNode (/var/task/node_modules/js-yaml/lib/js-yaml/loader.js:1359:12)
myservice | at readDocument (/var/task/node_modules/js-yaml/lib/js-yaml/loader.js:1519:3)
myservice | at loadDocuments (/var/task/node_modules/js-yaml/lib/js-yaml/loader.js:1575:5)
myservice | at Object.load (/var/task/node_modules/js-yaml/lib/js-yaml/loader.js:1596:19)
myservice | at loadYaml (/var/task/node_modules/serverless/lib/utils/fs/parse.js:12:17)
myservice | at parse (/var/task/node_modules/serverless/lib/utils/fs/parse.js:30:16)
myservice | at fse.readFileAsync.then.contents (/var/task/node_modules/serverless/lib/utils/fs/readFile.js:7:63)
myservice | at /var/task/node_modules/graceful-fs/graceful-fs.js:90:16
myservice | at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:511:3)
myservice | From previous event:
myservice | at readFile (/var/task/node_modules/serverless/lib/utils/fs/readFile.js:7:46)
myservice | at getServerlessConfigFilePath.then.configFilePath (/var/task/node_modules/serverless/lib/utils/getServerlessConfigFile.js:73:16)
myservice | From previous event:
myservice | at Object._.memoize.serverless (/var/task/node_modules/serverless/lib/utils/getServerlessConfigFile.js:65:45)
myservice | at Object.memoized [as getServerlessConfigFile] (/var/task/node_modules/lodash/lodash.js:10552:27)
myservice | at PluginManager.loadConfigFile (/var/task/node_modules/serverless/lib/classes/PluginManager.js:48:8)
myservice | at Serverless.init (/var/task/node_modules/serverless/lib/Serverless.js:65:8)
myservice | at initializeErrorReporter.then (/var/task/node_modules/serverless/bin/serverless.js:59:6)
myservice | at runCallback (timers.js:794:20)
myservice | at tryOnImmediate (timers.js:752:5)
myservice | at processImmediate [as _immediateCallback] (timers.js:729:5)
myservice | From previous event:
myservice | at Object. (/var/task/node_modules/serverless/bin/serverless.js:46:39)
myservice | at Module._compile (module.js:652:30)
myservice | at Object.Module._extensions..js (module.js:663:10)
myservice | at Module.load (module.js:565:32)
myservice | at tryModuleLoad (module.js:505:12)
myservice | at Function.Module._load (module.js:497:3)
myservice | at Function.Module.runMain (module.js:693:10)
myservice | at startup (bootstrap_node.js:188:16)
myservice | at bootstrap_node.js:609:3
myservice |
myservice | Get Support --------------------------------------------
myservice | Docs: docs.serverless.com
myservice | Bugs: github.com/serverless/serverless/issues
myservice | Issues: forum.serverless.com
myservice |
myservice | Your Environment Information ---------------------------
myservice | Operating System: linux
myservice | Node Version: 8.10.0
myservice | Framework Version: 1.51.0
myservice | Plugin Version: 1.3.9
myservice | SDK Version: 2.1.0

YAML actually does not contain any duplicate keys. Verified with sls print, and by using cfn-flip to convert to JSON.

Configuration looks like this:

Plugin Configurations

----------------------

plugins:

  • serverless-plugin-aws-alerts
  • serverless-plugin-tracing
  • serverless-pseudo-parameters
  • serverless-webpack
  • serverless-offline-sqs
  • serverless-offline # Must be loaded last

Custom Configurations

----------------------

custom:

Configurations for serverless-plugin-aws-alerts

alerts: ${file(serverless/lambda-cloudwatch-alerts.yml)}

Configurations for serverless-webpack

webpack:
# enable auto-packing of external modules since webpack
# uses webpack-node-externals
includeModules: true

Configuration for serverless-offline-sqs

serverless-offline-sqs:
autoCreate: false
apiVersion: '2012-11-05' # AWS SQS API version
endpoint: http://localhost:4576
region: us-east-1
accessKeyId: root
secretAccessKey: root
skipCacheInvalidation: false

Suggestion: Auto creation

@godu

Currently the sqs plugin doesn't create the queues declared at resources.
Maybe we could add this feature?
I made a PR as a suggestion.
It try to create the queue only using the queue name. If the queue already exists nothing changes.

SQS trigger only once

When I run the command:
serverless offline start
SQS is triggered only once, i need to restart serverless to trigger again.

DynamoDBStreamReadable prematurely emits `end`

DynamoDBStreamReadable prematurely emits end which causes the serverless-offline-dynamodb-streams plugin to close it's writable. This means that when the plugin is used with TRIM_HORIZON it will only fire handlers on sls offline start.

Looks like this PR to fix LATEST starting point might have broken this:
#37

Applying serverless-apigateway-access-logs to existing Stack

I have a serverless lambda stack that has been in place for some time. Recently, we began wanting to write API Gateway Access Logs for our existing API Gateway API. This plugin appears to do exactly what we want, except it seems to have issues when trying to add it to a pre-existing API Gateway API.

When I run sls deploy I get the following error:

CloudFormation - CREATE_FAILED - AWS::ApiGateway::Stage - ApiGatewayStage

18:54:20 Serverless: Operation failed!
18:54:20  
18:54:20   Serverless Error ---------------------------------------
18:54:20  
18:54:20   An error occurred: ApiGatewayStage - staging already exists.
18:54:20  
18:54:20   Stack Trace --------------------------------------------
18:54:20  
18:54:20 ServerlessError: An error occurred: ApiGatewayStage - staging already exists.
18:54:20     at provider.request.then (/usr/lib/node_modules/serverless/lib/plugins/aws/lib/monitorStack.js:112:33)
18:54:20 From previous event:
18:54:20     at AwsDeploy.monitorStack (/usr/lib/node_modules/serverless/lib/plugins/aws/lib/monitorStack.js:26:12)
18:54:20     at provider.request.then (/usr/lib/node_modules/serverless/lib/plugins/aws/lib/updateStack.js:95:30)
18:54:20 From previous event:
18:54:20     at AwsDeploy.update (/usr/lib/node_modules/serverless/lib/plugins/aws/lib/updateStack.js:95:8)
18:54:20 From previous event:
18:54:20     at AwsDeploy.BbPromise.bind.then (/usr/lib/node_modules/serverless/lib/plugins/aws/lib/updateStack.js:112:12)
18:54:20 From previous event:
18:54:20     at AwsDeploy.updateStack (/usr/lib/node_modules/serverless/lib/plugins/aws/lib/updateStack.js:106:8)
18:54:20 From previous event:
18:54:20     at AwsDeploy.BbPromise.bind.then (/usr/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:129:39)
18:54:20 From previous event:
18:54:20     at Object.aws:deploy:deploy:updateStack [as hook] (/usr/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:125:10)
18:54:20     at BbPromise.reduce (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:390:55)
18:54:20 From previous event:
18:54:20     at PluginManager.invoke (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:390:22)
18:54:20     at PluginManager.spawn (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:408:17)
18:54:20     at AwsDeploy.BbPromise.bind.then (/usr/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:95:48)
18:54:20 From previous event:
18:54:20     at Object.deploy:deploy [as hook] (/usr/lib/node_modules/serverless/lib/plugins/aws/deploy/index.js:91:10)
18:54:20     at BbPromise.reduce (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:390:55)
18:54:20 From previous event:
18:54:20     at PluginManager.invoke (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:390:22)
18:54:20     at PluginManager.run (/usr/lib/node_modules/serverless/lib/classes/PluginManager.js:421:17)
18:54:20     at variables.populateService.then.then (/usr/lib/node_modules/serverless/lib/Serverless.js:157:33)
18:54:20     at runCallback (timers.js:705:18)
18:54:20     at tryOnImmediate (timers.js:676:5)
18:54:20     at processImmediate (timers.js:658:5)
18:54:20     at process.topLevelDomainCallback (domain.js:120:23)
18:54:20 From previous event:
18:54:20     at Serverless.run (/usr/lib/node_modules/serverless/lib/Serverless.js:144:8)
18:54:20     at serverless.init.then (/usr/lib/node_modules/serverless/bin/serverless:43:50)

Is there any way to add this plugin to my serverless config and deploy successfully without having to delete my entire Cloud Formation stack?

Functioning as per readme?

Hey!

I really want to use your plugin since it's brand new and support for SQS as an event trigger is in place.

When I follow your documentation instructions, I get the below error:

  Serverless Error ---------------------------------------

  Serverless plugin "serverless-offline-sqs" initialization errored: Unexpected identifier

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

  Your Environment Information -----------------------------
     OS:                     darwin
     Node Version:           6.10.3
     Serverless Version:     1.29.2

I followed the above based on these instructions:

Then inside your project's serverless.yml file, add following entry to the plugins section before serverless-offline (and after serverless-webpack if presents): serverless-offline-sqs.

plugins:
  - serverless-webpack
  - serverless-offline-sqs
  - serverless-offline

[serverless-offline-sqs] Doesn't work with the latest serverless-offline

"serverless": "^1.46.1",
"serverless-offline": "^5.7.2",
"serverless-offline-sqs": "^2.0.3",
Error --------------------------------------------------

  Cannot find module 'serverless-offline/src/createLambdaContext'

     For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.

  Stack Trace --------------------------------------------

Error: Cannot find module 'serverless-offline/src/createLambdaContext'
    at Function.Module._resolveFilename (module.js:548:15)
    at Function.Module._load (module.js:475:25)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (~/node_modules/serverless-offline-sqs/src/index.js:18:29)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at plugins.forEach (~/node_modules/serverless/lib/classes/PluginManager.js:105:24)
    at Array.forEach (<anonymous>)
    at PluginManager.loadPlugins (~/node_modules/serverless/lib/classes/PluginManager.js:101:13)
    at PluginManager.loadServicePlugins (~/node_modules/serverless/lib/classes/PluginManager.js:156:10)
    at PluginManager.loadAllPlugins (~/node_modules/serverless/lib/classes/PluginManager.js:96:10)
    at pluginManager.loadConfigFile.then.then (~/node_modules/serverless/lib/Serverless.js:74:26)
From previous event:
    at Serverless.init (~/node_modules/serverless/lib/Serverless.js:72:8)
    at initializeErrorReporter.then (~/node_modules/serverless/bin/serverless:42:21)
    at runCallback (timers.js:810:20)
    at tryOnImmediate (timers.js:768:5)
    at processImmediate [as _immediateCallback] (timers.js:745:5)
From previous event:
    at ~/node_modules/serverless/bin/serverless:28:46
    at Object.<anonymous> (~/node_modules/serverless/bin/serverless:65:4)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Function.Module.runMain (module.js:694:10)
    at startup (bootstrap_node.js:204:16)
    at bootstrap_node.js:625:3

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

  Your Environment Information ---------------------------
     OS:                     darwin
     Node Version:           8.12.0
     Serverless Version:     1.46.1

after start 'arn' is undefined and not trigger the receiver function

I cannot get this module to work, it throws this error and does not trigger the Receiver function. Any idea?

yaml file:

service:
  name: services
  publish: false
package:
  individually: true
custom:
  stage: ${opt:stage, self:provider.stage}

  serverless-offline-sqs:
    autoCreate: true    
    apiVersion: '2012-11-05'
    endpoint: http://172.17.0.5:9324
    region: eu-west-1
    skipCacheInvalidation: false
provider:
  name: aws
  runtime: nodejs8.10
  stage: ${env:NODE_ENV}
  tracing: true # enable tracing
  iamRoleStatements:
    - Effect: "Allow"
      Action:
        - "sqs:SendMessage"
        - "sqs:ListQueues"
        - "sqs:GetQueueUrl"
      Resource: "arn:aws:sqs:${self:provider.region}:*"
functions:
  ownershipDeviceSyncReceiver:
    name: ${self:custom.stage}-ownership-device-sync-from-photo-metadata
    handler: src/handlers/ownership/handler.deviceSyncFromPhotoMetadata
    reservedConcurrency: 10 <-- Concurrency control
    events:
      - sqs:
        arn:
          Fn::GetAtt:
            - LocalPhotoMetadataQueue
            - Arn
  sqsTestSender:
    name: ${self:custom.stage}-ownership-sqsTest
    handler: src/handlers/ownership/handler.testSender
    events:
      - http:
          method: post
          path: /o/sqsTest
          
plugins:
  - serverless-offline-sqs
  - serverless-offline
resources:
  Resources:
    LocalPhotoMetadataQueue:
      Type: AWS::SQS::Queue
      Properties:
        QueueName: LocalPhotoMetadataQueue

Error:

Serverless: Offline listening on http://0.0.0.0:3000
 (node:35) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'arn' of null
     at ServerlessOfflineSQS.getQueueName (/app/node_modules/serverless-offline-sqs/src/index.js:68:27)
     at ServerlessOfflineSQS.createQueueReadable (/app/node_modules/serverless-offline-sqs/src/index.js:159:28)
     at queueEvent (/app/node_modules/serverless-offline-sqs/src/index.js:234:14)
     at r (/app/node_modules/lodash/lodash.min.js:5:356)
     at nu (/app/node_modules/lodash/lodash.min.js:67:92)
     at l (/app/node_modules/lodash/lodash.min.js:50:137)
     at mapValues.convert (/app/node_modules/serverless-offline-sqs/src/index.js:233:7)
     at /app/node_modules/lodash/lodash.min.js:101:386
     at /app/node_modules/lodash/lodash.min.js:45:502
     at mt (/app/node_modules/lodash/lodash.min.js:27:267)
     at An.mapValues (/app/node_modules/lodash/lodash.min.js:101:358)
     at l (/app/node_modules/lodash/lodash.min.js:50:137)
     at ServerlessOfflineSQS.offlineStartInit (/app/node_modules/serverless-offline-sqs/src/index.js:221:36)

Integration tests do not test code that creates queues

The integration tests do not appear to test the underlying code that creates the SQS queues. Instead, they rely on running shell scripts that directly invoke the AWS CLI. For example, from scripts/create-queues.sh:

aws sqs --endpoint-url ${AWS_ENDPOINT_URL} create-queue

Is this not simply creating the queue via the AWS CLI? How is this testing the code contained in packages/serverless-offline-sqs/src/index.js that is responsible for creating the queues?

serverless-offline 6.x support

Thanks for the great work here! Wanted to see if serverless-offline 6.x support is in the works, in particular for serverless-offline-sqs?

I'm happy to help!

MessageRetentionPeriod not working with serverless-offline-sqs

# serverless ressources
resources:
  Resources:
    testSQS:
      Type: AWS::SQS::Queue
      Properties:
        QueueName: "my-testSQS"
        VisibilityTimeout: 25
        MessageRetentionPeriod: 120
        ReceiveMessageWaitTimeSeconds: 0
        RedrivePolicy:
          deadLetterTargetArn:
            Fn::GetAtt:
              - testDeadLetterQueue
              - Arn
          maxReceiveCount: 5

    testDeadLetterQueue:
      Type: AWS::SQS::Queue
      Properties:
        QueueName: "my-testDeadLetterQueue"
        VisibilityTimeout: 25
        MessageRetentionPeriod: 120
        ReceiveMessageWaitTimeSeconds: 0

I have this configuration in serverless.yml, what i expected that if the message fail to process (Lambda error), it will keep trying until it reach MessageRetentionPeriod then it will go to testDeadLetterQueue, it is work fine in AWS SQS (Cloud), but in local the message keep trying forever and it never reach dead-letter-queue.

Could anyone suggest me what is wrong with this?

[serverless-offline-sqs] Doesn't work with serverless-pseudo-parameters

My serverless.yml looks like:

plugins:
  - serverless-plugin-typescript
  - serverless-offline-sqs
  - serverless-offline
  - serverless-pseudo-parameters
# ...
functions
- processQueue:
    handler: src/handlers/processQueue.handler
    events:
      - sqs: arn:aws:sqs:${self:provider.region}:#{AWS::AccountId}:MyQueue

I've got an error:

(node:1824) UnhandledPromiseRejectionWarning: Invalid request: MissingQueryParamRejection(QueueName), MissingFormFieldRejection(QueueUrl): Invalid request: MissingQueryParamRejection(QueueName), MissingFormFieldRejection(QueueUrl); see the SQS docs.

Looks like pseudo parameters break realisation and queue name cannot be parsed from arn.

serverless-offline-sqs configuration issue

Hi there,

I've been playing with offline-sqs and I believe there is a code bug.

The specific line is: https://github.com/godu/serverless/blob/master/packages/serverless-offline-sqs/src/index.js#L38

When you create a queue in AWS there is no trailing '/' in the ARN; which this code expects.

$ aws sqs create-queue --queue-name funtimes
{
    "QueueUrl": "https://us-west-2.queue.amazonaws.com/<acct>/funtimes"
}

$ aws sqs get-queue-attributes --queue-url <url_above> --attribute-names QueueArn
{
    "Attributes": {
        "QueueArn": "arn:aws:sqs:us-west-2:<acct>:funtimes"
    }
}

Reading this code makes me think there should be a URL in the function sqs configurtion, however that is not in line with the serverless docs on the matter

functions:
    funtimes:
        handler: src/funtimes.handler
        events:
            - sqs:
                arn: arn:aws:sqs:us-west-2:<acct>:funtimes

When I use this plugin I get the following error:

[1] (node:20757) UnhandledPromiseRejectionWarning: MissingRequiredParameter: Missing required key 'QueueName' in params
[1]     at ParamValidator.fail (/Users/ossareh/dev/src/code.famfi.co/mono/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/param_validator.js:50:37)
[1]     at ParamValidator.validateStructure (/Users/ossareh/dev/src/code.famfi.co/mono/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/param_validator.js:61:14)
[1]     at ParamValidator.validateMember (/Users/ossareh/dev/src/code.famfi.co/mono/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/param_validator.js:88:21)

The config I have is pretty simple:

custom:
    servleress-offline-sqs:
        region: us-west-2 # without this we get a missing region related error

Also, it's not possible to use a slash in a queue name:

$ aws sqs create-queue --queue-name funtimes/method

An error occurred (InvalidParameterValue) when calling the CreateQueue operation: Can only include alphanumeric characters, hyphens, or underscores. 1 to 80 in length

One thought I had was to allow the user to specify the QueueName directly, you can see this here: ossareh@8da4b47 - however before submitting this to you in a PR I wanted to make sure I'm not missing something obvious.

Unhandled Exception on offline start

With serverless offline start (using serverless webpack) I get the following warning.

(node:30115) UnhandledPromiseRejectionWarning: AWS.SimpleQueueService.NonExistentQueue: The specified queue does not exist for this wsdl version.
    at Request.extractError (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/protocol/query.js:47:29)
    at Request.callListeners (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
    at Request.emit (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
    at Request.emit (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/request.js:683:14)
    at Request.transition (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/request.js:22:10)
    at AcceptorStateMachine.runTo (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/state_machine.js:14:12)
    at /home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/state_machine.js:26:10
    at Request.<anonymous> (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/request.js:38:9)
    at Request.<anonymous> (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/request.js:685:12)
    at Request.callListeners (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/sequential_executor.js:116:18)
    at Request.emit (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
    at Request.emit (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/request.js:683:14)
    at Request.transition (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/request.js:22:10)
    at AcceptorStateMachine.runTo (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/state_machine.js:14:12)
    at /home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/state_machine.js:26:10
    at Request.<anonymous> (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/request.js:38:9)
    at Request.<anonymous> (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/request.js:685:12)
    at Request.callListeners (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/sequential_executor.js:116:18)
    at callNextListener (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/sequential_executor.js:96:12)
    at IncomingMessage.onEnd (/home/redrazor/www/scheduling-api/node_modules/serverless-offline-sqs/node_modules/aws-sdk/lib/event_listeners.js:294:13)
    at emitNone (events.js:111:20)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickDomainCallback (internal/process/next_tick.js:218:9)
(node:30115) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)

This is my config on serverless.yml

functions:
  dispatcher:
    handler: application/notification/actions/processEmail.dispatch
    events:
      - sqs: arn:aws:sqs:region:eu-west-1:EmailNotifications

LATEST as startingPosition doesn't work

Getting the below error when using LATEST as startingPosition

This line is setting iterator without a check on whether data.NextShardIterator is returned or not.

iterator = data.NextShardIterator;

I've only seen this when there are multiple shards. One of the shards returns records as well as a NextShardIterator. The other shards returns an empty array and no NextShardIterator

e.g. for these two shards, the one with shardId shardId-00000001550719748929-e0a2afc5 fails

[
  {
    ShardId: 'shardId-00000001550719748929-e0a2afc5',
    SequenceNumberRange: {
      StartingSequenceNumber: '000000000000000075450',
      EndingSequenceNumber: '000000000000000121470'
    }
  },
  {
    ShardId: 'shardId-00000001550766723072-c08a0b5d',
    SequenceNumberRange: {
      StartingSequenceNumber: '000000000000000121472'
    },
    ParentShardId: 'shardId-00000001550719748929-e0a2afc5'
  }
]

Full Error:

MissingRequiredParameter: Missing required key 'ShardIterator' in params
    at ParamValidator.fail (/Users/user/project/node_modules/aws-sdk/lib/param_validator.js:50:37)
    at ParamValidator.validateStructure (/Users/user/project/node_modules/aws-sdk/lib/param_validator.js:61:14)
    at ParamValidator.validateMember (/Users/user/project/node_modules/aws-sdk/lib/param_validator.js:88:21)
    at ParamValidator.validate (/Users/user/project/node_modules/aws-sdk/lib/param_validator.js:34:10)
    at Request.VALIDATE_PARAMETERS (/Users/user/project/node_modules/aws-sdk/lib/event_listeners.js:126:42)
    at Request.callListeners (/Users/user/project/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
    at callNextListener (/Users/user/project/node_modules/aws-sdk/lib/sequential_executor.js:96:12)
    at /Users/user/project/node_modules/aws-sdk/lib/event_listeners.js:86:9
    at finish (/Users/user/project/node_modules/aws-sdk/lib/config.js:350:7)
    at /Users/user/project/node_modules/aws-sdk/lib/config.js:368:9
    at Credentials.get (/Users/user/project/node_modules/aws-sdk/lib/credentials.js:127:7)
    at getAsyncCredentials (/Users/user/project/node_modules/aws-sdk/lib/config.js:362:24)
    at Config.getCredentials (/Users/user/project/node_modules/aws-sdk/lib/config.js:382:9)
    at Request.VALIDATE_CREDENTIALS (/Users/user/project/node_modules/aws-sdk/lib/event_listeners.js:81:26)
    at Request.callListeners (/Users/user/project/node_modules/aws-sdk/lib/sequential_executor.js:102:18)
    at Request.emit (/Users/user/project/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
    at Request.emit (/Users/user/project/node_modules/aws-sdk/lib/request.js:683:14)
    at Request.transition (/Users/user/project/node_modules/aws-sdk/lib/request.js:22:10)
    at AcceptorStateMachine.runTo (/Users/user/project/node_modules/aws-sdk/lib/state_machine.js:14:12)
    at Request.runTo (/Users/user/project/node_modules/aws-sdk/lib/request.js:403:15)
    at Request.send (/Users/user/project/node_modules/aws-sdk/lib/request.js:367:10)
    at features.constructor.makeRequest (/Users/user/project/node_modules/aws-sdk/lib/service.js:205:27)
    at features.constructor.svc.(anonymous function) [as getRecords] (/Users/user/project/node_modules/aws-sdk/lib/service.js:672:23)
    at Timeout.read [as _onTimeout] (/Users/user/project/node_modules/dynamodb-streams-readable/src/index.js:101:12)
    at ontimeout (timers.js:502:15)
    at tryOnTimeout (timers.js:323:5)
    at Timer.listOnTimeout (timers.js:290:5)

SLS Offline DynamoDB Streams: Several issues referencing DynamoDB table streams

I am using SLS Offline DynamoDB Streams (SODS) to develop and test a Serverless + NodeJS application that uses DynamoDB streams to trigger additional Lambda functions. I have struggled with specifying the ARN of the DynamoDB stream correctly and during that course found several issues around this.

Issue 1: At the very bottom of the SODS NPM page an example describes a variant using a tableName key. This does work and from all I can tell is also not supported by the getTableName function.

Issue 2: Line 186 of index.js is missing an additional null check for arn:
if (tableEvent.arn && tableEvent.arn['Fn::GetAtt']) {

Issue 3: I did not test this but from all I can tell, there are two more ways to specify a DynamoDB table stream in Serverless that are not supported by SODS:

      - stream:
          type: dynamodb
          arn:
            Fn::ImportValue: MyExportedDynamoDbStreamArnId
      - stream:
          type: dynamodb
          arn:
            Ref: MyDynamoDbTableStreamArn

It could be that those two ways are not feasible for local deployments (again, I didn't test them) but I figured I'll point it out anyway.

Time permitting I'll put together a pull request for no. 2. Not sure what you would want to do about no. 1 and 3.

I see only streams within the 1st read interval

Hello! It seems that function is triggered only during one read iteration. I'm trying to launch some test function, but I see only streams which appears within read interval. Is it possible to see streams not only the 1st read interval?

Question: SQS offline package

Sorry, it could be a very basic question, but README.md of sqs-offline is very short and doesn't explain much.

I want to use the package for local development and I thought that plugin emulates the queue behavior. It's already mentioned in this issue https://github.com/godu/serverless/issues/9 that you have to have some "real" queue to be running to make it work.

The proposed solution is to run ElasicMQ locally or inside a Docker container.

An example is very helpful, but I can see it uses aws-sdk to create-queue.. my question is where actually those queues are created? In AWS or somehow locally?

Would be happy to clarify those questions and update README, so it's more clear for a people like me :)

/cc @Maxwell2022

Configuration fails to load for custom config file

When the custom section of the serverless.yml file extracted to an external file like so

custom: ${file(./env.${self:provider.stage}.yml)}

the config file fails to load the configuration for the serverless-offline-sqs plugin.

SQS Offline - MalformedQueryString

After upgrading from v3.0.1 to v3.1.1 I get an error MalformedQueryString. It looks like the RedrivePolicy might be the problem, although this config was previously working and also matches the serverless documentation.

    EmailQueue:
      Type: AWS::SQS::Queue
      Properties:
        QueueName: queue-name-${self:provider.stage}
        MessageRetentionPeriod: 1209600
        RedrivePolicy:
          deadLetterTargetArn:
            'Fn::GetAtt':
              - EmailDeadLetterQueue
              - Arn
          maxReceiveCount: 5

Logs:

**Serverless: [AWS sqs 400 0.546s 0 retries] createQueue({
  QueueName: 'queue-name-local',
  Attributes: {
    MessageRetentionPeriod: '1209600',
    RedrivePolicy: '[object Object]'
  }
})

  Malformed Query String ---------------------------------

  MalformedQueryString: MalformedQueryString; see the SQS docs.
      at Request.extractError (/app/node_modules/aws-sdk/lib/protocol/query.js:50:29)
      at Request.callListeners (/app/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
      at Request.emit (/app/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
      at Request.emit (/app/node_modules/aws-sdk/lib/request.js:683:14)
      at Request.transition (/app/node_modules/aws-sdk/lib/request.js:22:10)
      at AcceptorStateMachine.runTo (/app/node_modules/aws-sdk/lib/state_machine.js:14:12)
      at /app/node_modules/aws-sdk/lib/state_machine.js:26:10
      at Request.<anonymous> (/app/node_modules/aws-sdk/lib/request.js:38:9)
      at Request.<anonymous> (/app/node_modules/aws-sdk/lib/request.js:685:12)
      at Request.callListeners (/app/node_modules/aws-sdk/lib/sequential_executor.js:116:18)
      at Request.emit (/app/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
      at Request.emit (/app/node_modules/aws-sdk/lib/request.js:683:14)
      at Request.transition (/app/node_modules/aws-sdk/lib/request.js:22:10)
      at AcceptorStateMachine.runTo (/app/node_modules/aws-sdk/lib/state_machine.js:14:12)
      at /app/node_modules/aws-sdk/lib/state_machine.js:26:10
      at Request.<anonymous> (/app/node_modules/aws-sdk/lib/request.js:38:9)
      at Request.<anonymous> (/app/node_modules/aws-sdk/lib/request.js:685:12)
      at Request.callListeners (/app/node_modules/aws-sdk/lib/sequential_executor.js:116:18)
      at callNextListener (/app/node_modules/aws-sdk/lib/sequential_executor.js:96:12)
      at IncomingMessage.onEnd (/app/node_modules/aws-sdk/lib/event_listeners.js:307:13)
      at IncomingMessage.emit (events.js:215:7)
      at IncomingMessage.EventEmitter.emit (domain.js:475:20)
      at endReadableNT (_stream_readable.js:1184:12)
      at processTicksAndRejections (internal/process/task_queues.js:80:21)

Always getting the same event

{"Records":[{"eventID":"9544a16b-6c66-4902-a5bb-6c243c93a2f3","eventName":"INSERT","eventVersion":"1.1","eventSource":"aws:dynamodb","awsRegion":"ddblocal","dynamodb":{"ApproximateCreationDateTime":"2019-09-21T15:12:00.000Z","Keys":{"id":{"S":"456"}},"NewImage":{"id":{"S":"456"}},"SequenceNumber":"000000000000000000004","SizeBytes":10,"StreamViewType":"NEW_IMAGE"}}]

But when running in the cloud works fine

SQS does not reload on changes

This plugin is working great on first start, however when the function which is subscribing to the change is changed, and serverless-offline triggers a restart, the SQS subscription no longer seems to work.

Here's my config for reference:

plugins:
  - serverless-webpack
  - serverless-log-forwarding
  - serverless-offline-sqs
  - serverless-offline

custom:
  serverless-offline-sqs:
    endpoint: http://0.0.0.0:9324
    region: ${self:provider.region}
    accessKeyId: local
    secretAccessKey: local

  serverless-offline:
    # httpsProtocol: certs
    dontPrintOutput: true
    port: ${env:PORT, '3000'}
    noTimeout: true

functions:
  releaseLogConsumer:
    handler: src/handlers/release-log-consumer.handler
    events:
      - sqs:
          arn:
            Fn::GetAtt:
              - ReleaseLogQueue
              - Arn
          batchSize: 10

resources:
  Resources:
    # Release Log resources
    ReleaseLogQueue:
      Type: "AWS::SQS::Queue"
      Properties:
        QueueName: "${self:custom.releaseLogQueueName}"
        RedrivePolicy:
          deadLetterTargetArn:
            Fn::GetAtt:
              - ReleaseLogDeadLetterQueue
              - Arn
          maxReceiveCount: 5
        MessageRetentionPeriod: 345600 # 4 days
        VisibilityTimeout: 25
        KmsMasterKeyId: alias/aws/sqs

Does not work with useSeparateProcesses

Hi there,

I use serverless-offline-sqs within a serverless-offline project which is started with useSeparateProcesses. This is currently the only way to get typeorms connection pooling working properly while developing via serverless-offline (at least as far as I know :))

Without useSeparateProcesses the integration via sqs, serverkess-offline and serverless-offline-sqs works great, but breaks with useSeparateProcesses. I get the following exception when sending a message:

Serverless: my-queue (Ξ»: messageProcessor)
(node:90487) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'createExternalHandler' of undefined
    at createHandler (/node_modules/serverless-offline/src/functionHelper.js:90:19)
    at ServerlessOfflineSQS.eventHandler (/node_modules/serverless-offline-sqs/src/index.js:100:21)

I tried to use a configuration property like skipCacheInvalidation

serverless-offline-sqs:
   ...
   useSeparateProcesses: true

But this does not help.

I would be grateful for any advice :)

Thanks a lot!

SQS Offline configuration error

Hi, I'm using the latest version of the offline sqs plugin and it is throwing an error when attempting to sqs offline start

(node:16897) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'arn' of null
    at ServerlessOfflineSQS.getQueueName (/Users/xxxx/code/authoriser/node_modules/serverless-offline-sqs/src/index.js:68:27)
    at ServerlessOfflineSQS.createQueueReadable (/Users/xxxx/code/authoriser/node_modules/serverless-offline-sqs/src/index.js:160:28)

This is part of my serverless file:

custom:
  queueName: 'AppBetaQueue-${self:provider.stage}'

functions:
  queue-processor:
    handler: packages/queue-processor/index.handler
    events:
      - sqs:
        queueName: ${self:custom.queueName}
        arn:
          Fn::GetAtt:
            - AppBetaQueue
            - Arn

resources:
  Resources:
      AppBetaQueue:
      Type: AWS::SQS::Queue
      Properties:
        QueueName: ${self:custom.queueName}

It seems that despite the documentation showing the standard examples of setting up the SQS event handler, only this one seems to work with this plugin:

- sqs: arn:aws:sqs:region:XXXXXX:AppBetaQueue-dev

I've tried so many variations as per the standard serverless documentation but only the above works. Hopefully it's not just me having this problem!

Thanks!

[serverless-offline-sqs] Promise await in the lambda causes env variables to reset

Hello,

I have encounter an issue that if I have a lambda function, which is only invoked via sqs messages env variables are reset after async action.
For example if have lambda defined like this:

const main = async (event: SQSEvent, context: any) => {
  console.log(process.env.LAMBDA_ENV_VARIABLE));

  await Promise.Resolve();

  console.log(process.env.LAMBDA_ENV_VARIABLE));
};

the second console will output undefined.

It is caused by resettingprocess.env without awaiting promise that x variable produces.
https://github.com/CoorpAcademy/serverless-plugins/blob/master/packages/serverless-offline-sqs/src/index.js#L149

https://github.com/CoorpAcademy/serverless-plugins/blob/master/packages/serverless-offline-sqs/src/index.js#L154

I would suggest to fix it like this

    const x = handler(event, lambdaContext, lambdaContext.done);
    if (x && typeof x.then === 'function' && typeof x.catch === 'function') {
      x.then(lambdaContext.succeed)
        .catch(lambdaContext.fail)
        .then(() => {
          process.env = env;
        });
    } else if (x instanceof Error) {
      lambdaContext.fail(x);
      process.env = env;
    }

I could create pr if they are accepted?

NOTE: it seems that this issue is not reproducible if lambda was invoked firstly via http event ( where serveless offline sets env ) and secondly via sqs.

[serverless-offline-sqs] Doesn't trigger lambda on new events

Bear in mind the following lambda definition:

sqs_triggered_lambda:
  handler: function.handle
  events:
    - sqs:
        arn:
          Fn::GetAtt:
            - QueueName
            - Arn

When a new message arrives the queue, it won't execute the lambda function locally (within serverless-offline).

endpoint is resolving to 127.0.0.1

I have a docker for my lambda and for the sqs, with this compose file:

version: "3.7"
services: 
  sqs:
    image: softwaremill/elasticmq:0.14.6
    volumes: 
      - ./env/mq.conf:/opt/elasticmq.conf
    ports:
      - "9324:9324"
  lambda:
    image: softinstigate/serverless
    volumes:
      - <path to source>:/lambda
      - ~/.aws/:/root/.aws/
    working_dir: /lambda
    tty: true
    entrypoint: bash
    command: -c "npm run debug"

my serverless.yml has the following config:

serverless-offline-sqs:
    endpoint: http://sqs:9324
    region: us-east-1
    accessKeyId: root
    secretAccessKey: root
    skipCacheInvalidation: false

But my lambda tries to connect to 127.0.0.1:

lambda_1  | (node:16) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 127.0.0.1:9324

If i try some random IP thats not mapped on my host or containers the IP is resolve to that random IP.

I'm running docker on Windows:

Docker version 18.09.1, build 4c52b90
docker-compose version 1.23.2, build 1110ad01

SQS Offline event handler error

Hi,

When running an SQS event handler, I was getting the following error:

Serverless: TypeError: Cannot convert undefined or null to object
    at Function.assign (<anonymous>)
    at getConfig (/Users/grantfellows/code/authoriser/node_modules/serverless-offline-sqs/src/index.js:30:17)
    at ServerlessOfflineSQS.eventHandler (/Users/xxxx/code/authoriser/node_modules/serverless-offline-sqs/src/index.js:96:30)
    at cb (/Users/xxxx/code/authoriser/node_modules/serverless-offline-sqs/src/index.js:194:41)
    at Promise (/Users/xxxx/code/authoriser/node_modules/serverless-offline-sqs/src/index.js:21:5)
    at new Promise (<anonymous>)
    at fromCallback (/Users/xxxx/code/authoriser/node_modules/serverless-offline-sqs/src/index.js:20:3)
    at next (/Users/xxxx/code/authoriser/node_modules/serverless-offline-sqs/src/index.js:194:17)
    at process._tickCallback (internal/process/next_tick.js:68:7)

I traced it down to this line:

    const {location = '.'} = getConfig(this.service, this.options, 'serverless-offline');

This causes errors if you don't have any custom serverless-offline variables defined in your yaml.

I had to fix this by adding in the following to my yaml:

custom:
  serverless-offline:
    test: test

I think the configuration lookup needs to be more graceful to handle this scenario.

serverless-offline-ssm-provider - sls deploy no such file .env

sls deploy seems to required the file exists even though presumably this is offline plugin is meant to be used offline only, i dont want to commit my .env file as its got sensitive information on, when using sls deploy i would hope it would use ssm rather than the offline fallback

any thoughts on this ?

thanks, Ed

Issue Overwriting Environment Variables

What is the purpose of overwriting process.env on line 138? I've been wrestling with a pretty nasty bug for the last few days and traced it down to this single line of code. When I comment it, the function environment is preserved as defined in serverless.yml, but when I leave it uncommented, I lose all environment variables defined under provider.environment.

Some feedback would be appreciated. This is a project for a very large client and I'd love to use the plugin. It is working well otherwise with ElasticMQ running locally.

https://github.com/godu/serverless/blob/589ee1901d68f39f71a6e61682aa28018554f0be/packages/serverless-offline-sqs/src/index.js#L138

ECONNREFUSED 0.0.0.0:9324

Hi,

I get this error when running serverless offline with this plugin turned on:

(node:54160) UnhandledPromiseRejectionWarning: Error: connect ECONNREFUSED 0.0.0.0:9324
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1113:14)
(node:54160) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)

Any idea why this is happening? Thanks!

Feature Idea: Enhance autoCreate to create dead letter queues and redrive policies.

Thank you so much for your hard work on this project! πŸŽ‰ It has made it really easy to work with SQS offline. I recently upgraded to v2. The autoCreate functionality works really well. I was able to replace a shell script that used the AWS cli to create queues. The only gap I have is dead letter queue (DLQ) support.

Current state:
autoCreate scans the lambda event sources for SQS events. Queues are built for each event source.

Proposed state:
Optionally(?) scan the resources section to see if CloudFormation templates exist for SQS. If so, generate DLQs first then add the main queues with redrive policies.

This may likely be outside the indented scope of this module. No worries if you aren’t interested in supporting it! πŸ€“

Java error upon `npm start` using the plugin

I cannot use the plugin with my current setup, it produce an error:

2018-12-20 15:37:10.016:WARN:oejs.AbstractHttpConnection:/
java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.encodeShardIterator(ShardIterator.java:64)
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.toString(ShardIterator.java:53)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:457)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:267)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBRequestHandler.getShardIterator(LocalDynamoDBRequestHandler.java:289)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:19)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:11)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.packageDynamoDBResponse(LocalDynamoDBServerHandler.java:364)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.handle(LocalDynamoDBServerHandler.java:451)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:370)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: 
java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.encodeShardIterator(ShardIterator.java:64)
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.toString(ShardIterator.java:53)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:457)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:267)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBRequestHandler.getShardIterator(LocalDynamoDBRequestHandler.java:289)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:19)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:11)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.packageDynamoDBResponse(LocalDynamoDBServerHandler.java:364)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.handle(LocalDynamoDBServerHandler.java:451)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:370)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.base/java.lang.Thread.run(Thread.java:844)
2018-12-20 15:37:10.034:WARN:oejs.AbstractHttpConnection:/
java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.encodeShardIterator(ShardIterator.java:64)
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.toString(ShardIterator.java:53)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:457)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:267)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBRequestHandler.getShardIterator(LocalDynamoDBRequestHandler.java:289)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:19)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:11)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.packageDynamoDBResponse(LocalDynamoDBServerHandler.java:364)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.handle(LocalDynamoDBServerHandler.java:451)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:370)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: 
java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.encodeShardIterator(ShardIterator.java:64)
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.toString(ShardIterator.java:53)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:457)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:267)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBRequestHandler.getShardIterator(LocalDynamoDBRequestHandler.java:289)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:19)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:11)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.packageDynamoDBResponse(LocalDynamoDBServerHandler.java:364)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.handle(LocalDynamoDBServerHandler.java:451)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:370)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.base/java.lang.Thread.run(Thread.java:844)
2018-12-20 15:37:10.245:WARN:oejs.AbstractHttpConnection:/
java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.encodeShardIterator(ShardIterator.java:64)
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.toString(ShardIterator.java:53)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:457)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:267)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBRequestHandler.getShardIterator(LocalDynamoDBRequestHandler.java:289)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:19)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:11)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.packageDynamoDBResponse(LocalDynamoDBServerHandler.java:364)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.handle(LocalDynamoDBServerHandler.java:451)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:370)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: 
java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.encodeShardIterator(ShardIterator.java:64)
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.toString(ShardIterator.java:53)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:457)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:267)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBRequestHandler.getShardIterator(LocalDynamoDBRequestHandler.java:289)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:19)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:11)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.packageDynamoDBResponse(LocalDynamoDBServerHandler.java:364)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.handle(LocalDynamoDBServerHandler.java:451)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:370)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.base/java.lang.Thread.run(Thread.java:844)
2018-12-20 15:37:10.501:WARN:oejs.AbstractHttpConnection:/
java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.encodeShardIterator(ShardIterator.java:64)
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.toString(ShardIterator.java:53)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:457)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:267)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBRequestHandler.getShardIterator(LocalDynamoDBRequestHandler.java:289)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:19)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:11)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.packageDynamoDBResponse(LocalDynamoDBServerHandler.java:364)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.handle(LocalDynamoDBServerHandler.java:451)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:370)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: 
java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.encodeShardIterator(ShardIterator.java:64)
	at com.amazonaws.services.dynamodbv2.local.shared.access.ShardIterator.toString(ShardIterator.java:53)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:457)
	at com.amazonaws.services.dynamodbv2.local.shared.access.LocalDynamoDBStreamsClient.getShardIterator(LocalDynamoDBStreamsClient.java:267)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBRequestHandler.getShardIterator(LocalDynamoDBRequestHandler.java:289)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:19)
	at com.amazonaws.services.dynamodbv2.local.dispatchers.GetShardIteratorDispatcher.enact(GetShardIteratorDispatcher.java:11)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.packageDynamoDBResponse(LocalDynamoDBServerHandler.java:364)
	at com.amazonaws.services.dynamodbv2.local.server.LocalDynamoDBServerHandler.handle(LocalDynamoDBServerHandler.java:451)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1088)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1024)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:370)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
	at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.base/java.lang.Thread.run(Thread.java:844)

I tried to switch and use the following jdk:

  • 12.ea.20-open
  • 11.0.1-zulu
  • 11.0.1-open
  • 10.0.2-open
  • 9.0.7-zulu
  • 9.0.4-open
  • 8.0.192-zulu

Do you know how to resolve this? I'm currently using Ubuntu 18.04

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.