Push with Vaadin 7.2.6 and weblogic 12c with websockets

Hi,

I’m trying to deploy a very simple Vaadin push application.
It works fine with Tomcat and web sockets.

When I deploy the same application with weblogic 12c (12.1.2) I get a message in the debug console saying that websockets is not supported :

Push connection using primary method (websocket) failed. Trying with long-polling I also get this message in the server console:

SEVERE: java.lang.NullPointerException at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.initSessionInfo(ServletRequestImpl.java:2946) at weblogic.servlet.internal.ServletRequestImpl$SessionHelper._getSessionInternal(ServletRequestImpl.java:2675) at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSessionInternal(ServletRequestImpl.java:2663) at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSession(ServletRequestImpl.java:2653) at weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.java:1393) at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:255) at org.atmosphere.cpr.AtmosphereRequest.getSession(AtmosphereRequest.java:758) at org.atmosphere.cpr.SessionTimeoutSupport.restoreTimeout(SessionTimeoutSupport.java:69) at org.atmosphere.cpr.AtmosphereResourceImpl.cancel(AtmosphereResourceImpl.java:715) at org.atmosphere.cpr.AtmosphereResourceImpl.close(AtmosphereResourceImpl.java:785) at com.vaadin.server.communication.AtmospherePushConnection.disconnect(AtmospherePushConnection.java:293) at com.vaadin.server.communication.AtmospherePushConnection.connect(AtmospherePushConnection.java:232) at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:134) at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:245) at com.vaadin.server.communication.PushHandler.access$200(PushHandler.java:56) at com.vaadin.server.communication.PushHandler$1.onRequest(PushHandler.java:74) at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:174) at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:95) at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:66) at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:1802) at com.vaadin.server.communication.PushRequestHandler.handleRequest(PushRequestHandler.java:144) at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1401) at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:237) at javax.servlet.http.HttpServlet.service(HttpServlet.java:844) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:238) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3363) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3333) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2220) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2146) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2124) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1564) at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295) at weblogic.work.ExecuteThread.run(ExecuteThread.java:254) And after that 9 times out of 10 the application just hangs and I get this kind of messages each time I try to do an action:

java.io.IOException: Invalid message length {"csrfToken":"48ecbe63-871f-42f7-93dd-084948c72855", "rpc":[["3","com.vaadin.shared.ui.ui.UIServerRpc","re size",["963","1280","1280","963"] ],["5","com.vaadin.shared.ui.button.ButtonServerRpc","click",[{"button":"LEFT", "clientY":"11", "clientX":"55", "altK ey":false, "ctrlKey":false, "type":"1", "shiftKey":false, "metaKey":false, "relativeY":"11", "relativeX":"55"}]]], "syncId":1} at com.vaadin.server.communication.AtmospherePushConnection$FragmentedMessage.<init>(AtmospherePushConnection.java:66) at com.vaadin.server.communication.AtmospherePushConnection.receiveMessage(AtmospherePushConnection.java:197) at com.vaadin.server.communication.PushHandler$3.run(PushHandler.java:162) at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:245) at com.vaadin.server.communication.PushHandler.access$200(PushHandler.java:56) at com.vaadin.server.communication.PushHandler$1.onRequest(PushHandler.java:76) at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:174) at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:95) at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:66) at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:1802) at com.vaadin.server.communication.PushRequestHandler.handleRequest(PushRequestHandler.java:144) at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1401) at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:237) at javax.servlet.http.HttpServlet.service(HttpServlet.java:844) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:238) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3363) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3333) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2220) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2146) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2124) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1564) at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295) at weblogic.work.ExecuteThread.run(ExecuteThread.java:254) Caused by: java.lang.NumberFormatException: For input string: "{"csrfToken":"48ecbe63-871f-42f7-93dd-084948c72855", "rpc":[["3","com.vaadin.shared.ui. ui.UIServerRpc","resize",["963","1280","1280","963"] ],["5","com.vaadin.shared.ui.button.ButtonServerRpc","click",[{"button":"LEFT", "clientY":"11", "c lientX":"55", "altKey":false, "ctrlKey":false, "type":"1", "shiftKey":false, "metaKey":false, "relativeY":"11", "relativeX":"55"}]]], "syncId":1}" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:492) at java.lang.Integer.parseInt(Integer.java:527) at com.vaadin.server.communication.AtmospherePushConnection$FragmentedMessage.<init>(AtmospherePushConnection.java:64) ... 30 more Here is my pom.xml:

[code]

<?xml version="1.0" encoding="UTF-8"?>


4.0.0

<groupId>test.push</groupId>
<artifactId>push</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>

