0

I am trying to do a post like this:

  Promise<Document> jsonPromise = WS
                    .url(url)
                    .setAuth("SPORTEV", "SPORTEV@123", WSAuthScheme.BASIC)
                    .post(xml).map(
                            new Function<WSResponse, Document>() {
                                public Document apply(WSResponse response) {
                                    Document xml = response.asXml();

                                    Logger.debug("XML response: " + xml);

                                    return xml;
                                }
                            }
            );

            Promise<Document> recoverPromise = jsonPromise.recoverWith(new Function<Throwable, Promise<Document>>() {
                @Override
                public Promise<Document> apply(Throwable throwable) throws Throwable {
                    Logger.debug("OOOPS!!: " + throwable.getMessage());
                    throwable.printStackTrace();
                    return null;
                }
            });

I keep getting this error:

  OOOPS!!: Received fatal alert: protocol_version to MY_URL_HERE

Full stack:

  java.net.ConnectException: Received fatal alert: protocol_version to MY_URL_HERE
    at com.ning.http.client.providers.netty.NettyConnectListener.operationComplete(NettyConnectListener.java:104)
    at org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:431)
    at org.jboss.netty.channel.DefaultChannelFuture.notifyListeners(DefaultChannelFuture.java:417)
    at org.jboss.netty.channel.DefaultChannelFuture.setFailure(DefaultChannelFuture.java:384)
    at org.jboss.netty.handler.ssl.SslHandler.setHandshakeFailure(SslHandler.java:1569)
    at org.jboss.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1371)
    at org.jboss.netty.handler.ssl.SslHandler.decode(SslHandler.java:917)
    at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:425)
    at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)
    at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)
    at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318)
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)
    at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
    at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
    at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
  Caused by: javax.net.ssl.SSLException: Received fatal alert: protocol_version
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
    at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1646)
    at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1614)
    at sun.security.ssl.SSLEngineImpl.recvAlert(SSLEngineImpl.java:1780)
    at sun.security.ssl.SSLEngineImpl.readRecord(SSLEngineImpl.java:1075)
    at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:901)
    at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:775)
    at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
    at org.jboss.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1285)

I have absolutely no idea what this means? Help please how to do HTTPS post with play?

lulu88
  • 1,694
  • 5
  • 27
  • 41

1 Answers1

0

Two suggestions:

  1. Your url could be invalid. I think it is equal to MY_URL_HERE. Make sure it includes valid url including protocol:

    http://google.com

  2. There are two versions of WS class. One for java from play.libs.ws pakcage and for scala from play.api.libs.ws package. Make sure you imported java one.

Community
  • 1
  • 1
Mon Calamari
  • 4,403
  • 3
  • 26
  • 44