TomcatSecurityService + Jboss 7 problem

266 views
Skip to first unread message

Dmitry Kornilov

unread,
Jul 31, 2012, 8:00:21 PM7/31/12
to gran...@googlegroups.com
Hi,

I am trying to deploy a small Flex + GraniteDS + EJB3 application on Jboss 7. Everything was working absolutely fine until I added a security configuration as follows:

<granite-config scan="true">
    <security type="org.granite.messaging.service.security.TomcatSecurityService"/>

    <tide-components>
    <tide-component instance-of="org.granite.tide.ejb.EjbIdentity"/>
        <tide-component annotated-with="org.granite.messaging.service.annotations.RemoteDestination"/>
    </tide-components>

</granite-config>

With highlighted line my application is not deployed with the following error:

01:50:42,661 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/tdfx3-web]] (MSC service thread 1-8) Exception sending context
 initialized event to listener instance of class org.granite.config.GraniteConfigListener: java.lang.NoClassDefFoundError: org/apache/catalina/connect
or/RequestFacade
        at org.granite.messaging.service.security.TomcatSecurityService.<init>(TomcatSecurityService.java:60) [granite-core-2.3.2.GA.jar:]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.6.0_32-ea]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) [rt.jar:1.6.0_32-ea]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [rt.jar:1.6.0_32-ea]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [rt.jar:1.6.0_32-ea]
        at java.lang.Class.newInstance0(Class.java:355) [rt.jar:1.6.0_32-ea]
        at java.lang.Class.newInstance(Class.java:308) [rt.jar:1.6.0_32-ea]
        at org.granite.util.ClassUtil.newInstance(ClassUtil.java:53) [granite-core-2.3.2.GA.jar:]
        at org.granite.config.GraniteConfig.loadCustomSecurity(GraniteConfig.java:820) [granite-core-2.3.2.GA.jar:]
        at org.granite.config.GraniteConfig.forElement(GraniteConfig.java:564) [granite-core-2.3.2.GA.jar:]
        at org.granite.config.GraniteConfig.<init>(GraniteConfig.java:210) [granite-core-2.3.2.GA.jar:]
        at org.granite.config.ServletGraniteConfig.loadConfig(ServletGraniteConfig.java:115) [granite-core-2.3.2.GA.jar:]
        at org.granite.config.GraniteConfigListener.contextInitialized(GraniteConfigListener.java:88) [granite-core-2.3.2.GA.jar:]
        at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) [jbossweb-7.0.13.Final.jar:]
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.13.Final.jar:]
        at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_32-ea]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_32-ea]
        at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_32-ea]
Caused by: java.lang.ClassNotFoundException: org.apache.catalina.connector.RequestFacade from [Module "deployment.tdfx3.ear:main" from Service Module
Loader]
        at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
        at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
        at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
        ... 21 more

Please help.

Best regards,
Dmitry Kornilov

Zenzei

unread,
Oct 7, 2012, 12:24:10 PM10/7/12
to gran...@googlegroups.com
Hi!

Having the same error, did you manage to find a solution to this?

I read here something about adding a context.xml inside the war file, but didn't seem to work.
https://community.jboss.org/thread/195569

step  1 :
add the contents to context.xml in the META-INF  folder of your web app

<?xml version="1.0" encoding="UTF-8"?>
<context privileged="true"/>


Regards!

William Draï

unread,
Oct 7, 2012, 1:22:17 PM10/7/12
to gran...@googlegroups.com
Try this :
<security type="org.granite.messaging.service.security.Tomcat7SecurityService"/>



--
 
 
 

Nico Higgs

unread,
Oct 7, 2012, 4:44:36 PM10/7/12
to gran...@googlegroups.com
Hi William,

I change the option but I'm having same error :(

17:43:52,929 ERROR [org.apache.catalina.core.StandardContext] (MSC service thread 1-4) Excepción enviando evento inicializado de contexto a instancia de escuchador de clase org.granite.config.GraniteConfigListener: java.lang.NoClassDefFoundError: org/apache/catalina/connector/RequestFacade
    at org.granite.messaging.service.security.Tomcat7SecurityService.<init>(Tomcat7SecurityService.java:54) [granite.jar:]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.6.0_18]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) [rt.jar:1.6.0_18]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [rt.jar:1.6.0_18]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [rt.jar:1.6.0_18]
    at java.lang.Class.newInstance0(Class.java:355) [rt.jar:1.6.0_18]
    at java.lang.Class.newInstance(Class.java:308) [rt.jar:1.6.0_18]
    at org.granite.util.TypeUtil.newInstance(TypeUtil.java:52) [granite.jar:]
    at org.granite.config.GraniteConfig.loadCustomSecurity(GraniteConfig.java:855) [granite.jar:]
    at org.granite.config.GraniteConfig.forElement(GraniteConfig.java:576) [granite.jar:]
    at org.granite.config.GraniteConfig.<init>(GraniteConfig.java:218) [granite.jar:]
    at org.granite.config.ServletGraniteConfig.loadConfig(ServletGraniteConfig.java:115) [granite.jar:]
    at org.granite.config.GraniteConfigListener.contextInitialized(GraniteConfigListener.java:95) [granite.jar:]
    at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3394) [jbossweb-7.0.17.Final.jar:]
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3856) [jbossweb-7.0.17.Final.jar:]
    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:89) [jboss-as-web-7.1.3.Final.jar:7.1.3.Final]

    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_18]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_18]
    at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_18]
Caused by: java.lang.ClassNotFoundException: org.apache.catalina.connector.RequestFacade from [Module "deployment.graniteds-ejb3.ear:main" from Service Module Loader]

    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
    ... 21 more



--
 
 
 

Nico Higgs