<dependencies>
    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-server</artifactId>
        <version>7.2.6</version>
    </dependency>

    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-shared</artifactId>
        <version>7.2.6</version>
    </dependency>

    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-push</artifactId>
        <version>7.2.6</version>
    </dependency>

    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-themes</artifactId>
        <version>7.2.6</version>
    </dependency>

    <dependency>
        <groupId>com.vaadin</groupId>
        <artifactId>vaadin-client-compiled</artifactId>
        <version>7.2.6</version>
    </dependency>
</dependencies>
[/code]Here is my app (it just uses the broadcaster class from the Vaadin doc):

[code]
@Push
public class PushUI extends UI implements Broadcaster.BroadcastListener {

/**
 * {@inheritDoc}
 *
 * @param request
 */
@Override
protected void init(VaadinRequest request) {
    Broadcaster.register(this);

    VerticalLayout view = new VerticalLayout();
    Button button = new Button("Hello Vaadin!");
    button.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent clickEvent) {
            Broadcaster.broadcast("hiiii");
        }
    });
    view.addComponent(button);
    setContent(view);    }

@Override
public void detach() {
    super.detach();

    Broadcaster.unregister(this);
}

@Override
public void receiveBroadcast(String message) {
    access(new Runnable() {
        @Override
        public void run() {
            Notification.show("broadcast message ok");
        }
    });
}

}
[/code]And finally here is my web.xml:

[code]

<?xml version="1.0" encoding="UTF-8"?>

<servlet>
    <servlet-name>application</servlet-name>
    <servlet-class>
        com.vaadin.server.VaadinServlet
    </servlet-class>
    <init-param>
        <param-name>UI</param-name>
        <param-value>test.push.PushUI</param-value>
    </init-param>
    <async-supported>true</async-supported>
</servlet>
<servlet-mapping>
    <servlet-name>application</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>application</servlet-name>
    <url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>
[/code]Do you have an idea? Did someone manage to make Vaadin push work with weblogic 12c ?

Thanks a lot,

Thomas

I have the same problem currently.
Is there any resolution for this or any issue created about it?

I created this ticket: http://dev.vaadin.com/ticket/14432

I have no solution for it right now…

Hi, thanks for the ticket! I suppose the only solution is to add some sort of a config option to Vaadin to use a /ws/ URL if needed…

Hi,
We are facing exactly the same issue.
Application with @push works ok with WLS 12.1.1.0. However it throws the below exception on the server console with WLS 12.1.2.0.0 and WLS 12.1.3.0.0 -



First exception when application is invoked -

Feb 05, 2015 7:07:09 PM com.vaadin.server.DefaultErrorHandler doDefault
SEVERE:
java.lang.NullPointerException
        at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.initSessionInfo(ServletRequestImpl.java:2946)
        at weblogic.servlet.internal.ServletRequestImpl$SessionHelper._getSessionInternal(ServletRequestImpl.java:2675)
        at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSessionInternal(ServletRequestImpl.java:2663)
        at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSession(ServletRequestImpl.java:2653)
        at weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.java:1393)
        at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:255)
        at org.atmosphere.cpr.AtmosphereRequest.getSession(AtmosphereRequest.java:758)
        at org.atmosphere.cpr.SessionTimeoutSupport.restoreTimeout(SessionTimeoutSupport.java:69)
        at org.atmosphere.cpr.AtmosphereResourceImpl.cancel(AtmosphereResourceImpl.java:715)
        at org.atmosphere.cpr.AtmosphereResourceImpl.close(AtmosphereResourceImpl.java:785)
        at com.vaadin.server.communication.AtmospherePushConnection.disconnect(AtmospherePushConnection.java:294)
        at com.vaadin.server.communication.AtmospherePushConnection.connect(AtmospherePushConnection.java:232)
        at com.vaadin.server.communication.PushHandler$2.run(PushHandler.java:135)
        at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:253)
        at com.vaadin.server.communication.PushHandler.access$200(PushHandler.java:56)
        at com.vaadin.server.communication.PushHandler$1.onRequest(PushHandler.java:74)
        at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:174)
        at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:95)
        at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:66)
        at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:1802)
        at com.vaadin.server.communication.PushRequestHandler.handleRequest(PushRequestHandler.java:144)
        at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1406)
        at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:305)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:238)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3363)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3333)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
        at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2220)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2146)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2124)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1564)
        at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:254)



Then after any action is performed on the view (e.g. button click) -

