[jboss-jira] [JBoss JIRA] (AS7-2388) HttpTunnelingServlet / Netty cannot classload HttpServlet (main.xml in module is wrong)

Sebastian Jancke (Commented) (JIRA) jira-events at lists.jboss.org
Fri Oct 28 04:05:45 EDT 2011


    [ https://issues.jboss.org/browse/AS7-2388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12638231#comment-12638231 ] 

Sebastian Jancke commented on AS7-2388:
---------------------------------------

1) The JaxrsScanningProcessor is active, because there is also the HornetQ-Rest-API in the same WAR
2) After removing that from the WAR, there is still the same error because of a defect modules/org/jboss/netty/main/module.xml

My WAR contains only this:

/META-INF/MANIFEST.MF
---------------------
{code:none} 
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: Dummy
Build-Jdk: 1.6.0_24
Dependencies: org.jboss.netty
{code}

/WEB-INF/web.xml
----------------
{code:xml}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
	<display-name>Message Tunnel</display-name>
	
	<servlet>
     <servlet-name>NettyTunnelingServlet</servlet-name>
     <servlet-class>org.jboss.netty.channel.socket.http.HttpTunnelingServlet</servlet-class>
     
     <init-param>
       <param-name>endpoint</param-name>
       <param-value>local:org.hornetq</param-value>
     </init-param>
     <load-on-startup>1</load-on-startup>
   </servlet>

   <servlet-mapping>
     <servlet-name>NettyTunnelingServlet</servlet-name>
     <url-pattern>/netty-tunnel</url-pattern>
   </servlet-mapping>
   
</web-app>
{code}

The exception + stacktrace is (now without JaxrsScanningProcessor):
{code:xml} 
09:59:15,909 WARN  [org.jboss.modules] (MSC service thread 1-4) Failed to define class org.jboss.netty.channel.socket.http.HttpTunnelingServlet in Mod
ule "org.jboss.netty:main" from local module loader @2aca0115 (roots: jboss-as-7.0.2.Final\modules): java.lang.LinkageError: Failed to link o
rg/jboss/netty/channel/socket/http/HttpTunnelingServlet (Module "org.jboss.netty:main" from local module loader @2aca0115 (roots: jboss-as-7.0.2.Final\modules))
        at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:401)
        at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:261)
        at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:76)
        at org.jboss.modules.Module.loadModuleClass(Module.java:590)
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:183)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310)
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103)
        at java.lang.Class.forName0(Native Method) [:1.6.0_24]
        at java.lang.Class.forName(Class.java:247) [:1.6.0_24]
        at org.jboss.as.ee.component.deployers.EEClassConfigurationProcessor$1.compute(EEClassConfigurationProcessor.java:139)
        at org.jboss.as.ee.component.deployers.EEClassConfigurationProcessor$1.compute(EEClassConfigurationProcessor.java:122)
        at org.jboss.as.ee.component.LazyValue.get(LazyValue.java:40)
        at org.jboss.as.ee.component.EEApplicationDescription.getClassConfiguration(EEApplicationDescription.java:183)
        at org.jboss.as.ee.component.ComponentDescription.createConfiguration(ComponentDescription.java:153)
        at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:70)
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115)
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824)
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_24]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_24]
        at java.lang.Thread.run(Thread.java:662) [:1.6.0_24]
Caused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet
        at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_24]
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) [:1.6.0_24]
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616) [:1.6.0_24]
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) [:1.6.0_24]
        at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:397)
        ... 22 more
Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet from [Module "org.jboss.netty:main" from local module loader @2aca0115 (ro
ots: jboss-as-7.0.2.Final\modules)]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310)
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103)
        ... 27 more
{code}
                
> HttpTunnelingServlet / Netty cannot classload HttpServlet (main.xml in module is wrong)
> ---------------------------------------------------------------------------------------
>
>                 Key: AS7-2388
>                 URL: https://issues.jboss.org/browse/AS7-2388
>             Project: Application Server 7
>          Issue Type: Bug
>          Components: Modules
>    Affects Versions: 7.0.1.Final, 7.0.2.Final
>            Reporter: Sebastian Jancke
>            Assignee: David Lloyd
>              Labels: classloading, hornetq, module, netty
>
> Using the HttpTunnelingServlet inside a WAR's web.xml is not possible (e.g. to tunnel HornetQ), because the module 'netty' cannot access the module 'servlet-api / javaee'
> Fix is simple. Adjust modules/org/jboss/netty/main/module.xml with the following dependency: 
> <dependencies>
>  ..
>  <module name="javax.servlet.api" />
> </dependencies>

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list