unread,
Oct 7, 2012, 4:53:32 PM10/7/12
to gran...@googlegroups.com
By the way, removing the option make the ear deploy.

When I tried to login, I get this warning, but I can enter the application
17:51:50,451 WARN  [org.granite.messaging.amf.process.AMF3MessageProcessor] (http-/0.0.0.0:8080-2) Ignored security operation (no security settings in granite-config.xml): flex.messaging.messages.CommandMessage {
  messageRefType: null
  operation: LOGIN
  correlationId =
  destination =
  headers = {DSId=AD1F2DB8-E9F6-4620-8C64-F47343FBB10C}
  messageId = 260A308F-D77B-6CD8-0923-3CFF882EA24E
  timestamp = 0
  clientId = null
  timeToLive = 0
  body = ****** (credentials)


And, if I tried to add for example one person, I get this error

17:48:58,801 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/graniteds-ejb3].[AMFMessageServlet]] (http-/0.0.0.0:8080-2) Servlet.service() para servlet AMFMessageServlet lanzó excepción: org.granite.messaging.amf.io.AMF3SerializationException
    at org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:98) [granite.jar:]
    at org.granite.messaging.amf.io.AMF3Deserializer.readAMF3Array(AMF3Deserializer.java:275) [granite.jar:]
    at org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:128) [granite.jar:]
    at org.granite.messaging.amf.io.AMF3Deserializer.readAMF3Object(AMF3Deserializer.java:523) [granite.jar:]
    at org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:130) [granite.jar:]
    at org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:92) [granite.jar:]
    at org.granite.messaging.amf.io.AMF0Deserializer.readAMF3Data(AMF0Deserializer.java:310) [granite.jar:]
    at org.granite.messaging.amf.io.AMF0Deserializer.readData(AMF0Deserializer.java:362) [granite.jar:]
    at org.granite.messaging.amf.io.AMF0Deserializer.readArray(AMF0Deserializer.java:225) [granite.jar:]
    at org.granite.messaging.amf.io.AMF0Deserializer.readData(AMF0Deserializer.java:348) [granite.jar:]
    at org.granite.messaging.amf.io.AMF0Deserializer.readBodies(AMF0Deserializer.java:141) [granite.jar:]
    at org.granite.messaging.amf.io.AMF0Deserializer.<init>(AMF0Deserializer.java:79) [granite.jar:]
    at org.granite.messaging.webapp.AMFMessageFilter.doFilter(AMFMessageFilter.java:110) [granite.jar:]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.17.Final.jar:]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.17.Final.jar:]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.17.Final.jar:]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.17.Final.jar:]
    at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.3.Final.jar:7.1.3.Final]
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:165) [jboss-as-web-7.1.3.Final.jar:7.1.3.Final]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.17.Final.jar:]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.17.Final.jar:]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.17.Final.jar:]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:372) [jbossweb-7.0.17.Final.jar:]
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:897) [jbossweb-7.0.17.Final.jar:]
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:634) [jbossweb-7.0.17.Final.jar:]
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:2039) [jbossweb-7.0.17.Final.jar:]

    at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_18]
Caused by: java.lang.RuntimeException: The ActionScript3 class bound to org.granite.example.addressbook.entity.Person (ie: [RemoteClass(alias="org.granite.example.addressbook.entity.Person")]) implements flash.utils.IExternalizable but this Java class neither implements java.io.Externalizable nor is in the scope of a configured externalizer (please fix your granite-config.xml)
    at org.granite.messaging.amf.io.AMF3Deserializer.readAMF3Object(AMF3Deserializer.java:500) [granite.jar:]
    at org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:130) [granite.jar:]
    at org.granite.messaging.amf.io.AMF3Deserializer.readObject(AMF3Deserializer.java:92) [granite.jar:]
    ... 26 more

Dmitry Kornilov

unread,
Oct 8, 2012, 4:03:38 AM10/8/12
to gran...@googlegroups.com
No, I didn't find the solution to this problem, gave up and solved my problems the other way. Now waiting for the proper SecurityService implementation for JBoss7. :)
By the way, Tomcat7SecurityService also doesn't work.

среда, 1 августа 2012 г., 2:00:21 UTC+2 пользователь Dmitry Kornilov написал:

Nico Higgs

unread,
Oct 9, 2012, 10:40:21 AM10/9/12
to gran...@googlegroups.com
Thanks Dimitry.
It seems some problem with Jboss 7. If I downgrade to jboss 4.2.3 everything works as expected.


--
 
 
 

Scotty Scott

unread,
Oct 9, 2012, 11:23:32 AM10/9/12
to gran...@googlegroups.com
Due to classloading on Jboss 7 and Tomcat7SecurityService's dependency on Tomcat.

You need to add the following to your War's MANIFEST.MF
Dependencies: org.jboss.as.web

It appears to work for me.

Scotty

--
 
 
 

Nico Higgs

unread,
Oct 12, 2012, 7:55:44 PM10/12/12
to gran...@googlegroups.com
Thanks Scotty, I'll try your solution. By the way, are you using 2.3.2GA, or the last version available at github?

Regards!

--
 
 
 

Scotty Scott

unread,
Oct 13, 2012, 2:28:00 PM10/13/12
to gran...@googlegroups.com
In my test I was using 2.3.2.GA

If using maven, I have this in my build section.

<plugins>
         <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <configuration>
               <!-- Java EE 6 doesn't require web.xml, Maven needs to catch 
                  up! -->
               <failOnMissingWebXml>false</failOnMissingWebXml>
  <archive>
<manifestEntries>
<Dependencies>org.jboss.as.web,org.dom4j</Dependencies>
</manifestEntries>
  </archive>
            </configuration>
         </plugin>
</plugins>


--
 
 
 

Reply all
Reply to author
Forward
0 new messages