Feb 05, 2015 7:07:18 PM com.vaadin.server.DefaultErrorHandler doDefault
SEVERE:
java.io.IOException: Invalid message length {"csrfToken":"e339afe6-31f4-424b-90e1-197c213601f1", "rpc":[["0","com.vaadin.shared.ui.ui.UIServerRpc","resize",["64
3","1366","1366","643"]],["45","com.vaadin.shared.ui.button.ButtonServerRpc","click",[{"shiftKey":false, "type":"1", "ctrlKey":false, "relativeX":"29", "relativ
eY":"11", "button":"LEFT", "clientY":"384", "clientX":"681", "metaKey":false, "altKey":false}]]], "syncId":1}
        at com.vaadin.server.communication.AtmospherePushConnection$FragmentedMessage.<init>(AtmospherePushConnection.java:66)
        at com.vaadin.server.communication.AtmospherePushConnection.receiveMessage(AtmospherePushConnection.java:197)
        at com.vaadin.server.communication.PushHandler$3.run(PushHandler.java:163)
        at com.vaadin.server.communication.PushHandler.callWithUi(PushHandler.java:253)
        at com.vaadin.server.communication.PushHandler.access$200(PushHandler.java:56)
        at com.vaadin.server.communication.PushHandler$1.onRequest(PushHandler.java:76)
        at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:174)
        at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:95)
        at org.atmosphere.container.Servlet30CometSupport.service(Servlet30CometSupport.java:66)
        at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:1802)
        at com.vaadin.server.communication.PushRequestHandler.handleRequest(PushRequestHandler.java:144)
        at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1406)
        at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:305)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:238)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3363)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3333)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
        at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2220)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2146)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2124)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1564)
        at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:254)
Caused by: java.lang.NumberFormatException: For input string: "{"csrfToken":"e339afe6-31f4-424b-90e1-197c213601f1", "rpc":[["0","com.vaadin.shared.ui.ui.UIServe
rRpc","resize",["643","1366","1366","643"]
],["45","com.vaadin.shared.ui.button.ButtonServerRpc","click",[{"shiftKey":false, "type":"1", "ctrlKey":false, "relati
veX":"29", "relativeY":"11", "button":"LEFT", "clientY":"384", "clientX":"681","metaKey":false, "altKey":false}]]], "syncId":1}"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:492)
        at java.lang.Integer.parseInt(Integer.java:527)
        at com.vaadin.server.communication.AtmospherePushConnection$FragmentedMessage.<init>(AtmospherePushConnection.java:64)
        ... 30 more

Is there any latest news on this one please?

Thanks,
-Nanda

Hi,
I tested the fix for this
#14432
and it seems to be working fine. Any idea when this fix will be available officially?

Thanks,
-Nanda

Hi,

Just an update about this issue. It almost works now with weblogic 12.1.3 and jdk 1.8 but there are still strange things happening.

Every minute or even less I see those kind of logs in the console and the application lags to reestablish the connection.

[code]
Oct 21, 2015 5:37:34 PM com.vaadin.server.communication.PushHandler connectionLost
INFO: No UI was found based on data in the request, but a slower lookup based on the AtmosphereResource succeeded. See http://dev.vaadin.com/ticket/14251 for more details.
<21-Oct-2015 17:37:34 o’clock CEST> <org.glassfish.tyrus.core.TyrusEndpoint> <Unexpected error, closing connection.
java.lang.IllegalStateException: The connection has been closed.
at org.glassfish.tyrus.core.TyrusSession.checkConnectionState(TyrusSession.java:347)
at org.glassfish.tyrus.core.TyrusSession.setState(TyrusSession.java:495)
at org.glassfish.tyrus.core.TyrusEndpointWrapper.onClose(TyrusEndpointWrapper.java:870)
at org.glassfish.tyrus.core.TyrusEndpoint.onClose(TyrusEndpoint.java:151)
at org.glassfish.tyrus.core.TyrusWebSocket.onClose(TyrusWebSocket.java:100)
Truncated. see log file for complete stacktrace

Oct 21, 2015 5:37:34 PM org.glassfish.tyrus.core.TyrusEndpoint onError
WARNING: Unexpected error, closing connection.
java.lang.IllegalStateException: The connection has been closed.
at org.glassfish.tyrus.core.TyrusSession.checkConnectionState(TyrusSession.java:347)
at org.glassfish.tyrus.core.TyrusSession.setState(TyrusSession.java:495)
at org.glassfish.tyrus.core.TyrusEndpointWrapper.onClose(TyrusEndpointWrapper.java:870)
at org.glassfish.tyrus.core.TyrusEndpoint.onClose(TyrusEndpoint.java:151)
at org.glassfish.tyrus.core.TyrusWebSocket.onClose(TyrusWebSocket.java:100)
at org.glassfish.tyrus.core.frame.ClosingFrame.respond(ClosingFrame.java:60)
at org.glassfish.tyrus.core.DataFrame.respond(DataFrame.java:109)
at org.glassfish.tyrus.core.TyrusWebSocketEngine$TyrusReadHandler.handle(TyrusWebSocketEngine.java:220)
at weblogic.websocket.tyrus.TyrusMuxableWebSocket$1.run(TyrusMuxableWebSocket.java:110)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:548)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:263)
[/code]You can reproduce this issue by creating an application from the latest 7.5.7 vaadin archetype and enable websockets and deploy in weblogic 12.1.3.

Any idea?

Thomas