Uploaded image for project: 'Confluence Cloud'
  1. Confluence Cloud
  2. CONFCLOUD-14514

Upgrade Confluence to use Felix >=1.4.0 to allow EJB call on JavaEE server

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Timed out
    • None
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

    Description

      NOTE: This suggestion is for Confluence Cloud. Using Confluence Server? See the corresponding suggestion.

      We use Confluence on top of JOnAS 4.8.6 that includes Tomcat 5.5.17.

      The previous version of Confluence work fine and the 2.9.2 version is in production.

      However we can't use Confluence 2.10 and 2.10.1 because those versions prevent our application server to call external EJB. In fact, this is a critical issue for us because all of our security model relies on EJB and RemoteLoginModule.
      For instance when I try to login on Confluence I get the following exception :
      javax.naming.NamingException [Root exception is java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:

      java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
      java.io.IOException: unknown protocol: felix]
      at org.objectweb.carol.cmi.jndi.FlatCtx.lookup(FlatCtx.java:236)
      at org.objectweb.carol.cmi.jndi.FlatCtx.lookup(FlatCtx.java:250)
      at javax.naming.InitialContext.lookup(InitialContext.java:355)
      at org.objectweb.carol.jndi.spi.AbsContext.lookup(AbsContext.java:140)
      at org.objectweb.carol.jndi.spi.AbsContext.lookup(AbsContext.java:150)
      at javax.naming.InitialContext.lookup(InitialContext.java:351)
      at javax.naming.InitialContext.lookup(InitialContext.java:351)
      at org.objectweb.jonas.security.auth.spi.RemoteLoginModule.findRemoteResource(RemoteLoginModule.java:274)
      at org.objectweb.jonas.security.auth.spi.RemoteLoginModule.login(RemoteLoginModule.java:186)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
      at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
      at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
      at java.security.AccessController.doPrivileged(Native Method)
      at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
      at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
      at org.objectweb.jonas.security.realm.web.catalina55.JAAS.authenticate(JAAS.java:149)
      at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:257)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:416)
      at org.objectweb.jonas.web.catalina55.ResetAuthenticationValve.invoke(ResetAuthenticationValve.java:107)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
      at websecurity.filter.AuthenticationValve.invoke(AuthenticationValve.java:97)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)

      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
      at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
      at java.lang.Thread.run(Thread.java:595)
      Caused by: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
      java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
      java.io.IOException: unknown protocol: felix
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:325)
      at sun.rmi.transport.Transport$1.run(Transport.java:153)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
      at java.lang.Thread.run(Thread.java:595)
      at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
      at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
      at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
      at org.objectweb.carol.cmi.RegistryImpl_Stub.lookup(Unknown Source)
      at org.objectweb.carol.cmi.RegistryClient.lookup(RegistryClient.java:89)
      at org.objectweb.carol.cmi.jndi.FlatCtx.lookup(FlatCtx.java:219)
      ... 34 more
      Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
      java.io.IOException: unknown protocol: felix
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:282)
      at sun.rmi.transport.Transport$1.run(Transport.java:153)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
      ... 1 more
      Caused by: java.io.IOException: unknown protocol: felix
      at java.net.URL.readObject(URL.java:1217)
      at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
      at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
      at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
      at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634)
      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
      at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:290)
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:279)
      ... 6 more

      The issue seems to come from Felix.
      After few researches, I've found that Confluence use twice almost the same library of Felix :
      org.apache.felix.framework-1.2.1-atlassian-3.jar
      org.apache.felix.main-1.2.1-atlassian-3.jar

      For me, the 1st one is useless.

      The JOnAS experts told me that upgrading to the latest version of Felix (1.4.0) could solve the problem.

      So after upgrading to Felix 1.4.0 I can login. However several plugins doesn't deploy any more :
      2009-02-05 11:44:35,988 * INFO * Initialising the plugin system [com.atlassian.plugin.DefaultPluginManager]
      2009-02-05 11:44:39,324 * ERROR * Exception calling listener method [com.atlassian.plugin.event.impl.DefaultPluginEventManager]
      java.lang.NoSuchMethodError: org.apache.felix.framework.Felix.<init>(Lorg/apache/felix/framework/Logger;Ljava/util/Map;Ljava/util/List;)V

      2009-02-05 11:44:42,428 * ERROR * Unable to deploy plugin 'com.atlassian.confluence.extra.widgetconnector', file Unit: /opt/appserver/exo/Lab650701C_linurge1_Jon48_WIKIADM/confluence-data/bundled-pl
      ugins/widgetconnector-1.0.1.jar (1233830646000) [com.atlassian.plugin.loaders.DirectoryPluginLoader]
      java.lang.IllegalArgumentException: The host component registrations are required

      2009-02-05 11:44:42,499 * ERROR * Unable to deploy plugin 'confluence.repository.client', file Unit: /opt/appserver/exo/Lab650701C_linurge1_Jon48_WIKIADM/confluence-data/bundled-plugins/atlassian-pl
      ugin-repository-confluence-plugin-2.1.1.jar (1233830646000) [com.atlassian.plugin.loaders.DirectoryPluginLoader]
      java.lang.IllegalArgumentException: The host component registrations are required

      2009-02-05 11:44:42,612 * ERROR * Unable to deploy plugin 'confluence.extra.dynamictasklist2', file Unit: /opt/appserver/exo/Lab650701C_linurge1_Jon48_WIKIADM/confluence-data/bundled-plugins/dynamic
      tasklist2-3.1.1.jar (1233830646000) [com.atlassian.plugin.loaders.DirectoryPluginLoader]
      java.lang.IllegalArgumentException: The host component registrations are required

      Finally, my request is that I'd like Confluence to be upgraded with Felix >=1.4.0 for the next releases.

      Attachments

        Issue Links

          Activity

            People

              barconati BillA
              786e64edcb07 Xavier MOGHRABI
              Votes:
              1 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: