1 Reply Latest reply on Apr 22, 2003 6:13 PM by cvandyck

    Unexpected JBoss 3.x EJB-QL-related deployment behavior

    cvandyck

      Jboss is running our application very smoothly (our site http://contentxml.com is managed with a CMS we wrote using JBoss), but we're having trouble with some custom finders in our entity beans. We've created a small project below that has only two entities and no other beans. We need to support JBoss 3.x for our customers, and we've seen this issue appear in the 3.x series.

      When we deploy, we get the following error message:

      17:52:34,187 WARN [verifier] EJB spec violation:
      Bean : TestEntity
      Section: 22.2
      Warning: The bean provider must specify the fully-qualified name of the enterprise bean's remote interface, if any, in the element.
      Info : Class not found: SELECT OBJECT(t) FROM CollinSchema AS t WHERE t.name = ?1SELECT OBJECT(t) FROM CollinSchema AS t WHERE t
      .uid = ?1SELECT OBJECT(t) FROM CollinSchema AS t WHERE t.id = ?1test.interfaces.TestEntity

      17:52:34,187 WARN [verifier] EJB spec violation:
      Bean : TestEntity
      Section: 10.6.1
      Warning: The Bean Provider must provide a remote interface and a remote home interface or a local interface and a local home inter
      face for the bean.

      ...........

      We have two Beans: TestEntity and Collin. Collin defines three custom queries, and TestEntity defines one. Oddly enough, the beans will deploy correctly if we remove one of the three finders (it does not matter which one). We're trying to get a handle on why this problem is happening in the first place.

      Here are the queries for Collin:

      * @ejb:finder
      * signature="test.interfaces.Collin findByName(java.lang.String name)"
      * query="SELECT OBJECT(t) FROM CollinSchema AS t WHERE t.name = ?1"
      *
      * @ejb:finder
      * signature="test.interfaces.Collin findByUid(java.lang.String uid)"
      * query="SELECT OBJECT(t) FROM CollinSchema AS t WHERE t.uid = ?1"
      *
      * @ejb:finder
      * signature="test.interfaces.Collin findById(java.lang.String id)"
      * query="SELECT OBJECT(t) FROM CollinSchema AS t WHERE t.id = ?1"

      and here are the queries for TestEntity:

      * @ejb:finder
      * signature="java.util.Collection findAll()"
      * query="SELECT OBJECT(p) FROM TestEntitySchema AS p"

      ..........

      I've attached these bean files, along with the ejb-jar.xml file, which is we believe causing the errors when JBoss processes it. The error messsage above claims that the remote interface was not fully qualified, but it actually IS in the ejb-jar.xml file.

      Any help would be appreciated!

      thanks,--
      Collin