java - Implement Atmosphere in annotation-driven Spring MVC app -
i'm stuck error: java.lang.illegalstateexception: meteorservlet not defined in web.xml spring project annotations configured, have no web.xml.
this configuration class:
@configuration @enablewebmvc @componentscan(basepackages = "com.musicbox") public class appconfig extends webmvcconfigureradapter { ... @override public void addargumentresolvers(list<handlermethodargumentresolver> argumentresolvers) { argumentresolvers.add(new atmosphereargumentresolver()); } } the atmosphere resolver. same in examples find, moved functions utils class.:
public class atmosphereargumentresolver implements handlermethodargumentresolver { @override public object resolveargument(methodparameter parameter, modelandviewcontainer mavcontainer, nativewebrequest webrequest, webdatabinderfactory binderfactory) throws exception { return atmosphereutils.getatmosphereresource(webrequest.getnativerequest(httpservletrequest.class)); } @override public boolean supportsparameter(methodparameter parameter) { return atmosphereresource.class.isassignablefrom(parameter.getparametertype()); } } and according utils class:
public final class atmosphereutils { public static atmosphereresource getatmosphereresource(httpservletrequest request) { return getmeteor(request).getatmosphereresource(); } public static meteor getmeteor(httpservletrequest request) { return meteor.build(request); } ... } as understant this, have create configuration meteor servlet. couldn't find examples how that... @ least not annotation-driven.
edit: problem now, thought meteor.build(request) take kind of default configuration. seems, needs configured in web.xml (which don't have). if case, way configure meteor javaconfig (and needs configured)?
edit2: alright, made step further adding meteroservlet @ startup, causes atmosphere framework initialized on server startup (shown in log).
public class appinitializer implements webapplicationinitializer { @override public void onstartup(servletcontext servletcontext) throws servletexception { webapplicationcontext context = getcontext(); servletcontext.addlistener(new contextloaderlistener(context)); servletregistration.dynamic dispatcher = servletcontext.addservlet("dispatcherservlet", new dispatcherservlet(context)); dispatcher.setloadonstartup(1); dispatcher.addmapping("/"); servletregistration.dynamic meteor = servletcontext.addservlet("meteorservlet", new meteorservlet()); meteor.setloadonstartup(1); meteor.addmapping("/meteor"); } however problem still persists.
Comments
Post a Comment