3 Replies Latest reply on Aug 5, 2009 1:59 AM by user161771 - oracle

    Weblogic 10 : EJB 3 compiler fail to include methods.

    624243
      I have this error :

      ..\servers\AdminServer\cache\EJBCompilerCache\1kntru5z4w8cn\..\MyClass_cfoi74_ MyClass.java:715: cannot find symbol
      symbol : method get(java.io.Serializable)
      location: interface ... MyClass_cfoi74_Intf
      result = __bean.get(
      ^
      1 error

           at weblogic.utils.compiler.CompilerInvoker.compileMaybeExit(CompilerInvoker.java:493)
           at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:332)
           at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:340)
           at weblogic.ejb.container.ejbc.EJBCompiler.doCompile(EJBCompiler.java:343)
           at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:533)
           at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:500)
           at weblogic.ejb.container.deployer.EJBDeployer.runEJBC(EJBDeployer.java:476)
           at weblogic.ejb.container.deployer.EJBDeployer.compileJar(EJBDeployer.java:798)
           at weblogic.ejb.container.deployer.EJBDeployer.compileIfNecessary(EJBDeployer.java:701)
           at weblogic.ejb.container.deployer.EJBDeployer.prepare(EJBDeployer.java:1234)
           at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:372)
           at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)
           at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:360)
           at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
           at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:56)
           at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:46)
           at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:615)
           at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
           at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
           at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)
           at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)
           at weblogic.deploy.internal.targetserver.AppDeployment.prepare(AppDeployment.java:137)
           at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:39)
           at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:187)
           at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
           at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
           at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:165)
           at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)
           at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
           at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
           at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
           at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
           at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)

      I've looked in the class generated by the weblodic compiler for my EJB 3 bean at the path specified in the error and the interface and the implementation doesn't have the "get" method even if in the source file in the jar has it.

      Is there a way to solve this?

      Thanks!
        • 1. Re: Weblogic 10 : EJB 3 compiler fail to include methods.
          david.karr
          Could we see more of what you're talking about? Show exactly what you're working with.
          • 2. Re: Weblogic 10 : EJB 3 compiler fail to include methods.
            624243
            Interface generated by the compiler:

            /**
            * This code was automatically generated at 12:58:29 on 2009-08-04
            * by weblogic.ejb.container.ejbc.Ejb2Rmi -- do not edit.
            *
            * @version Unknown
            * @author Copyright (c) 2009 by BEA Systems, Inc. All Rights Reserved.
            */

            package ejb.dao.taux;

            import weblogic.ejb.container.interfaces.WLEnterpriseBean;

            public interface TauxTheorAnalsDAOImpl_cfoi74_Intf
            extends WLEnterpriseBean
            {
            public void add(ejb.entity.taux.TauxTheorAnals arg0);
            public void flush();
            public java.util.List<ejb.entity.taux.TauxTheorAnals> getAll();
            public void init();
            public void refresh(ejb.entity.taux.TauxTheorAnals arg0);
            public void remove(java.io.Serializable arg0);
            public void remove(ejb.entity.taux.TauxTheorAnals arg0);
            public ejb.entity.taux.TauxTheorAnals
            update(ejb.entity.taux.TauxTheorAnals arg0);
            }

            Implementation generated by the compiler (without method content):

            /**
            * This code was automatically generated at 12:58:29 on 2009-08-04
            * by weblogic.ejb.container.ejbc.Ejb2Rmi -- do not edit.
            *
            * @version Unknown
            * @author Copyright (c) 2009 by BEA Systems, Inc. All Rights Reserved.
            */

            package ejb.dao.taux;

            import javax.ejb.EJBException;
            import weblogic.ejb.container.interfaces.WLEnterpriseBean;
            import weblogic.ejb.container.interfaces.WLSessionEJBContext;

            public final class TauxTheorAnalsDAOImpl_cfoi74_TauxTheorAnalsDAOImpl
            extends weblogic.ejb.container.internal.StatelessLocalObject
            implements ejb.dao.taux.TauxTheorAnalsDAO, weblogic.utils.PlatformConstants,
            java.io.Serializable
            {
            private final Class bIClass = ejb.dao.taux.TauxTheorAnalsDAO.class;

            public static weblogic.ejb.container.internal.MethodDescriptor md_eo_refresh_O;
            public static weblogic.ejb.container.internal.MethodDescriptor md_eo_get_java_io_Serializable;
            public static weblogic.ejb.container.internal.MethodDescriptor md_eo_remove_java_io_Serializable;
            public static weblogic.ejb.container.internal.MethodDescriptor md_eo_getAll;
            public static weblogic.ejb.container.internal.MethodDescriptor md_eo_update_O;
            public static weblogic.ejb.container.internal.MethodDescriptor md_eo_add_O;
            public static weblogic.ejb.container.internal.MethodDescriptor md_eo_remove_O;
            public static weblogic.ejb.container.internal.MethodDescriptor md_eo_flush;
            public static weblogic.ejb.container.internal.MethodDescriptor md_eo_init;


            public TauxTheorAnalsDAOImpl_cfoi74_TauxTheorAnalsDAOImpl() {}

            public void refresh(ejb.entity.taux.TauxTheorAnals arg0)
            {
            ...
            }

            public ejb.entity.taux.TauxTheorAnals get(java.io.Serializable arg0)
            {
            ...
            }

            public void remove(java.io.Serializable arg0)
            {
            ...
            }

            public java.util.List<ejb.entity.taux.TauxTheorAnals> getAll()
            {
            ...
            }

            public ejb.entity.taux.TauxTheorAnals update(ejb.entity.taux.TauxTheorAnals arg0)
            {
            ...
            }

            public void add(ejb.entity.taux.TauxTheorAnals arg0)
            {
            ...
            }

            public void remove(ejb.entity.taux.TauxTheorAnals arg0)
            {
            ...
            }

            public void flush()
            {
            ...
            }

            public void init()
            {
            ...
            }



            private void writeObject(java.io.ObjectOutputStream out)
            throws java.io.IOException
            {
            ...
            }

            private void readObject(java.io.ObjectInputStream in)
            throws java.io.IOException, java.lang.ClassNotFoundException
            {
            ...
            }

            }

            Source implementation 1 :

            @Stateless
            public class TauxTheoriqueAnalyseDAOImpl extends BaseOracleDAOImpl<TauxTheoriqueAnalyse> implements
            TauxTheoriqueAnalyseDAO {

            private static final Log LOG = new Logger(TauxTheoriqueAnalyseDAOImpl.class);

            /**
            * Constructeur
            *
            */
            public TauxTheoriqueAnalyseDAOImpl() {
            super(TauxTheoriqueAnalyse.class);
            }

            /**
            * {@inheritDoc}
            *
            * @see ejb.dao.tauxtheoriqueanalyse.TauxTheoriqueAnalyseDAO#
            * getTauxTheoriqueAnalyse(java.lang.Long)
            */
            public List<TauxTheoriqueAnalyse> getTauxTheoriqueAnalyse(Long idVersion) {

            if (idVersion == null || idVersion == 0) {
            throw new IllegalArgumentException(
            "TauxTheoriqueAnalyseDAOImpl : getTauxTheoriqueAnalyse - arguments invalides");
            }

            LOG.debug("Obtenir la liste des TauxTheoriqueAnalyse selon la version du dossier : IdVers:" + idVersion);

            Query q = this.getEntityManager()
            .createNamedQuery("TauxTheoriqueAnalyseDAO.getTauxTheoriqueAnalyse(idVersion)");
            q.setParameter("idVersion", idVersion);

            return this.getListResult(q);
            }

            }


            The missing method "get()" is in BaseOracleDAOImpl.
            • 3. Re: Weblogic 10 : EJB 3 compiler fail to include methods.
              user161771 - oracle
              Try the WLS EJB forum:
              WebLogic Server - EJB
              1 person found this helpful