Avatar billede dennish Nybegynder
18. november 2005 - 01:39 Der er 4 kommentarer og
1 løsning

EJQ-QL fejl

jeg har følgende:

JSP -servlet - sessionBean - EntityBean på en Jboss 4.0.3

EntityBean:

Customer.java // local interface
CustomerBean.java // Entitybean
CustomerHome.java // Localhome interface



Jeg prøver at få en finder findByName metode til at virke MEN uden held.
NB: Jeg kan godt få kontakt til database ved at bruge findByPrimaryKey(). Jeg får en deploy fejl efter at jeg har tilføjet findByName i interfacet og ejb.jar.xml filen.

// localHome Interface


public interface CustomerHome extends EJBLocalHome
{
public Customer create(String name, String password, String role) throws CreateException;
public Collection findByName(String name)throws FinderException;
public Customer findByPrimaryKey(String key)throws FinderException;
}

// ejb.jar.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
<ejb-jar>
  <enterprise-beans>
    <!-- =============================================================================== -->
    <!-- SESSION BEAN                                                   -->
    <!-- =============================================================================== -->
      <session>
          <ejb-name>UserManagerEJB</ejb-name>
          <home>userManager.UserManagerHome</home>
          <remote>userManager.UserManager</remote>
          <ejb-class>userManager.UserManagerBean</ejb-class>
          <session-type>Stateless</session-type>
          <transaction-type>Container</transaction-type>
      </session>
    <entity>
    <!-- =============================================================================== -->
    <!-- ENTITY BEAN                                                   -->
    <!-- =============================================================================== -->
      <ejb-name>CustomerEJB</ejb-name>
    <local-home>customer.CustomerHome</local-home>
        <local>customer.Customer</local>
        <ejb-class>customer.CustomerBean</ejb-class>
        <persistence-type>Container</persistence-type>
        <prim-key-class>java.lang.String</prim-key-class>
        <reentrant>False</reentrant>
        <cmp-version>2.x</cmp-version>
        <abstract-schema-name>Customer</abstract-schema-name>
        <cmp-field >
            <field-name>username</field-name>
        </cmp-field>
        <cmp-field >
            <field-name>password</field-name>
        </cmp-field>
        <cmp-field >
            <field-name>role</field-name>
          </cmp-field>   
        <primkey-field>username</primkey-field>
    <!-- =============================================================================== -->
    <!-- EJB QL                                                      -->
    <!-- =============================================================================== -->
    <query>
        <query-method>
          <method-name>findByName</method-name>
          <method-params>
            <method-param>java.lang.String</method-param>
          </method-params>
        </query-method>
        <ejb-ql>SELECT OBJECT(p) FROM customer p WHERE p.username = ?1
        </ejb-ql>
      </query>
    </entity>
</enterprise-beans>
</ejb-jar>

// fejle fra jboss

Was expecting one of:
    "IN" ...
    <ABSTRACT_SCHEMA> ...
    )

--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: jboss.j2ee:jndiName=customer,service=EJB
  State: FAILED
  Reason: org.jboss.deployment.DeploymentException: Error compiling EJB-QL statement 'SELECT OBJECT(p) FROM customer p WHERE p.username = ?1'; - nested throwable: (org.jboss.ejb.plugins.cmp.ejbql.ParseException: Encountered "customer" at line 1, column 23.
Was expecting one of:
    "IN" ...
    <ABSTRACT_SCHEMA> ...
    )

Nogen det ved hvad der går galt ???
Avatar billede dennish Nybegynder
18. november 2005 - 01:43 #1
min database ser således ud :

tabelnavn = customer

------------------------------
| Username | Password | Role |
-------------------------------
Avatar billede hacked Nybegynder
18. november 2005 - 02:50 #2
Customer med stort prøv det :) <abstract-schema-name>Customer</abstract-schema-name>
Avatar billede hacked Nybegynder
18. november 2005 - 02:51 #3
såvidt jeg ved er den casesensitive :)
Avatar billede dennish Nybegynder
18. november 2005 - 14:12 #4
malkor>> Ganske rigtigt det er case sensitivt. Fejlen var at jeg havde skrevet Username med stort U men username er defineret i jbosscmp-jdbc.xml med småt:

<field-name>username</field-name>
<column-name>Username</column-name>
Avatar billede hacked Nybegynder
18. november 2005 - 14:45 #5
:) - her er et halvt svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester