Weblogic - 12.2.1 - не инициализируется ServerContainer!
Привет всем, я столкнулся с проблемой при запуске моего приложения в weblogic 12.2.1, согласно спецификации веб-сокета, я инициализирую конечную точку веб-сокета во время запуска приложения в ServletContextListener. Я использую структуру атмосферы для запуска конечной точки веб-сокета. При инициализации конечной точки сокета в классе JSR356AsyncSupport-атмосфера фреймворк пытается получить атрибут из объекта servletContext. Не находит и не получается.... в weblogic 12.2.1/12.1.3. Однако то же самое приложение при развертывании на других веб-серверах/серверах приложений, таких как tomcat, websphere Liberty, jboss, работает нормально. (Я использую jdk1.8)
Я понятия не имею, как это решить - очень признателен, если кто-то может мне помочь. Спасибо.
public JSR356AsyncSupport(AtmosphereConfig config, ServletContext ctx) {
super(config);
ServerContainer container = (ServerContainer) ctx.getAttribute(ServerContainer.class.getName()); //javax.websocket.server.ServerContainer
if (container == null) {
if (ctx.getServerInfo().contains("WebLogic")) {
logger.error("{} must use JDK 1.8+ with WebSocket", ctx.getServerInfo());
}
throw new IllegalStateException("Unable to configure jsr356 at that stage. ServerContainer is null");
}
}
Трассировка стека исключений.
2016-08-16 16:10:31,459 [ WGHALBW7] [ STANDARD] [ ] [ ] (pr.DefaultAsyncSupportResolver) ERROR - Real error: Unable to configure jsr356 at that stage. ServerContainer is null
java.lang.IllegalStateException: Unable to configure jsr356 at that stage. ServerContainer is null
at org.atmosphere.container.JSR356AsyncSupport.<init>(JSR356AsyncSupport.java:51)
at org.atmosphere.container.JSR356AsyncSupport.<init>(JSR356AsyncSupport.java:40)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.atmosphere.cpr.DefaultAsyncSupportResolver.newCometSupport(DefaultAsyncSupportResolver.java:235)
at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolveWebSocket(DefaultAsyncSupportResolver.java:307)
at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolve(DefaultAsyncSupportResolver.java:293)
at org.atmosphere.cpr.AtmosphereFramework.autoDetectContainer(AtmosphereFramework.java:2004)
at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:911)
at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:835)