I have a scala application which I have deployed on AWS lambda.
Previously my `Main` class signature looked like:

`object Main extends App {...}`

With this I was able to provide a *handler* in the AWS Lambda definition which Lambda was happy with to run. An issue I was having was that the return of the lambda was always `null`.

To overcome this `null` issue when integrating with the API Gateway I've started using Lambda's java API.
I've made `Main` a `class` which extends `RequestHandler`

```scala
package example

import com.typesafe.scalalogging.LazyLogging
import com.amazonaws.services.lambda.runtime.{Context, RequestHandler}

class Main extends RequestHandler[String, String] with ArgParser with LazyLogging  {

  override def handleRequest(input: String, context: Context): String = {
    val (wins, losses) = /* ... */
    s"""{"wins":$wins,"losses":$losses}"""
  }

```

If I provide the *handler* `example.Main::handleRequest` I get the following error:

(My actual handler contains the full package name which worked before I introduced the `RequestHandler`, so I'm confident it's not a mistyping on the *handler*.)

```
{
  "errorMessage": "No public method named handleRequest with appropriate method signature found on class class example.Main"
}

```

I'm using the following dependency:

```
"com.amazonaws"              % "aws-lambda-java-core"              % "1.2.0"

```

The definition of my lambda is defined [in Terraform code here](https://gist.github.com/tjheslin1/ab352bc2dffe1ef9b3cf098412d9405f) and my `jar` is stored in `s3`.