Issue Details (XML | Word | Printable)

Key: GDS-279
Type: New Feature New Feature
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: William Draï
Reporter: Carsten Wolters
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
GraniteDS

Gravity Tomcat servlet does not deploy on Jboss 5.0.0.GA

Created: 29/Dec/08 12:29 PM   Updated: 05/Feb/09 11:29 AM   Resolved: 02/Jan/09 11:52 AM
Component/s: Gravity
Affects Version/s: 1.2.0_RC1
Fix Version/s: 1.2.0

Environment: JBoss 5


 Description  « Hide
I try to port my application from JBoss 4.2.x to 5.0.0.GA. Currently I cannot get the gravity part to deploy, because "jbossweb" does not contain the CometProcessor class anymore.

Please check how to modify gravity so that it can be used/deployed to Jboss 5.0.0.GA.


11:50:26,437 ERROR [AbstractKernelController] Error installing to Real: name=vfsfile:/E:/Projekte/workspace/jboss-5.0.0.GA/server/st/deploy/
maxtrading.ear/ state=PreReal mode=Manual requiredState=Real
org.jboss.deployers.spi.DeploymentException: Error during deploy: vfsfile:/E:/Projekte/workspace/jboss-5.0.0.GA/server/st/deploy/maxtrading.
ear/maxtrading-web-st.war/
        at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49)
        at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:177)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1210)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
        at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545)
        at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:304)
        at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:205)
        at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
        at org.jboss.Main.boot(Main.java:209)
        at org.jboss.Main$1.run(Main.java:547)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NoClassDefFoundError: org/apache/catalina/CometProcessor
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
        at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:62)
        at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:509)
        at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:469)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:467)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:444)
        at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:134)
        at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)
        at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:452)
        at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:254)
        at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:148)
        at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:256)
        at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
        at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:62)
        at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:509)
        at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:469)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:467)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:444)
        at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:134)
        at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)
        at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:452)
        at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:254)
        at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:148)
        at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:256)
        at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:247)
        at org.jboss.classloader.plugins.loader.ClassLoaderToLoaderAdapter.loadClass(ClassLoaderToLoaderAdapter.java:173)
        at org.jboss.classloader.spi.ClassLoaderDomain.loadClassFromParent(ClassLoaderDomain.java:352)
        at org.jboss.classloader.spi.ClassLoaderDomain.loadClassAfter(ClassLoaderDomain.java:323)
        at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:262)
        at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at org.jboss.wsf.container.jboss50.deployer.JAXWSDeployerHookPreJSE.getRelevantServlets(JAXWSDeployerHookPreJSE.java:127)
        at org.jboss.wsf.container.jboss50.deployer.JAXWSDeployerHookPreJSE.isWebServiceDeployment(JAXWSDeployerHookPreJSE.java:103)
        at org.jboss.wsf.container.jboss50.deployer.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:71)
        at org.jboss.wsf.container.jboss50.deployer.AbstractWebServiceDeployer.internalDeploy(AbstractWebServiceDeployer.java:60)
        at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
        at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
        ... 19 more
Caused by: java.lang.ClassNotFoundException: org.apache.catalina.CometProcessor
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:247)
        at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:276)
        at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1099)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:735)
        at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:378)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)

William Draï added a comment - 31/Dec/08 11:50 AM
A new Gravity servlet is needed to use the modified Comet API of JBossWeb.
It should be almost a copy/paste of the Tomcat Gravity servlet.

William Draï added a comment - 02/Jan/09 11:52 AM
Need to change configuration in web.xml :
        <servlet-name>GravityServlet</servlet-name>
        <servlet-class>org.granite.gravity.jbossweb.GravityJBossWebServlet</servlet-class>

I did all the things mentioned above, deployment was then done perfectly. But when tried implementing chat suing gravity - Jboss 5.0 showed up the following exception :

12:44:41,937 ERROR [[GravityServlet]] Servlet.service() for servlet GravityServlet threw exception
javax.servlet.ServletException: Not in a valid Comet configuration (use an APR or NIO connector)
at org.granite.gravity.jbossweb.AbstractHttpEventServlet.service(AbstractHttpEventServlet.java:217)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

I have a test servlet also called as 'GravityServlet' which creates dynamic destinations for chat at initialization.

I have not added the "tcnative-1.dll" file required for APR or NIO Connector. But when i add this "tcnative-1.dll" at "jboss-5.0.0.GA\bin" it gives deployment exception like :

12:57:17,000 ERROR [Http11AprProtocol] Error starting endpoint
org.apache.tomcat.jni.Error: An address incompatible with the requested protocol was used.
at org.apache.tomcat.jni.Socket.create(Native Method)
at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:600)
at org.apache.tomcat.util.net.AprEndpoint.start(AprEndpoint.java:694)
at org.apache.coyote.http11.Http11AprProtocol.start(Http11AprProtocol.java:137)
at org.apache.catalina.connector.Connector.start(Connector.java:1102)
at org.jboss.web.tomcat.service.deployers.TomcatService.startConnectors(TomcatService.java:629)
at org.jboss.web.tomcat.service.deployers.TomcatService.handleNotification(TomcatService.java:670)
at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jboss.mx.notification.NotificationListenerProxy.invoke(NotificationListenerProxy.java:153)
at $Proxy172.handleNotification(Unknown Source)
at javax.management.NotificationBroadcasterSupport.handleNotification(Unknown Source)
at javax.management.NotificationBroadcasterSupport$SendNotifJob.run(Unknown Source)
at javax.management.NotificationBroadcasterSupport$1.execute(Unknown Source)
at javax.management.NotificationBroadcasterSupport.sendNotification(Unknown Source)
at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:425)
at org.jboss.Main.boot(Main.java:209)
at org.jboss.Main$1.run(Main.java:547)
at java.lang.Thread.run(Unknown Source)
12:57:17,000 WARN [TomcatService] Failed to startConnectors
LifecycleException: service.getName(): "jboss.web"; Protocol handler start failed: org.apache.tomcat.jni.Error: An address incompatible with the requested protocol was used.
at org.apache.catalina.connector.Connector.start(Connector.java:1109)
at org.jboss.web.tomcat.service.deployers.TomcatService.startConnectors(TomcatService.java:629)
at org.jboss.web.tomcat.service.deployers.TomcatService.handleNotification(TomcatService.java:670)
at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jboss.mx.notification.NotificationListenerProxy.invoke(NotificationListenerProxy.java:153)
at $Proxy172.handleNotification(Unknown Source)
at javax.management.NotificationBroadcasterSupport.handleNotification(Unknown Source)
at javax.management.NotificationBroadcasterSupport$SendNotifJob.run(Unknown Source)
at javax.management.NotificationBroadcasterSupport$1.execute(Unknown Source)
at javax.management.NotificationBroadcasterSupport.sendNotification(Unknown Source)
at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:425)
at org.jboss.Main.boot(Main.java:209)
at org.jboss.Main$1.run(Main.java:547)
at java.lang.Thread.run(Unknown Source)

Can u let me know where am i going wrong

Thanks
Jigar


Carsten Wolters added a comment - 05/Feb/09 11:29 AM
Hi Jigar,

I got a similar problem with "An address incompatible with the requested protocol was used. ". Try to use the latest jboss-native-libraries from http://www.jboss.org/jbossweb/downloads/ and make sure that you do not have multiple versions installed.

The error disappeared in my setup after using the correct native library.