EJB Entity not found?

Hi,
It is weird that i am having this error event all my entities even i have listed all the entities in persistent config; i tested with the global option "include all Entity Classes.." too.
I am using glassfish 3.1.2 ; Netbeans 7.1 on XP.
have you got a clue for this?
>
Caused by: java.lang.IllegalArgumentException: No [EntityType] was found for the key class [test.ClassA] in the Metamodel - please verify that the [Entity] class >was referenced in persistence.xml using a specific <class>test.ClassA</class> property or a global <exclude-unlisted-classes>false</exclude-unlisted-classes> >element.thanks,
-Hoang Long
Edited by: CardM on Jun 28, 2012 8:38 PM

r035198x wrote:
If you have annotated your Entity classes correctly then you don't need to add entities to an xml file.
Look at the first line in the stack trace that references your code to see what code gave you that exception and post the line here.stack trace points to a function below:
     protected int countLike(String fieldName, String value) {
         CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
         javax.persistence.criteria.CriteriaQuery cq = cb.createQuery();
         javax.persistence.criteria.Root<T> rt = cq.from(entityClass);
        cq.select(getEntityManager().getCriteriaBuilder().count(rt));
        Expression ex = rt.get(fieldName);
        cq.where(cb.like(ex,"%"+ value+"%"));
        javax.persistence.Query q = getEntityManager().createQuery(cq);       
        return ((Long) q.getSingleResult()).intValue();
    }  the line it points to:
javax.persistence.criteria.Root<T> rt = cq.from(entityClass);and i assure the entity is annotated @Entity (it is auto generated from netbeans)
regards,
-HL
Edited by: CardM on Jun 29, 2012 3:23 AM

