2 Replies Latest reply on Mar 13, 2003 7:37 PM by fullej

    javax.ejb.EJBException: Invalid invocation, check your deplo

      i am using jboss3.03. with tomcat 4.1.12 .when i change my bean and re-deploy the jar file it gives invalid invocation, check your deployment packaging.

      pls. advice on what is going wrong.

        • 1. Re: javax.ejb.EJBException: Invalid invocation, check your d
          fullej

          I have the exact same problem, but let me provide more detail.

          I have tried this with every version from 3.0.4 to 3.2

          I have tested with JDK 1.3 and 1.4

          I have tested with internal Tomcat and Jetty and MBean.

          The problem seems to be with internal (inside JBoss VM) only. If I run a different web/Servlet server as a client outside of JBoss - it works fine (tested with Resin). With an external app server - I can re-deploy my EJB all day long - and have no problems.

          If it is an internal (ie an MBean, Tomcat or Jetty, etc.) then it will deploy fine the first time - but after a hot deploy of the EJB it gives this error.

          If I am running multiple internal processes - they all fail with this error. With Tomcat and Jetty I get a few different errors depending on whether I restart them (by re hot-deploying them) or not - but it basically all comes down to the service not being able to see the classes it needs anymore - or incorrectly (I think).

          This seems like a bug to me... but if it is - then what why has not anyone else had this problem?

          As a second question - I am trying to get a single bean to hot-deploy - is that even possible? I want to just compile an EJB and have it just re-deploy that class. Any ideas?

          • 2. Re: javax.ejb.EJBException: Invalid invocation, check your d
            fullej

            I have found an answer, and thought I would post it for everyone else who may be looking.

            It basically comes down to changing the standardjboss.xml file in the config directory, and adding in a new container-configuration as follows:

            <container-configuration extends="Standard Stateless SessionBean">
            <container-name>Not Optimized Stateless SessionBean</container-name>
            <client-interceptors>

            org.jboss.proxy.ejb.HomeInterceptor
            org.jboss.proxy.SecurityInterceptor
            org.jboss.proxy.TransactionInterceptor
            org.jboss.invocation.ByValueInvokerInterceptor


            org.jboss.proxy.ejb.EntityInterceptor
            org.jboss.proxy.SecurityInterceptor
            org.jboss.proxy.TransactionInterceptor
            org.jboss.invocation.ByValueInvokerInterceptor

            </client-interceptors>
            </container-configuration>


            The key here is the "ByValueInvokerInterceptor". I then changed my ejb-jar.xml to use this new configuration and it worked great for my development system. I can hot deploy any of my beans (each bean in it's own JAR with proper support files included) - and it works very well.