To answer my own question I needed to use the low-level API for the 
HttpEntity. I was able to accomplish what I needed to do by using the 
toStrict() converter and then continuing the processing work in a lamba. 
This is more or less what my complete solution looks like now:

public class MyRequestHandler extends UntypedActor {
    ActorRef originalSender;
    public void onReceive(Object msg) throws Throwable {
        if (msg instanceof RequestContext) {
            RequestContext context = (RequestContext)msg;
originalSender = getSender();
            if (context.getRequest().method() == HttpMethods.POST) {
ActorMaterializer materializer = ActorMaterializer.create(getContext());
                CompletionStage<HttpEntity.Strict> entityFuture = 
context.getRequest().entity().toStrict(1000, materializer);
                entityFuture.thenApplyAsync(entity -> {
// Do more work here...
                                        // Access entity string as 
entity.getData().utf8String()
HttpResponse httpResponse = HttpResponse.create()
.withStatus(StatusCodes.OK);
originalSender.tell(httpResponse, getSelf());
getContext().stop(getSelf());
}
            }
        }
    }
}


On Wednesday, September 28, 2016 at 11:55:38 AM UTC-7, 
[email protected] wrote:
>
> Hi,
>
> I'm new to Akka Http and have been working on implementing a RESTful 
> service using the actor-per-request model. So far I've gotten everything 
> working but I am stuck at unmarshalling the entity in my request handler 
> actor. While there are lots of documentation for using unmarshal directives 
> in the scaladsl I don't see anything specific to Java which will help me.
>
> This is currently what my request handler code looks like where I need the 
> unmarshaller...
>
> public class MyRequestHandler extends UntypedActor {
>     public void onReceive(Object msg) throws Throwable {
>         if (msg instanceof RequestContext) {
>             RequestContext context = (RequestContext)msg;
>             if (context.getRequest().method() == HttpMethods.POST) {
>                 // TODO Unmarshal request entity
>             }
>         }
>     }
> }
>
> Thanks in advance,
>
> Jean-Philippe Steinmetz
>

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to