Similar Messages

  • Javax.ejb.Inject not found

    I'm working with jdeveloper 10.1.3 in S.O. XP
    build a proyect template JSP,EJB3,TOPLINK
    import javax.ejb.Inject;
    Error: Inject not found
    Tanks

    Add EJB 3.0 Library to project libraries.

  • Javax/ejb/EJBHome not found on Sun Studio

    I get this error when executing a standalone client. It compiles fine but when I run it from the SUN Studio 5.0 IDE (mapped to jar executor), it throws this error. I've tried moving/copying the j2ee1.3.jar file around in several places with no luck. I've run the client successfully before, but it seems I've changed some settings and I don't know how to fix it..Any clues?

    Hi,
    To have these classes in the classapth,you need to mount these jars in the studio.
    To mount a jar file , in your studio explorer, right click the FileSystem node--->select Mount--->Archived Files--->navigate and select the j2ee.jar file.
    Get back in case of any issues.
    -Amol

  • Naming Exception: Name not found for local interface in 8.1

    Hi,
    I am trying to use local interfaces for my ejbs to call from my web application
    as both are running on the same server. I am migrating from 6.1 to 8.1 and with
    6.1, I was using the remote interfaces. Now, I am planning to use local interfaces
    from my web application, which is deployed as part of an EAR which has my ejbs
    also.
    Here is my ejb-jar.xml:
    <session>
         <ejb-name>TestService</ejb-name>
         <local-home>com.test.ejb.home.PrefsServiceHome</local-home>
         <local>com.test.ejb.TestService</local>
         <ejb-class>com.test.ejb.impl.PrefsServiceBean</ejb-class>
         <session-type>Stateless</session-type>
         <transaction-type>Bean</transaction-type>
         <resource-ref>
         <res-ref-name>jdbc/DataSource</res-ref-name>
         <res-type>javax.sql.DataSource</res-type>
         <res-auth>Container</res-auth>
         </resource-ref>
    </session>
    and my weblogic.xml looks like:
    <weblogic-enterprise-bean>
    <ejb-name>TestService</ejb-name>
    <stateless-session-descriptor>
    <pool>
         <max-beans-in-free-pool>20</max-beans-in-free-pool>
         <initial-beans-in-free-pool>20</initial-beans-in-free-pool>
    </pool>
    </stateless-session-descriptor>
    <reference-descriptor>
    <resource-description>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <jndi-name>jdbc.DataSource</jndi-name>
    </resource-description>
    </reference-descriptor>
    <jndi-name>ejb.PrefsService</jndi-name>
    </weblogic-enterprise-bean>
    I used the following code to get home interface:
    InitialContext initCtx = new InitialContext();
    Object objRef=null;
    objRef=initCtx.lookup("java:comp/env/ejb/TestService");
    return (EJBLocalHome)(objRef);
    I tried several combination for lookup.. but none of them worked. When i tried
    testing this particular ejb from administration console, I got "The EJB TestService
    has not been tested succesfully" message.
    lookup names I used:
    java:comp/env/ejb/TestService:not found
    java:comp/env/ejb/TestServiceHome:not found
    java:comp/env/ejb/ejb.TestServiceHome:not found
    java:comp/env/ejb/ejb.TestService:not found
    java:comp/env/ejb.TestServiceHome:not found
    java:comp/env/ejb.TestService:not found
    java:comp/env/TestServiceHome:not found
    java:comp/env/TestService:not found
    ejb.TestService:not found
    TestService:not found
    Please let me know... where I am going wrong..
    Thanks
    Raj

    There's 2 ways to lookup local EJBs
    1) Specify an ejb-link in your ejb-jar.xml. Specify an ejb-link in your
    web.xml and lookup java:/comp/env/<link-name>
    2) Specify a <local-jndi-name> in your weblogic-ejb-jar.xml and lookup
    that name.
    -- Rob
    Raj wrote:
    Hi,
    I am trying to use local interfaces for my ejbs to call from my web application
    as both are running on the same server. I am migrating from 6.1 to 8.1 and with
    6.1, I was using the remote interfaces. Now, I am planning to use local interfaces
    from my web application, which is deployed as part of an EAR which has my ejbs
    also.
    Here is my ejb-jar.xml:
    <session>
         <ejb-name>TestService</ejb-name>
         <local-home>com.test.ejb.home.PrefsServiceHome</local-home>
         <local>com.test.ejb.TestService</local>
         <ejb-class>com.test.ejb.impl.PrefsServiceBean</ejb-class>
         <session-type>Stateless</session-type>
         <transaction-type>Bean</transaction-type>
         <resource-ref>
         <res-ref-name>jdbc/DataSource</res-ref-name>
         <res-type>javax.sql.DataSource</res-type>
         <res-auth>Container</res-auth>
         </resource-ref>
    </session>
    and my weblogic.xml looks like:
    <weblogic-enterprise-bean>
    <ejb-name>TestService</ejb-name>
    <stateless-session-descriptor>
    <pool>
         <max-beans-in-free-pool>20</max-beans-in-free-pool>
         <initial-beans-in-free-pool>20</initial-beans-in-free-pool>
    </pool>
    </stateless-session-descriptor>
    <reference-descriptor>
    <resource-description>
    <res-ref-name>jdbc/DataSource</res-ref-name>
    <jndi-name>jdbc.DataSource</jndi-name>
    </resource-description>
    </reference-descriptor>
    <jndi-name>ejb.PrefsService</jndi-name>
    </weblogic-enterprise-bean>
    I used the following code to get home interface:
    InitialContext initCtx = new InitialContext();
    Object objRef=null;
    objRef=initCtx.lookup("java:comp/env/ejb/TestService");
    return (EJBLocalHome)(objRef);
    I tried several combination for lookup.. but none of them worked. When i tried
    testing this particular ejb from administration console, I got "The EJB TestService
    has not been tested succesfully" message.
    lookup names I used:
    java:comp/env/ejb/TestService:not found
    java:comp/env/ejb/TestServiceHome:not found
    java:comp/env/ejb/ejb.TestServiceHome:not found
    java:comp/env/ejb/ejb.TestService:not found
    java:comp/env/ejb.TestServiceHome:not found
    java:comp/env/ejb.TestService:not found
    java:comp/env/TestServiceHome:not found
    java:comp/env/TestService:not found
    ejb.TestService:not found
    TestService:not found
    Please let me know... where I am going wrong..
    Thanks
    Raj

  • EJB Primary Key not found in lock manager - Container BUG?

    I have an EJB entity bean whose primary key class implementation is pretty simple, consisting of two strings. For the MOST part, it seems to work properly, but every so often I see the following message in my application server log.
    ####<Sep 17, 2008 10:03:27 AM EDT> <Warning> <JTA> <armantac22> <AdminServer> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1221660207187> <BEA-110401> <Ignoring error in afterCompletion. Object=weblogic.ejb.container.internal.TxManager$TxListener@1906466, Exception=javax.ejb.EJBException: [EJB:010108]The EJB Lock Manager has received an unlock request from EJB:PortfolioMetaData with primary key:[ObjectPK: type: PortMetaData name: PortMetaData]. However, this primary key could not be found in the Lock Manager. This indicates either an EJB container bug, or the equals and hashCode methods for the primary key class:com.armanta.ejb.ObjectPK are implemented incorrectly. Please check the equals and hashCode implementations.
    javax.ejb.EJBException: [EJB:010108]The EJB Lock Manager has received an unlock request from EJB:PortfolioMetaData with primary key:[ObjectPK: type: PortMetaData name: PortMetaData]. However, this primary key could not be found in the Lock Manager. This indicates either an EJB container bug, or the equals and hashCode methods for the primary key class:com.armanta.ejb.ObjectPK are implemented incorrectly. Please check the equals and hashCode implementations.
         at weblogic.ejb.container.locks.ExclusiveLockManager$LockBucket.unlock(ExclusiveLockManager.java:409)
         at weblogic.ejb.container.locks.ExclusiveLockManager.unlock(ExclusiveLockManager.java:170)
         at weblogic.ejb.container.manager.ExclusiveEntityManager.afterCompletion(ExclusiveEntityManager.java:723)
         at weblogic.ejb.container.manager.ExclusiveEntityManager.afterCompletion(ExclusiveEntityManager.java:667)
         at weblogic.ejb.container.internal.TxManager$TxListener.afterCompletion(TxManager.java:984)
         at weblogic.transaction.internal.ServerSCInfo.callAfterCompletions(ServerSCInfo.java:862)
         at weblogic.transaction.internal.ServerTransactionImpl.callAfterCompletions(ServerTransactionImpl.java:2913)
         at weblogic.transaction.internal.ServerTransactionImpl.afterCommittedStateHousekeeping(ServerTransactionImpl.java:2806)
         at weblogic.transaction.internal.ServerTransactionImpl.setCommitted(ServerTransactionImpl.java:2851)
         at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2650)
         at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2570)
         at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:277)
         at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:226)
         at weblogic.ejb.container.internal.BaseEJBHome.postHomeInvoke(BaseEJBHome.java:389)
         at weblogic.ejb.container.internal.EntityEJBHome.findByPrimaryKey(EntityEJBHome.java:408)
         at com.armanta.ejb.portfolio.PortfolioMetaData_a4zvzk_HomeImpl.findByPrimaryKey(PortfolioMetaData_a4zvzk_HomeImpl.java:64)
         at com.armanta.ejb.portfolio.PortfolioMasterBean.getPortfolioMetaData(PortfolioMasterBean.java:313)
         at com.armanta.ejb.portfolio.PortfolioMaster_fmk9e8_EOImpl.getPortfolioMetaData(PortfolioMaster_fmk9e8_EOImpl.java:64)
         at com.armanta.ejb.portfolio.PortfolioMaster_fmk9e8_EOImpl_WLSkel.invoke(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:517)
         at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:224)
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:407)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:403)
         at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:56)
         at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:934)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
    I checked the equals and hashCode implementations and nothing pops out at me. Once this happens, the EJB seems to get messed up in the database and I lose information!
    Here is the class implementation along with its superclass. I don't see anything blatant. Sorry for the lack of indentation, my original post was indented.
    Thanks
    Eric
    public class ObjectPK extends ArmantaPK {
         private String type;
         private String name;
         private ObjectPK() {
              super();
         public ObjectPK(String type, String name) {
              super();
              this.type = type;
              this.name = name;
         public String getName() {
              return name;
         public String getType() {
              return type;
         public String toString() {
              StringBuffer buffer = new StringBuffer();
              buffer.append("[ObjectPK:");
              buffer.append(" type: ");
              buffer.append(type);
              buffer.append(" name: ");
              buffer.append(name);
              buffer.append("]");
              return buffer.toString();
         * Returns <code>true</code> if this <code>ObjectPK</code> is the same as the o argument.
         * @return <code>true</code> if this <code>ObjectPK</code> is the same as the o argument.
         public boolean equals(Object o) {
              if (this == o) {
                   return true;
              if (!super.equals(o)) {
                   return false;
              if (o == null) {
                   return false;
              if (o.getClass() != getClass()) {
                   return false;
              ObjectPK castedObj = (ObjectPK) o;
              return ((this.type == null ? castedObj.type == null : this.type
                   .equals(castedObj.type)) && (this.name == null
                   ? castedObj.name == null
                   : this.name.equals(castedObj.name)));
         * Override hashCode.
         * @return the Objects hashcode.
         public int hashCode() {
              int hashCode = super.hashCode();
              hashCode = 31 * hashCode + (type == null ? 0 : type.hashCode());
              hashCode = 31 * hashCode + (name == null ? 0 : name.hashCode());
              return hashCode;
         public Object clone() {
              ObjectPK inst = new ObjectPK();
              inst.type = this.type == null ? null : new String(this.type);
              inst.name = this.name == null ? null : new String(this.name);
              return inst;
    public abstract class ArmantaPK implements Serializable, Cloneable, Comparable {
         // Enforce compatability with future versions
         private static final long serialVersionUID = 1980721424128862564L;
         // Cache the hash code
         private transient int hash = 0;
         * Clones a primary key. Note that this is not a deep copy.
         * @return the cloned primary key
         public Object clone() throws CloneNotSupportedException {
              ArmantaPK newKey = (ArmantaPK) super.clone();
              newKey.hash = 0;
              return newKey;
         * Compare the specified object with this key for equality.
         * Implementations should return <tt>true</tt>
         * if and only if the specified object is also a key
         * of the same class and all corresponding attributes in the keys are
         * <i>equal</i>.
         * @param other the object to be compared for equality with this key.
         * @return <tt>true</tt> if the specified object is equal to this key.
         public boolean equals(Object other) {
              return other instanceof ArmantaPK;
         * This implementation only returns an empty String.
         * @return String
         public String toString() {
              return "";
         * Return the hash code value for this key. Implemented to call the
         * key's <code>computeHash</code> method and cache the result for
         * faster operation. Classes extending <code>ArmantaPK</code> should
         * only implement <code>computeHash</code>.
         * @return int
         public int hashCode() {
              if (hash == 0) {
                   hash = computeHash();
              return hash;
         * @y.exclude
         * Compute a hash code for this key. This is the method that should
         * be overridden by sub-classes.
         * @return int
         protected int computeHash() {
              return 0;
         * @y.exclude
         * After called, will force the hash code to get recomputed.
         public void rehash() {
              hash = 0;
         * Compares this <tt>ArmantaPK</tt> to another object by comparing
         * their string representations.
         * @return an integer based upon comparing the <tt>ArmantaPK</tt>s string
         * representations
         public int compareTo(Object o) {
    return toString().compareTo(o.toString());
    }

    We are experiencing a similar error after upgrading 9.2 to 9.2 MP3. We do not want to upgrade to 10g at this time. Is there a patch we can download with the fix?

  • Javax.ejb NOT FOUND

    Hi anyone,
    I am creating an Entity Bean, and I have imported javax.ejb.EntityBean. I get an error during compilation
    " javax.ejb.EntityBean package not found"
    I am using jdk1.2.2 I even tried with jdk1.3.
    My query is:
    Q1. Which is the jar in jdk which provides class files for javax.ejb.EntityBean package ?
    thanks
    vikas

    It is in j2ee_home\lib directory. Include this in the classpath.
    -Siva

  • Problem deploying connector: META-INF/ejb-jar.xml not found in jar file

              Has anyone seen this problem:
              I built Sun's Blackbox implementation and packaged
              it identical to the BlackBoxNoTx.rar included with
              Weblogic's 'jconnector' sample (even using the same
              ra.xml and weblogic-ra.xml). When I try to deploy
              it, the server reports:
              java.io.FileNotFoundException:
              META-INF/ejb-jar.xml not found in jar file
              I have no idea why the server thinks my connector
              is an EJB. If I deploy the BlackBoxNoTx.rar included
              with the sample, everything works without a hitch.
              The only variable that I'm changing in my BlackBoxNoTx.rar
              is that I build the Blackbox classes myself--otherwise,
              the RAR packagings are identical. Any assistance is
              greatly appreciated since I'm banging my head against
              a wall...
              Thanks,
              -jason
              

              I was finally able to resolve this one. On the odd chance that someone else encounters
              the same problem, here's what went wrong:
              My RAR file had two directories: 'META-INF' and 'meta-inf'. The first was created
              by the jar tool and contained the manifest.mf file. The second I created manually
              and it contained my ra.xml and weblogic-ra.xml. When I examined the RAR using
              any tools or I extracted the contents, it looked like it only contained one directory:
              META-INF (because NT is case-insensitive).
              "Jason L" <[email protected]> wrote:
              >
              >Has anyone seen this problem:
              >
              >I built Sun's Blackbox implementation and packaged
              >it identical to the BlackBoxNoTx.rar included with
              >Weblogic's 'jconnector' sample (even using the same
              >ra.xml and weblogic-ra.xml). When I try to deploy
              >it, the server reports:
              >
              >java.io.FileNotFoundException:
              >META-INF/ejb-jar.xml not found in jar file
              >
              >I have no idea why the server thinks my connector
              >is an EJB. If I deploy the BlackBoxNoTx.rar included
              >with the sample, everything works without a hitch.
              >The only variable that I'm changing in my BlackBoxNoTx.rar
              >is that I build the Blackbox classes myself--otherwise,
              >the RAR packagings are identical. Any assistance is
              >greatly appreciated since I'm banging my head against
              >a wall...
              >
              >Thanks,
              >
              >-jason
              

  • JBO-25019: Entity row of key null not found even though key filled in??

    Hi All,
    I'm using jdev 10.1.2, adf bc's and jsp's.
    I have a view object derived from 2 entity objects, which the user is allowed edit. It's a standard adf edit. Even though the key fields are filled in i keep getting this error when the page is submitted... "JBO-25019: Entity row of key null not found in Milk. " where milk is one of the entities
    I've checked that the fields are bound, which they are. I created a test method in the app module where i got the current row (i.e. the row i'm editing) and got the key values no problem. I've created the page again, same problem.
    This problem occurs in another edit page which uses the same view object. I've other edit pages which use different view objects, but who are based on the same entities and there is no problem.
    i cannot understand why. I have tried creating the view object again and creating a new edit page but i still get the same error.
    I can't understand why this is happening. If anyone could help, i'd be really grateful.
    Thanks in advance,
    newbe.

    I take your point about not all databases support triggers.
    However I am not using DBSequence...the above is a bug surely.For non-oracle SQLBuilders, if RETURNING clause is not supported by the DB in insert/update DML, then to perform refresh-on-insert/update BC4J calls the corresponding entity's doRefreshSQL() method. The javadoc says:
    if refresh-on-insert or update setting is set on an attribute which
    is a primary key attribute, then this method will fail to fetch the entity as the primary key
    in the databse for the equivalent row would have potentially changed. If that's true,
    then subclasses need to implement this method and perform "custom" sql to fetch the refresh-attrs
    based on some unique criteria for this entity.

  • EJB 3.0 Locking (entity not in the persistence context)

    hi all,
    i have some problems about locking,
    i have 1 remote and one local interface
    1. Remote Interface
    public @Stateful
    @Remote(RemoteInterface.class)
    class RemoteInterfaceBean implements RemoteInterface
           @PersistenceContext(unitName = "CustomerCareOracle")
         private EntityManager oracleManager;
            public MySomeEntityObject object;
           @EJB
            MyLocalInterface inter;   
        @TransactionAttribute(TransactionAttributeType.REQUIRED)
        public void fillMyObject(someparameters .... )
          // filling MySomeEntityObject object
        @TransactionAttribute(TransactionAttributeType.REQUIRED)
        public void commitMyObject()
          inter.AnotherOperatOnObject(object);
          oracleManager.persist(object);
    2. My Local Interface
    public @Stateless
    @Local(MyLocalInterface.class)
    class MyLocalInterfaceBean implements MyLocalInterface
           @PersistenceContext(unitName = "CustomerCareOracle")
         private EntityManager oracleManager;
            @TransactionAttribute(TransactionAttributeType.REQUIRED)
             public void AnotherOperatOnObject(MySomeEntityObject object)
                   oracleManager.lock(object,LockModeType.READ);
    // <= Here I Got An Error
                   // do some operation and is succsess, It's very good ;)
    }     when i tryed to lock object i got an error, i can't resolve this problem :(
    can anybody help me ?
    error trace
    17:43:21,343 ERROR [errorCat] java.lang.IllegalArgumentException: entity not in the persistence cont
    ext
            at org.hibernate.ejb.AbstractEntityManagerImpl.lock(AbstractEntityManagerImpl.java:336)
            at org.jboss.ejb3.entity.TransactionScopedEntityManager.lock(TransactionScopedEntityManager.
    java:101)
            at com.magti.businesslayer.ejb3Fasade.oracle.ccare.TransactionFasadeBean.lockAccounts(Transa
    ctionFasadeBean.java:203)
            at com.magti.businesslayer.ejb3Fasade.oracle.ccare.TransactionFasadeBean.doAfterCheck(Transa
    ctionFasadeBean.java:76)
            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 org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
            at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
            at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor
    .java:63)
            at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
            at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPer
    sistenceContextPropagationInterceptor.java:57)     Regards,
    Paata.

    It looks like you're trying to call lock before the entity has been created within the persistence
    context. Persist the entity within the persistence context before calling lock.

  • Getting a oracle.jbo.NoDefException: JBO-25002:Entity Association not found

    On using VO.createRow I get an exception that say
    Caused by: oracle.jbo.NoDefException: JBO-25002: Definition <Association package> of type Entity Association is not found.
    The Exception logs shows that the error is created in a EO which does not have any direct connection with the Association in question
    so the create method is fired in Entity1 but this error comes for an association between Entity2 and Entity3. There is however an association between Entity1 and Entity2.
    Entity1 and Entity2 are in the same project as the assoc between E2 and E3
    E3 is in another project, but I have tried refreshing the library dependencies and clean all + rebuild.

    Refer JBO-25002: Definition {1} of type {0} is not found.
    http://docs.oracle.com/cd/E24382_01/core.1112/e22506/chapter_jbo_messages.htm

  • Error : oracle.jbo.NoDefException: JBO-25002: Definition oracle.apps.icx.por.schema.server.XXTBPoRequisitionLineEO of type Entity Definition not found

    Hi, while extending EO, we are getting error "oracle.jbo.NoDefException: JBO-25002: Definition oracle.apps.icx.por.schema.server.XXTBPoRequisitionLineEO of type Entity Definition not found". We have placed class and xml files in respective folder, imported customization and bounced the system but still error did not go. Kindly help to trace the issue.

    Can you elaborate how you deployed your custom code, were steps documented here followed ? Did you create a ADF library jar and copy it over to the application lib directory ? Please provide the exact steps done for deployment.
    Jani Rautiainen
    Fusion Applications Developer Relations
    https://blogs.oracle.com/fadevrel/

  • JCO RFC Provider: "Bean not found" when calling EJB from ABAP via RFC

    Hello,
    I'm having trouble calling an EJB in a CE 7.1 system from ABAP via RFC. I'm trying to use the JCO RFC Provider service, which mean that I want to expose an EJB so that it can be called via Remote Function Call.
    I have documented everything, including the code and the deployment descriptors I wrote, in this thread in the CE forum: Jco RFC Provider: Bean not found
    If there's any chance you can help, please do me a favour and look into the problem.
    Thanks a lot!
    Thorsten

    Hi Vladimir,
    Thank you very much, your help was immensely valuable.
    I just had to add the function declaration to the Home Component interface, everything else was correct, and now it works.
    Cheers,
    Thorsten

  • Deploying an EJB WebService under WLS 9.1 - port component "Hello" is not found in wsdl.

    Hi,
    I'm trying to deploy a simple EJB webservice example on WLS 9.1. The appc
    compile works fine, but the server deployment throw the following error
    message:
    [java] port component "Hello" is not found in wsdl.
    It's simple JAX-RPC based webservice where a SessionBean method is used as
    the service implementation. The same configuration (webservice.xml,
    mapping.xml and HelloService.wsdl) works fine under JBoss 4.0, but not with
    WLS 9.1. Maybe it's a simple configuration error and someone can help.
    Regards
    Guido
    Appendix
    webservice.xml
    <webservices xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1\.xsd"
    version="1.1">
    <webservice-description>
    <webservice-description-name>HelloService</webservice-description-name>
    <wsdl-file>META-INF/wsdl/HelloService.wsdl</wsdl-file>
    <jaxrpc-mapping-file>META-INF/mapping.xml</jaxrpc-mapping-file>
    <port-component>
    <port-component-name>Hello</port-component-name>
    <wsdl-port>HelloPort</wsdl-port>
    <service-endpoint-interface>com.jcoffee.components.ws.Hello</service-endpoin
    t-interface>
    <service-impl-bean>
    <ejb-link>HelloBean</ejb-link>
    </service-impl-bean>
    </port-component>
    </webservice-description>
    </webservices>
    mapping.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <java-wsdl-mapping version="1.1" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd">
    <package-mapping>
    <package-type>com.jcoffee.components.ws</package-type>
    <namespaceURI>http://ws.components.jcoffee.com/types</namespaceURI>
    </package-mapping>
    <package-mapping>
    <package-type>com.jcoffee.components.ws</package-type>
    <namespaceURI>http://ws.components.jcoffee.com/</namespaceURI>
    </package-mapping>
    <service-interface-mapping>
    <service-interface>com.jcoffee.components.ws.HelloService</service-interface
    >
    <wsdl-service-name
    xmlns:serviceNS="http://ws.components.jcoffee.com/">serviceNS:HelloService</
    wsdl-service-name>
    <port-mapping>
    <port-name>HelloPort</port-name>
    <java-port-name>HelloPort</java-port-name>
    </port-mapping>
    </service-interface-mapping>
    <service-endpoint-interface-mapping>
    <service-endpoint-interface>com.jcoffee.components.ws.Hello</service-endpoin
    t-interface>
    <wsdl-port-type
    xmlns:portTypeNS="http://ws.components.jcoffee.com/">portTypeNS:Hello</wsdl-
    port-type>
    <wsdl-binding
    xmlns:bindingNS="http://ws.components.jcoffee.com/">bindingNS:HelloBinding</
    wsdl-binding>
    <service-endpoint-method-mapping>
    <java-method-name>hello</java-method-name>
    <wsdl-operation>hello</wsdl-operation>
    <method-param-parts-mapping>
    <param-position>0</param-position>
    <param-type>java.lang.String</param-type>
    <wsdl-message-mapping>
    <wsdl-message
    xmlns:wsdlMsgNS="http://ws.components.jcoffee.com/">wsdlMsgNS:Hello_hello</w
    sdl-message>
    <wsdl-message-part-name>String_1</wsdl-message-part-name>
    <parameter-mode>IN</parameter-mode>
    </wsdl-message-mapping>
    </method-param-parts-mapping>
    <wsdl-return-value-mapping>
    <method-return-value>java.lang.String</method-return-value>
    <wsdl-message
    xmlns:wsdlMsgNS="http://ws.components.jcoffee.com/">wsdlMsgNS:Hello_helloRes
    ponse</wsdl-message>
    <wsdl-message-part-name>result</wsdl-message-part-name>
    </wsdl-return-value-mapping>
    </service-endpoint-method-mapping>
    </service-endpoint-interface-mapping>
    </java-wsdl-mapping>
    HelloService.wsdl
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="HelloService"
    targetNamespace="http://ws.components.jcoffee.com/"
    xmlns:tns="http://ws.components.jcoffee.com/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
    <types/>
    <message name="Hello_hello">
    <part name="String_1" type="xsd:string"/>
    </message>
    <message name="Hello_helloResponse">
    <part name="result" type="xsd:string"/>
    </message>
    <portType name="Hello">
    <operation name="hello" parameterOrder="String_1">
    <input message="tns:Hello_hello"/>
    <output message="tns:Hello_helloResponse"/>
    </operation>
    </portType>
    <binding name="HelloBinding" type="tns:Hello">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
    <operation name="hello">
    <soap:operation soapAction=""/>
    <input>
    <soap:body use="literal" namespace="http://ws.components.jcoffee.com/"/>
    </input>
    <output>
    <soap:body use="literal" namespace="http://ws.components.jcoffee.com/"/>
    </output>
    </operation>
    </binding>
    <service name="HelloService">
    <port name="HelloPort" binding="tns:HelloBinding">
    <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
    </port>
    </service>
    </definitions>
    and last but not least the ejb-jar.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" version="2.1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
    <display-name>JCoffee web service sample</display-name>
    <enterprise-beans>
    <session>
    <ejb-name>HelloBean</ejb-name>
    <service-endpoint>com.jcoffee.components.ws.Hello</service-endpoint>
    <ejb-class>com.jcoffee.components.ws.HelloBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <method-permission>
    <unchecked/>
    <method>
    <ejb-name>HelloBean</ejb-name>
    <method-name>*</method-name>
    </method>
    </method-permission>
    <container-transaction>
    <method>
    <ejb-name>HelloBean</ejb-name>
    <method-name>*</method-name>
    </method>
    <trans-attribute>Required</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>

    Hi again,
    I got it - i've forgot the namespace prefix for the wsdl-port.
    Now it works.
    Thanks!
    "Ben" <[email protected]> schrieb im Newsbeitrag
    news:[email protected]...
    Hi,
    I'm trying to deploy a simple EJB webservice example on WLS 9.1. The appc
    compile works fine, but the server deployment throw the following error
    message:
    [java] port component "Hello" is not found in wsdl.
    It's simple JAX-RPC based webservice where a SessionBean method is used as
    the service implementation. The same configuration (webservice.xml,
    mapping.xml and HelloService.wsdl) works fine under JBoss 4.0, but notwith
    WLS 9.1. Maybe it's a simple configuration error and someone can help.
    Regards
    Guido
    Appendix
    webservice.xml
    <webservices xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1\.xsd"
    version="1.1">
    <webservice-description>
    <webservice-description-name>HelloService</webservice-description-name>
    <wsdl-file>META-INF/wsdl/HelloService.wsdl</wsdl-file>
    <jaxrpc-mapping-file>META-INF/mapping.xml</jaxrpc-mapping-file>
    <port-component>
    <port-component-name>Hello</port-component-name>
    <wsdl-port>HelloPort</wsdl-port>
    <service-endpoint-interface>com.jcoffee.components.ws.Hello</service-endpoin
    t-interface>
    <service-impl-bean>
    <ejb-link>HelloBean</ejb-link>
    </service-impl-bean>
    </port-component>
    </webservice-description>
    </webservices>
    mapping.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <java-wsdl-mapping version="1.1" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd">
    <package-mapping>
    <package-type>com.jcoffee.components.ws</package-type>
    <namespaceURI>http://ws.components.jcoffee.com/types</namespaceURI>
    </package-mapping>
    <package-mapping>
    <package-type>com.jcoffee.components.ws</package-type>
    <namespaceURI>http://ws.components.jcoffee.com/</namespaceURI>
    </package-mapping>
    <service-interface-mapping>
    <service-interface>com.jcoffee.components.ws.HelloService</service-interface
    >>
    <wsdl-service-name
    xmlns:serviceNS="http://ws.components.jcoffee.com/">serviceNS:HelloService</
    wsdl-service-name>
    <port-mapping>
    <port-name>HelloPort</port-name>
    <java-port-name>HelloPort</java-port-name>
    </port-mapping>
    </service-interface-mapping>
    <service-endpoint-interface-mapping>
    <service-endpoint-interface>com.jcoffee.components.ws.Hello</service-endpoin
    t-interface>
    <wsdl-port-type
    xmlns:portTypeNS="http://ws.components.jcoffee.com/">portTypeNS:Hello</wsdl-
    port-type>
    <wsdl-binding
    xmlns:bindingNS="http://ws.components.jcoffee.com/">bindingNS:HelloBinding</
    wsdl-binding>
    <service-endpoint-method-mapping>
    <java-method-name>hello</java-method-name>
    <wsdl-operation>hello</wsdl-operation>
    <method-param-parts-mapping>
    <param-position>0</param-position>
    <param-type>java.lang.String</param-type>
    <wsdl-message-mapping>
    <wsdl-message
    xmlns:wsdlMsgNS="http://ws.components.jcoffee.com/">wsdlMsgNS:Hello_hello</w
    sdl-message>
    <wsdl-message-part-name>String_1</wsdl-message-part-name>
    <parameter-mode>IN</parameter-mode>
    </wsdl-message-mapping>
    </method-param-parts-mapping>
    <wsdl-return-value-mapping>
    <method-return-value>java.lang.String</method-return-value>
    <wsdl-message
    xmlns:wsdlMsgNS="http://ws.components.jcoffee.com/">wsdlMsgNS:Hello_helloRes
    ponse</wsdl-message>
    <wsdl-message-part-name>result</wsdl-message-part-name>
    </wsdl-return-value-mapping>
    </service-endpoint-method-mapping>
    </service-endpoint-interface-mapping>
    </java-wsdl-mapping>
    HelloService.wsdl
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions name="HelloService"
    targetNamespace="http://ws.components.jcoffee.com/"
    xmlns:tns="http://ws.components.jcoffee.com/"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
    <types/>
    <message name="Hello_hello">
    <part name="String_1" type="xsd:string"/>
    </message>
    <message name="Hello_helloResponse">
    <part name="result" type="xsd:string"/>
    </message>
    <portType name="Hello">
    <operation name="hello" parameterOrder="String_1">
    <input message="tns:Hello_hello"/>
    <output message="tns:Hello_helloResponse"/>
    </operation>
    </portType>
    <binding name="HelloBinding" type="tns:Hello">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
    style="rpc"/>
    >
    >
    <operation name="hello">
    <soap:operation soapAction=""/>
    <input>
    <soap:body use="literal" namespace="http://ws.components.jcoffee.com/"/>
    </input>
    <output>
    <soap:body use="literal" namespace="http://ws.components.jcoffee.com/"/>
    </output>
    </operation>
    </binding>
    <service name="HelloService">
    <port name="HelloPort" binding="tns:HelloBinding">
    <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
    </port>
    </service>
    </definitions>
    and last but not least the ejb-jar.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" version="2.1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
    <display-name>JCoffee web service sample</display-name>
    <enterprise-beans>
    <session>
    <ejb-name>HelloBean</ejb-name>
    <service-endpoint>com.jcoffee.components.ws.Hello</service-endpoint>
    <ejb-class>com.jcoffee.components.ws.HelloBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Container</transaction-type>
    </session>
    </enterprise-beans>
    <assembly-descriptor>
    <method-permission>
    <unchecked/>
    <method>
    <ejb-name>HelloBean</ejb-name>
    <method-name>*</method-name>
    </method>
    </method-permission>
    <container-transaction>
    <method>
    <ejb-name>HelloBean</ejb-name>
    <method-name>*</method-name>
    </method>
    <trans-attribute>Required</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>

  • Entity row with key oracle.jbo.Key is not found in EO

    Hi,
    We are using jDev 11.1.1.5.0.
    I am facing the issue Entity row with key oracle.jbo.Key is not found in my entity object.
    I have EO based VO and I am performing some operations on the VO. Based on user actions on UI, I need delete some records of the entity and I am using stored proc to delete those records and committing the changes in stored proc it self. After invoking stored procedure I am committing the changes performed in UI using ADF bindings.
    While invoking Commit from ADf I getting below error
    {code:java}
    <ADFLogger> <addContextData> Entity read all attributes
    <OracleSQLBuilderImpl> <rollbackToSavepoint> [139913] OracleSQLBuilder: ROLLBACK WORK TO SAVEPOINT 'BO_SP'
    <ADFLogger> <addContextData> Commit transaction
    <DCBindingContainer> <reportException> [139914] DCBindingContainer.reportException :oracle.jbo.RowAlreadyDeletedException
    <DCBindingContainer> <reportException> [139915] oracle.jbo.RowAlreadyDeletedException: JBO-25019: Entity row with key oracle.jbo.Key [204635 124 202810 N ] is not found in EO.
      at oracle.jbo.server.OracleSQLBuilderImpl.doEntitySelectForAltKey(OracleSQLBuilderImpl.java:878)
      at oracle.jbo.server.BaseSQLBuilderImpl.doEntitySelect(BaseSQLBuilderImpl.java:553)
      at oracle.jbo.server.EntityImpl.doSelect(EntityImpl.java:8259)
      at oracle.jbo.server.EntityImpl.lock(EntityImpl.java:5964)
      at oracle.jbo.server.EntityImpl.beforePost(EntityImpl.java:6484)
      at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:6665)
      at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:3286)
      at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:3089)
      at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2093)
      at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2374)
      at oracle.adf.model.bc4j.DCJboDataControl.commitTransaction(DCJboDataControl.java:1608)
      at oracle.adf.model.binding.DCDataControl.callCommitTransaction(DCDataControl.java:1416)
      at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1437)
      at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2149)
      at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:740)
      at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.executeEvent(PageLifecycleImpl.java:402)
      at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding._execute(FacesCtrlActionBinding.java:252)
      at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding.execute(FacesCtrlActionBinding.java:210)
    {code}
    Please let me know if you have any pointers to resolve this.
    Thanks,
    Satya

    Where you are calling stored procedure which deletes records in the DB ?
    Try to override doDML() i your entity impl, as follows:
    protected void doDML(int operation, TransactionEvent e) {
         if(operation == DML_DELETE)    
              call_your_storedProc_here();
         else
             super.doDML(operation, e);
    Also, ensure that the procedure deletes the same set of records as well you in the middle tier.

  • Class not Found Exception while running an EJB

    I have created and published a EJB in Oracle 8i (in a particular
    schema) by running the deployejb tool supplied. The ejb was
    published successfully. On running the client program I get an
    error saying that the mybeans's HomeHelper class cannot be
    found. This error occurs when there is a lookup to the home
    interface of the bean. The exception thrown says Reasons are
    unknown. On checking the objects of type 'JAVA CLASS' I found
    that the homeHelper class object had been created automatically
    be the deploy process. What is the reason for the class not
    found exception and what can I do to correct it. ?
    The code for the beans is as given below :
    Home Interface
    package mituser ;
    import javax.ejb.*;
    import java.rmi.RemoteException;
    public interface MITUserHome extends EJBHome {
    public MITUser create()
    throws CreateException, RemoteException;
    Remote Interface
    package mituser ;
    import javax.ejb.EJBObject;
    import java.rmi.RemoteException;
    public interface MITUser extends EJBObject {
    public int validateUserName (String username)
    throws java.sql.SQLException, RemoteException;
    public int validatePassword (String username, String password)
    throws java.sql.SQLException, RemoteException;
    public String validateSearchAccess (String username, String
    password)
    throws java.sql.SQLException, RemoteException;
    Bean
    package mituserServer ;
    import java.sql.*;
    import java.rmi.RemoteException;
    import javax.ejb.*;
    public class MITUserBean implements SessionBean {
    SessionContext ctx;
    public void ejbCreate() throws CreateException,
    RemoteException {
    public void ejbActivate() {
    public void ejbPassivate() {
    public void ejbRemove() {
    public void setSessionContext(SessionContext ctx) {
    this.ctx = ctx;
    public int validateUserName (String username) throws
    SQLException, RemoteException
    int count = 0 ;
    Connection conn =
    new oracle.jdbc.driver.OracleDriver().defaultConnection ();
    PreparedStatement ps =
    conn.prepareStatement ("select count(username) from
    useraccountinfo where username = ?");
    try {
    ps.setString (1, username);
    ResultSet rset = ps.executeQuery ();
    if (!rset.next ())
    throw new RemoteException ("no registered user with User
    Name " + username);
    count = rset.getShort(1) ;
    return count ;
    } finally {
    ps.close();
    public int validatePassword (String username, String password)
    throws SQLException, RemoteException
    int count = 0 ;
    Connection conn =
    new oracle.jdbc.driver.OracleDriver().defaultConnection ();
    PreparedStatement ps =
    conn.prepareStatement ("select count(username) from
    useraccountinfo where username = ? and password = ?");
    try {
    ps.setString (1, username);
    ps.setString(2, password);
    ResultSet rset = ps.executeQuery ();
    if (!rset.next ())
    throw new RemoteException ("Invalid Password ");
    count = rset.getShort(1) ;
    return count ;
    } finally {
    ps.close();
    public String validateSearchAccess (String username, String
    password) throws SQLException, RemoteException
    String searchaccess = "" ;
    Connection conn =
    new oracle.jdbc.driver.OracleDriver().defaultConnection ();
    PreparedStatement ps =
    conn.prepareStatement ("select searchprofileaccess from
    useraccountinfo where username = ? and password = ?");
    try {
    ps.setString (1, username);
    ps.setString(2, password);
    ResultSet rset = ps.executeQuery ();
    if (!rset.next ())
    throw new RemoteException ("Access Denied for " +
    username );
    searchaccess = rset.getString(1) ;
    return searchaccess ;
    } finally {
    ps.close();
    Client program
    import mituser.MITUser;
    import mituser.MITUserHome;
    import oracle.aurora.jndi.sess_iiop.ServiceCtx;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import java.util.Hashtable;
    public class Client {
    public static void main (String [] args) throws Exception {
    int count = 0 ;
    String access = "" ;
    if (args.length != 4) {
    System.out.println("usage: Client serviceURL objectName
    user password");
    System.exit(1);
    String serviceURL = args [0];
    String objectName = args [1];
    String user = args [2];
    String password = args [3];
    Hashtable env = new Hashtable();
    env.put(Context.URL_PKG_PREFIXES, "oracle.aurora.jndi");
    env.put(Context.SECURITY_PRINCIPAL, user);
    env.put(Context.SECURITY_CREDENTIALS, password);
    env.put(Context.SECURITY_AUTHENTICATION,
    ServiceCtx.NON_SSL_LOGIN);
    Context ic = new InitialContext(env);
    MITUserHome home = (MITUserHome)ic.lookup (serviceURL +
    objectName);
    MITUser testBean = home.create ();
    count = testBean.validateUserName("MITA");
    if (count > 0 )
    System.out.println ("Valid User");
    else
    System.out.println ("Invalid User");
    count = testBean.validatePassword("MITA", "MITA");
    if (count > 0 )
    System.out.println ("Valid Password");
    else
    System.out.println ("Invalid Password");
    access = testBean.validateSearchAccess("MITA", "MITA");
    if ( access.equalsIgnoreCase("YES") )
    System.out.println ("Search Access Available");
    else
    System.out.println ("Search Access Denied");
    The Descriptor file
    // MIT UserBean EJB deployment descriptor
    SessionBean mituserServer.MITUserBean {
    BeanHomeName = "test/mitUserJDBCBean";
    RemoteInterfaceClassName = mituser.MITUser;
    HomeInterfaceClassName = mituser.MITUserHome;
    AllowedIdentities = {MIT};
    SessionTimeout = 20;
    StateManagementType = STATEFUL_SESSION;
    RunAsMode = CLIENT_IDENTITY;
    TransactionAttribute = TX_REQUIRED;
    Batch File for deploying the ejb
    @echo off
    if (%ORACLE_HOME%)==() goto usage
    if (%ORACLE_SERVICE%)==() goto usage
    if (%JDK_CLASSPATH%)==() goto usage
    @echo on
    set CLASSPATH=.;%ORACLE_HOME%\lib\aurora_client.jar;%ORACLE_HOME%
    \jdbc\lib\classes111.zip;%ORACLE_HOME%\sqlj\lib\translator.zip;%
    ORACLE_HOME%\lib\vbjorb.jar;%ORACLE_HOME%\lib\vbjapp.jar;%
    JDK_CLASSPATH%
    javac -g mituser\MITUser.java
    javac -g mituser\MITUserHome.java
    javac -g mituserServer\MITUserBean.java
    jar cf0 mituser.jar mituser\MITUser.class
    mituser\MITUserHome.class mituserServer\MITUserBean.class
    javac -g Client.java
    call deployejb -republish -temp temp -u mit -p mit -s %
    ORACLE_SERVICE% -descriptor mituser.ejb mituser.jar
    @echo off
    goto done
    :usage
    @echo -------------------------------------------------------
    @echo Following are the requirements to run this script
    @echo set ORACLE_HOME to installed Oracle home
    @echo set ORACLE_SERVICE to the CORBA service name of
    your databae
    @echo for example sess_iiop://localhost:2481:ORCL
    @echo set JDK_CLASSPATH to the full path of your JDK
    classes.zip
    @echo -------------------------------------------------------
    :done
    Batch file for running the cleint program
    @echo off
    if (%ORACLE_HOME%)==() goto usage
    if (%ORACLE_SERVICE%)==() goto usage
    if (%JDK_CLASSPATH%)==() goto usage
    @echo on
    set CLASSPATH=.;%ORACLE_HOME%\lib\aurora_client.jar;%ORACLE_HOME%
    \jdbc\lib\classes111.zip;%ORACLE_HOME%\sqlj\lib\translator.zip;%
    ORACLE_HOME%\lib\vbjorb.jar;%ORACLE_HOME%\lib\vbjapp.jar;%
    JDK_CLASSPATH%;server_generated.jar
    java Client %ORACLE_SERVICE% /test/mitUserJDBCBean mit mit
    @echo off
    goto done
    :usage
    @echo -------------------------------------------------------
    @echo Following are the requirements to run this script
    @echo set ORACLE_HOME to installed Oracle home
    @echo set ORACLE_SERVICE to the CORBA service name of
    your databae
    @echo for example sess_iiop://localhost:2481:ORCL
    @echo set JDK_CLASSPATH to the full path of your JDK
    classes.zip
    @echo -------------------------------------------------------
    :done
    I know this is not strictly to do with JDBC but there appears to
    be no discussion forum for EJB
    Hoping for a response soon as it us very URGENT
    Thanks
    Mita
    null

    I have created and published a EJB in Oracle 8i (in a particular
    schema) by running the deployejb tool supplied. The ejb was
    published successfully. On running the client program I get an
    error saying that the mybeans's HomeHelper class cannot be
    found. This error occurs when there is a lookup to the home
    interface of the bean. The exception thrown says Reasons are
    unknown. On checking the objects of type 'JAVA CLASS' I found
    that the homeHelper class object had been created automatically
    be the deploy process. What is the reason for the class not
    found exception and what can I do to correct it. ?
    The code for the beans is as given below :
    Home Interface
    package mituser ;
    import javax.ejb.*;
    import java.rmi.RemoteException;
    public interface MITUserHome extends EJBHome {
    public MITUser create()
    throws CreateException, RemoteException;
    Remote Interface
    package mituser ;
    import javax.ejb.EJBObject;
    import java.rmi.RemoteException;
    public interface MITUser extends EJBObject {
    public int validateUserName (String username)
    throws java.sql.SQLException, RemoteException;
    public int validatePassword (String username, String password)
    throws java.sql.SQLException, RemoteException;
    public String validateSearchAccess (String username, String
    password)
    throws java.sql.SQLException, RemoteException;
    Bean
    package mituserServer ;
    import java.sql.*;
    import java.rmi.RemoteException;
    import javax.ejb.*;
    public class MITUserBean implements SessionBean {
    SessionContext ctx;
    public void ejbCreate() throws CreateException,
    RemoteException {
    public void ejbActivate() {
    public void ejbPassivate() {
    public void ejbRemove() {
    public void setSessionContext(SessionContext ctx) {
    this.ctx = ctx;
    public int validateUserName (String username) throws
    SQLException, RemoteException
    int count = 0 ;
    Connection conn =
    new oracle.jdbc.driver.OracleDriver().defaultConnection ();
    PreparedStatement ps =
    conn.prepareStatement ("select count(username) from
    useraccountinfo where username = ?");
    try {
    ps.setString (1, username);
    ResultSet rset = ps.executeQuery ();
    if (!rset.next ())
    throw new RemoteException ("no registered user with User
    Name " + username);
    count = rset.getShort(1) ;
    return count ;
    } finally {
    ps.close();
    public int validatePassword (String username, String password)
    throws SQLException, RemoteException
    int count = 0 ;
    Connection conn =
    new oracle.jdbc.driver.OracleDriver().defaultConnection ();
    PreparedStatement ps =
    conn.prepareStatement ("select count(username) from
    useraccountinfo where username = ? and password = ?");
    try {
    ps.setString (1, username);
    ps.setString(2, password);
    ResultSet rset = ps.executeQuery ();
    if (!rset.next ())
    throw new RemoteException ("Invalid Password ");
    count = rset.getShort(1) ;
    return count ;
    } finally {
    ps.close();
    public String validateSearchAccess (String username, String
    password) throws SQLException, RemoteException
    String searchaccess = "" ;
    Connection conn =
    new oracle.jdbc.driver.OracleDriver().defaultConnection ();
    PreparedStatement ps =
    conn.prepareStatement ("select searchprofileaccess from
    useraccountinfo where username = ? and password = ?");
    try {
    ps.setString (1, username);
    ps.setString(2, password);
    ResultSet rset = ps.executeQuery ();
    if (!rset.next ())
    throw new RemoteException ("Access Denied for " +
    username );
    searchaccess = rset.getString(1) ;
    return searchaccess ;
    } finally {
    ps.close();
    Client program
    import mituser.MITUser;
    import mituser.MITUserHome;
    import oracle.aurora.jndi.sess_iiop.ServiceCtx;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import java.util.Hashtable;
    public class Client {
    public static void main (String [] args) throws Exception {
    int count = 0 ;
    String access = "" ;
    if (args.length != 4) {
    System.out.println("usage: Client serviceURL objectName
    user password");
    System.exit(1);
    String serviceURL = args [0];
    String objectName = args [1];
    String user = args [2];
    String password = args [3];
    Hashtable env = new Hashtable();
    env.put(Context.URL_PKG_PREFIXES, "oracle.aurora.jndi");
    env.put(Context.SECURITY_PRINCIPAL, user);
    env.put(Context.SECURITY_CREDENTIALS, password);
    env.put(Context.SECURITY_AUTHENTICATION,
    ServiceCtx.NON_SSL_LOGIN);
    Context ic = new InitialContext(env);
    MITUserHome home = (MITUserHome)ic.lookup (serviceURL +
    objectName);
    MITUser testBean = home.create ();
    count = testBean.validateUserName("MITA");
    if (count > 0 )
    System.out.println ("Valid User");
    else
    System.out.println ("Invalid User");
    count = testBean.validatePassword("MITA", "MITA");
    if (count > 0 )
    System.out.println ("Valid Password");
    else
    System.out.println ("Invalid Password");
    access = testBean.validateSearchAccess("MITA", "MITA");
    if ( access.equalsIgnoreCase("YES") )
    System.out.println ("Search Access Available");
    else
    System.out.println ("Search Access Denied");
    The Descriptor file
    // MIT UserBean EJB deployment descriptor
    SessionBean mituserServer.MITUserBean {
    BeanHomeName = "test/mitUserJDBCBean";
    RemoteInterfaceClassName = mituser.MITUser;
    HomeInterfaceClassName = mituser.MITUserHome;
    AllowedIdentities = {MIT};
    SessionTimeout = 20;
    StateManagementType = STATEFUL_SESSION;
    RunAsMode = CLIENT_IDENTITY;
    TransactionAttribute = TX_REQUIRED;
    Batch File for deploying the ejb
    @echo off
    if (%ORACLE_HOME%)==() goto usage
    if (%ORACLE_SERVICE%)==() goto usage
    if (%JDK_CLASSPATH%)==() goto usage
    @echo on
    set CLASSPATH=.;%ORACLE_HOME%\lib\aurora_client.jar;%ORACLE_HOME%
    \jdbc\lib\classes111.zip;%ORACLE_HOME%\sqlj\lib\translator.zip;%
    ORACLE_HOME%\lib\vbjorb.jar;%ORACLE_HOME%\lib\vbjapp.jar;%
    JDK_CLASSPATH%
    javac -g mituser\MITUser.java
    javac -g mituser\MITUserHome.java
    javac -g mituserServer\MITUserBean.java
    jar cf0 mituser.jar mituser\MITUser.class
    mituser\MITUserHome.class mituserServer\MITUserBean.class
    javac -g Client.java
    call deployejb -republish -temp temp -u mit -p mit -s %
    ORACLE_SERVICE% -descriptor mituser.ejb mituser.jar
    @echo off
    goto done
    :usage
    @echo -------------------------------------------------------
    @echo Following are the requirements to run this script
    @echo set ORACLE_HOME to installed Oracle home
    @echo set ORACLE_SERVICE to the CORBA service name of
    your databae
    @echo for example sess_iiop://localhost:2481:ORCL
    @echo set JDK_CLASSPATH to the full path of your JDK
    classes.zip
    @echo -------------------------------------------------------
    :done
    Batch file for running the cleint program
    @echo off
    if (%ORACLE_HOME%)==() goto usage
    if (%ORACLE_SERVICE%)==() goto usage
    if (%JDK_CLASSPATH%)==() goto usage
    @echo on
    set CLASSPATH=.;%ORACLE_HOME%\lib\aurora_client.jar;%ORACLE_HOME%
    \jdbc\lib\classes111.zip;%ORACLE_HOME%\sqlj\lib\translator.zip;%
    ORACLE_HOME%\lib\vbjorb.jar;%ORACLE_HOME%\lib\vbjapp.jar;%
    JDK_CLASSPATH%;server_generated.jar
    java Client %ORACLE_SERVICE% /test/mitUserJDBCBean mit mit
    @echo off
    goto done
    :usage
    @echo -------------------------------------------------------
    @echo Following are the requirements to run this script
    @echo set ORACLE_HOME to installed Oracle home
    @echo set ORACLE_SERVICE to the CORBA service name of
    your databae
    @echo for example sess_iiop://localhost:2481:ORCL
    @echo set JDK_CLASSPATH to the full path of your JDK
    classes.zip
    @echo -------------------------------------------------------
    :done
    I know this is not strictly to do with JDBC but there appears to
    be no discussion forum for EJB
    Hoping for a response soon as it us very URGENT
    Thanks
    Mita
    null

Maybe you are looking for

  • Possible 10.1.2.1 bug

    I have a problem with a 10.1.2.1 generated uix application. I have a master-detail table relationship, lets say Departments -> Employees and have generated corresponding pages (both with table layout style). This generates a DepartmentTable.uix page

  • Tried to backup iCal now it's a READ-ONLY calendar! Help!!!

    I tried to backup my calendar before I attempt to install the Missing Sync to link my iCal to my Blackberry..I ended up getting a calendar with Most of my entries duplicated and now my calendar says its "read-only" so I can't modify it..I TOTALLY dep

  • RoboHelp HTML 8

    I cannot view a selected item.  I click on the glasses and nothing happens.  It was working fine yesterday.

  • ColdFusion caching WSDL credentials

    We are running ColdFusion 9 (version 9.0.1.274733) on Windows 2003 with IIS 6.  The server is shared across a few different groups within our organization each with more than one active development project currently underway. 3 of the projects are at

  • MS Security Update 896358 (Jun 2005) - has Adobe fixed this remote .chm problem yet??  Use another extension (not .chm)

    I have RH 11.  .chm extensions obviously were rendered useless remotely.  Cannot undo the security thigns via the registry hacks that have bounded around the last 8+ years. Has Adobe ever addressed this and fixed the vulnerability? Do any of the othe