EJB QL with cmr field sintax error
Hello I have some EJBs related to some tables .
In particular I have 2 EJB with follow schema and relathionship:
EJB_T (n)<----------------------->(1) EJB_C
So I have the CMR field in EJB_C named transactions
THE query
SELECT OBJECT(trans) FROM EJB_C_NAME AS c, IN (c.transactions) AS trans WHERE c.id = ?2 AND trans.data >= ?1
It seems all ok but embeded OC4J (1.3.1) don't deploy application and throw an Exception related to QUERY PARSING .
can anyone help me ? please.
thanks in advance
OC4J used is 10g
Similar Messages
-
Netweaver Upgrade with EPHI - PostProcesing - Sintax error
HI Experts
Im using EPHI to upgrade my BI 7.0 SPS20 to BI EHP1 SPS5. After reach the POSTPROCESSING step,
the tool ask to run SPAU check on the system.
When i execute it SPAU load, but when i try to Reset to original any obj ( i have 2 reset ) the system
dumps with the following sintax error :
" Runtime Errors SYNTAX_ERROR
Date and Time 02.10.2009 23:00:34 "
Short text :Syntax error in program "CL_I18N_BIDI==================CP"
What happened?
Error in the ABAP Application Program
The current ABAP program "CL_GUI_ALV_GRID===============CP" had to be
terminated because it has
come across a statement that unfortunately cannot be executed.
The following syntax error occurred in program
"CL_I18N_BIDI==================CP " in include
"CL_I18N_BIDI==================CCAU " in
line 2: A class already exists with the name "LCL_UNITTEST_I18N_BIDI".
I check the logs in .../abap/log/ for ADJ errors but all the seems to be OK (no errors or warnings).
Could you kindly give some advices, Please
Daniel
Edited by: Daniel Ayarza on Oct 3, 2009 3:38 AMFULL DUMP
Runtime Errors SYNTAX_ERROR
Date and Time 02.10.2009 23:00:34
Short text :Syntax error in program "CL_I18N_BIDI==================CP"
What happened?
Error in the ABAP Application Program
The current ABAP program "CL_GUI_ALV_GRID===============CP" had to be
terminated because it has
come across a statement that unfortunately cannot be executed.
The following syntax error occurred in program
"CL_I18N_BIDI==================CP " in include
"CL_I18N_BIDI==================CCAU " in
line 2:
"A class already exists with the name "LCL_UNITTEST_I18N_BIDI"."
The include has been created and last changed by:
Created by: "SAP "
Last changed by: "SAP "
Error in the ABAP Application Program
The current ABAP program "CL_GUI_ALV_GRID===============CP" had to be
terminated because it has
come across a statement that unfortunately cannot be executed.
Error analysis
The following syntax error was found in the program
CL_I18N_BIDI==================CP :
"A class already exists with the name "LCL_UNITTEST_I18N_BIDI"."
Trigger Location of Runtime Error
Program CL_GUI_ALV_GRID===============CP
Include CL_GUI_ALV_GRID===============CM05S
Row 1
Module type (METHOD)
Module Name CHECK_FOR_BIDI_FLAG
Source Code Extract
Line SourceCde
>>>>> method CHECK_FOR_BIDI_FLAG.
2
3 check CL_I18N_BIDI=>BIDI_CTRL_CODES_ACTIVE eq abap_true.
4
5 data: fcat type lvc_s_fcat,
6 bidi type lvc_s_bidi_flag,
7 ret type i.
8
9 clear mt_bidi_flag.
10
11 loop at m_cl_variant->mt_fieldcatalog into fcat.
12 check not fcat-dd_roll is initial.
13
14 bidi-fieldname = fcat-fieldname.
15 CALL METHOD cl_i18n_bidi=>get_bidi_flags
16 EXPORTING
17 im_dtel = fcat-dd_roll
18 IMPORTING
19 EX_LTR_FLAG = bidi-ltr
20 EX_FILTER_FLAG = bidi-filter -
Beginner needs help with CMR field problem
Hello,
I have two ejbs, one called EstablishmentEJB and another called VisitorCommentsEJB. The relationship is of one EstablishmentEJB instance to many VisitorCommentsEJB instances.
Here are the definitions for the tables:
CREATE TABLE establishments (
DB_ESTABLISHMENT_ID int(11) NOT NULL default '0',
DB_POSTCODE varchar(100) NOT NULL default '',
DB_ESTABLISHMENT_NAME varchar(255) NOT NULL default '',
PRIMARY KEY (DB_ESTABLISHMENT_ID)
) TYPE=InnoDB;
CREATE TABLE visitors_comments (
DB_VISITOR_COMMENT_ID int(11) NOT NULL auto_increment,
DB_ESTABLISHMENT_ID int(11) NOT NULL default '0',
DB_COMMENT varchar(255) NOT NULL default '',
PRIMARY KEY (DB_VISITOR_COMMENT_ID)
) TYPE=InnoDB;Here are the xml DDs:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
<!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>
-->
<ejb-jar 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://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
version="2.1">
<description>test guide</description>
<display-name>test guide</display-name>
<enterprise-beans>
<!--===========Establishment================ -->
<entity>
<ejb-name>EstablishmentEJB</ejb-name>
<home>com.softwareag.test_guide.establishmentEJB.PGEstablishmentHome</home>
<remote>com.softwareag.test_guide.establishmentEJB.PGEstablishment</remote>
<local-home>com.softwareag.test_guide.establishmentEJB.PGEstablishmentLocalHome</local-home>
<local>com.softwareag.test_guide.establishmentEJB.PGEstablishmentLocal</local>
<ejb-class>com.softwareag.test_guide.establishmentEJB.PGEstablishmentBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>false</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>Establishment</abstract-schema-name>
<cmp-field>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<field-name>name</field-name>
</cmp-field>
<primkey-field>id</primkey-field>
</entity>
<!--===========Grade================ -->
<entity>
<ejb-name>GradeEJB</ejb-name>
<home>com.softwareag.test_guide.gradeEJB.PGGradeHome</home>
<remote>com.softwareag.test_guide.gradeEJB.PGGrade</remote>
<local-home>com.softwareag.test_guide.gradeEJB.PGGradeLocalHome</local-home>
<local>com.softwareag.test_guide.gradeEJB.PGGradeLocal</local>
<ejb-class>com.softwareag.test_guide.gradeEJB.PGGradeBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>false</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>Grade</abstract-schema-name>
<cmp-field>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<field-name>grade</field-name>
</cmp-field>
<primkey-field>id</primkey-field>
</entity>
<!--===========VisitorsComment================ -->
<entity>
<ejb-name>VisitorCommentEJB</ejb-name>
<home>com.softwareag.test_guide.visitorCommentEJB.PGVisitorCommentHome</home>
<remote>com.softwareag.test_guide.visitorCommentEJB.PGVisitorComment</remote>
<local-home>com.softwareag.test_guide.visitorCommentEJB.PGVisitorCommentLocalHome</local-home>
<local>com.softwareag.test_guide.visitorCommentEJB.PGVisitorCommentLocal</local>
<ejb-class>com.softwareag.test_guide.visitorCommentEJB.PGVisitorCommentBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>false</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>VisitorsComment</abstract-schema-name>
<cmp-field>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<field-name>comment</field-name>
</cmp-field>
<primkey-field>id</primkey-field>
</entity>
<!--===========Country================ -->
<entity>
<ejb-name>CountryEJB</ejb-name>
<home>com.softwareag.test_guide.countryEJB.PGCountryHome</home>
<remote>com.softwareag.test_guide.countryEJB.PGCountry</remote>
<local-home>com.softwareag.test_guide.countryEJB.PGCountryLocalHome</local-home>
<local>com.softwareag.test_guide.countryEJB.PGCountryLocal</local>
<ejb-class>com.softwareag.test_guide.countryEJB.PGCountryBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>false</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>Country</abstract-schema-name>
<cmp-field>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<field-name>countryName</field-name>
</cmp-field>
<primkey-field>id</primkey-field>
</entity>
<!--===========Category================ -->
<entity>
<ejb-name>CategoryEJB</ejb-name>
<home>com.softwareag.test_guide.categoryEJB.PGCategoryHome</home>
<remote>com.softwareag.test_guide.categoryEJB.PGCategory</remote>
<local-home>com.softwareag.test_guide.categoryEJB.PGCategoryLocalHome</local-home>
<local>com.softwareag.test_guide.categoryEJB.PGCategoryLocal</local>
<ejb-class>com.softwareag.test_guide.categoryEJB.PGCategoryBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>false</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>Category</abstract-schema-name>
<cmp-field>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<field-name>category</field-name>
</cmp-field>
<primkey-field>id</primkey-field>
</entity>
<!--===========SearchEngineValueListHandler================ -->
<session>
<ejb-name>PGSearchEngineValueListHandlerEJB</ejb-name>
<home>com.softwareag.test_guide.searchEngineEJB.PGSearchEngineValueListHandlerHome</home>
<remote>com.softwareag.test_guide.searchEngineEJB.PGSearchEngineValueListHandler</remote>
<local-home>com.softwareag.test_guide.searchEngineEJB.PGSearchEngineValueListHandlerLocalHome</local-home>
<local>com.softwareag.test_guide.searchEngineEJB.PGSearchEngineValueListHandlerLocal</local>
<ejb-class>com.softwareag.test_guide.searchEngineEJB.PGSearchEngineValueListHandlerBean</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
<resource-ref>
<res-ref-name>jdbc/test_guia</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Application</res-auth>
</resource-ref>
</session>
<!--===========SessionFacade================ -->
<session>
<ejb-name>PGSessionFacadeEJB</ejb-name>
<home>com.softwareag.test_guide.sessionFacadeEJB.PGSessionFacadeHome</home>
<remote>com.softwareag.test_guide.sessionFacadeEJB.PGSessionFacade</remote>
<local-home>com.softwareag.test_guide.sessionFacadeEJB.PGSessionFacadeLocalHome</local-home>
<local>com.softwareag.test_guide.sessionFacadeEJB.PGSessionFacadeLocal</local>
<ejb-class>com.softwareag.test_guide.sessionFacadeEJB.PGSessionFacadeBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<resource-ref>
<res-ref-name>jdbc/test_guia</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Application</res-auth>
</resource-ref>
</session>
</enterprise-beans>
<relationships>
<!--===========Establishments-VisitorComments================-->
<ejb-relation>
<ejb-relation-name>Establishment-VisitorComment</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Establishment-has-many-comments</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source>
<ejb-name>EstablishmentEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>visitorComments</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>Comment-belongs-to-Establishment</ejb-relationship-role-name>
<multiplicity>Many</multiplicity>
<relationship-role-source>
<ejb-name>VisitorCommentEJB</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
<!--===========Establishments-Grades================-->
<ejb-relation>
<ejb-relation-name>Establishment-Grade</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Establishment-has-many-grades</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source>
<ejb-name>EstablishmentEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>grades</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>Grade-belongs-to-Establishment</ejb-relationship-role-name>
<multiplicity>Many</multiplicity>
<relationship-role-source>
<ejb-name>GradeEJB</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
<!--===========Establishments-Countries================-->
<ejb-relation>
<ejb-relation-name>Country-Establishment</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Country-has-many-establishments</ejb-relationship-role-name>
<!--========== One or Many here?? ==========-->
<multiplicity>Many</multiplicity>
<relationship-role-source>
<ejb-name>CountryEJB</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>Establishment-has-many-countries</ejb-relationship-role-name>
<multiplicity>Many</multiplicity>
<relationship-role-source>
<ejb-name>EstablishmentEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>countries</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
</ejb-relation>
<!--===========Establishments-Categories ================-->
<ejb-relation>
<ejb-relation-name>Establishment-Category</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Establishment-has-many-categories</ejb-relationship-role-name>
<multiplicity>Many</multiplicity>
<relationship-role-source>
<ejb-name>EstablishmentEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>categories</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>Category-has-many-establishments</ejb-relationship-role-name>
<multiplicity>Many</multiplicity>
<relationship-role-source>
<ejb-name>CategoryEJB</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
</relationships>
</ejb-jar>
<?xml version="1.0" encoding="ISO-8859-1"?>
<jonas-ejb-jar xmlns="http://www.objectweb.org/jonas/ns"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.objectweb.org/jonas/ns
http://www.objectweb.org/jonas/ns/jonas-ejb-jar_4_0.xsd" >
<!--
<!DOCTYPE jonas-ejb-jar PUBLIC "-//ObjectWeb//DTD JOnAS 3.2//EN" "http://www.objectweb.org/jonas/dtds/jonas-ejb-jar_3_2.dtd">
<jonas-ejb-jar>
-->
<!-- ===============SearchEngineValueListHandler=======================-->
<jonas-session>
<ejb-name>PGSearchEngineValueListHandlerEJB</ejb-name>
<jndi-name>PGSearchEngineValueListHandlerEJBHome</jndi-name>
<jonas-resource>
<res-ref-name>jdbc/test_guia</res-ref-name>
<jndi-name>test_guia</jndi-name>
</jonas-resource>
</jonas-session>
<!-- ===============SessionFacade=======================-->
<jonas-session>
<ejb-name>PGSessionFacadeEJB</ejb-name>
<jndi-name>PGSessionFacadeEJBHome</jndi-name>
<jonas-resource>
<res-ref-name>jdbc/test_guia</res-ref-name>
<jndi-name>test_guia</jndi-name>
</jonas-resource>
</jonas-session>
<!-- ===============Establishment=======================-->
<jonas-entity>
<ejb-name>EstablishmentEJB</ejb-name>
<jndi-name>PGEstablishmentHome</jndi-name>
<cleanup>none</cleanup>
<jdbc-mapping>
<jndi-name>test_guia</jndi-name>
<jdbc-table-name>ESTABLISHMENTS</jdbc-table-name>
<cmp-field-jdbc-mapping>
<field-name>id</field-name>
<jdbc-field-name>DB_ESTABLISHMENT_ID</jdbc-field-name>
</cmp-field-jdbc-mapping>
<cmp-field-jdbc-mapping>
<field-name>name</field-name>
<jdbc-field-name>DB_ESTABLISHMENT_NAME</jdbc-field-name>
</cmp-field-jdbc-mapping>
</jdbc-mapping>
</jonas-entity>
<!-- ===============Grade=======================-->
<jonas-entity>
<ejb-name>GradeEJB</ejb-name>
<jndi-name>PGgradeHome</jndi-name>
<cleanup>none</cleanup>
<jdbc-mapping>
<jndi-name>test_guia</jndi-name>
<jdbc-table-name>GRADES</jdbc-table-name>
<cmp-field-jdbc-mapping>
<field-name>id</field-name>
<jdbc-field-name>DB_GRADE_ID</jdbc-field-name>
</cmp-field-jdbc-mapping>
<cmp-field-jdbc-mapping>
<field-name>grade</field-name>
<jdbc-field-name>DB_GRADE</jdbc-field-name>
</cmp-field-jdbc-mapping>
<!--
<cmp-field-jdbc-mapping>
<field-name>establishment_id</field-name>
<jdbc-field-name>DB_ESTABLISHMENT_ID</jdbc-field-name>
</cmp-field-jdbc-mapping>
-->
</jdbc-mapping>
</jonas-entity>
<!-- ===============Visitor�s comments=======================-->
<jonas-entity>
<ejb-name>VisitorCommentEJB</ejb-name>
<jndi-name>PGVisitorCommentHome</jndi-name>
<cleanup>none</cleanup>
<jdbc-mapping>
<jndi-name>test_guia</jndi-name>
<jdbc-table-name>VISITORS_COMMENTS</jdbc-table-name>
<cmp-field-jdbc-mapping>
<field-name>id</field-name>
<jdbc-field-name>DB_VISITOR_COMMENT_ID</jdbc-field-name>
</cmp-field-jdbc-mapping>
<cmp-field-jdbc-mapping>
<field-name>comment</field-name>
<jdbc-field-name>DB_COMMENT</jdbc-field-name>
</cmp-field-jdbc-mapping>
<!--
<cmp-field-jdbc-mapping>
<field-name>establishment_id</field-name>
<jdbc-field-name>DB_ESTABLISHMENT_ID</jdbc-field-name>
</cmp-field-jdbc-mapping>
-->
</jdbc-mapping>
</jonas-entity>
<!-- ===============Countries=======================-->
<jonas-entity>
<ejb-name>CountryEJB</ejb-name>
<jndi-name>PGcountryHome</jndi-name>
<cleanup>none</cleanup>
<jdbc-mapping>
<jndi-name>test_guia</jndi-name>
<jdbc-table-name>COUNTRIES</jdbc-table-name>
<cmp-field-jdbc-mapping>
<field-name>id</field-name>
<jdbc-field-name>DB_COUNTRY_ID</jdbc-field-name>
</cmp-field-jdbc-mapping>
<cmp-field-jdbc-mapping>
<field-name>countryName</field-name>
<jdbc-field-name>DB_COUNTRY_NAME_FR</jdbc-field-name>
</cmp-field-jdbc-mapping>
</jdbc-mapping>
</jonas-entity>
<!-- ===============Categories=======================-->
<jonas-entity>
<ejb-name>CategoryEJB</ejb-name>
<jndi-name>PGcategoryHome</jndi-name>
<cleanup>none</cleanup>
<jdbc-mapping>
<jndi-name>test_guia</jndi-name>
<jdbc-table-name>CATEGORIES</jdbc-table-name>
<cmp-field-jdbc-mapping>
<field-name>id</field-name>
<jdbc-field-name>DB_CATEGORY_ID</jdbc-field-name>
</cmp-field-jdbc-mapping>
<cmp-field-jdbc-mapping>
<field-name>category</field-name>
<jdbc-field-name>DB_CATEGORY_NAME_FR</jdbc-field-name>
</cmp-field-jdbc-mapping>
</jdbc-mapping>
</jonas-entity>
<!--===========Establishments-VisitorComments================-->
<jonas-ejb-relation>
<ejb-relation-name>Establishment-VisitorComment</ejb-relation-name>
<jonas-ejb-relationship-role>
<ejb-relationship-role-name>Comment-belongs-to-Establishment</ejb-relationship-role-name>
<foreign-key-jdbc-mapping>
<foreign-key-jdbc-name>DB_ESTABLISHMENT_ID</foreign-key-jdbc-name>
</foreign-key-jdbc-mapping>
</jonas-ejb-relationship-role>
</jonas-ejb-relation>
<!--===========Establishments-Grades================-->
<jonas-ejb-relation>
<ejb-relation-name>Establishment-Grade</ejb-relation-name>
<jonas-ejb-relationship-role>
<ejb-relationship-role-name>Grade-belongs-to-Establishment</ejb-relationship-role-name>
<foreign-key-jdbc-mapping>
<foreign-key-jdbc-name>DB_ESTABLISHMENT_ID</foreign-key-jdbc-name>
</foreign-key-jdbc-mapping>
</jonas-ejb-relationship-role>
</jonas-ejb-relation>
<!--===========Establishments-Countries================-->
<jonas-ejb-relation>
<ejb-relation-name>Country-Establishment</ejb-relation-name>
<jdbc-table-name>COUNTRIES_ESTABLISHMENTS</jdbc-table-name>
<jonas-ejb-relationship-role>
<ejb-relationship-role-name>Country-has-many-establishments</ejb-relationship-role-name>
<foreign-key-jdbc-mapping>
<foreign-key-jdbc-name>DB_ESTABLISHMENT_ID</foreign-key-jdbc-name>
</foreign-key-jdbc-mapping>
</jonas-ejb-relationship-role>
<jonas-ejb-relationship-role>
<ejb-relationship-role-name>Establishment-has-many-countries</ejb-relationship-role-name>
<foreign-key-jdbc-mapping>
<foreign-key-jdbc-name>DB_COUNTRY_ID</foreign-key-jdbc-name>
</foreign-key-jdbc-mapping>
</jonas-ejb-relationship-role>
</jonas-ejb-relation>
<!--===========Establishments-Categories ================-->
<jonas-ejb-relation>
<ejb-relation-name>Establishment-Category</ejb-relation-name>
<jdbc-table-name>ESTABLISHMENTS_CATEGORIES</jdbc-table-name>
<jonas-ejb-relationship-role>
<ejb-relationship-role-name>Establishment-has-many-categories</ejb-relationship-role-name>
<foreign-key-jdbc-mapping>
<foreign-key-jdbc-name>DB_CATEGORY_ID</foreign-key-jdbc-name>
</foreign-key-jdbc-mapping>
</jonas-ejb-relationship-role>
<jonas-ejb-relationship-role>
<ejb-relationship-role-name>Category-has-many-establishments</ejb-relationship-role-name>
<foreign-key-jdbc-mapping>
<foreign-key-jdbc-name>DB_ESTABLISHMENT_ID</foreign-key-jdbc-name>
</foreign-key-jdbc-mapping>
</jonas-ejb-relationship-role>
</jonas-ejb-relation>
</jonas-ejb-jar>Here are the two classes for the beans
package com.softwareag.test_guide.establishmentEJB;
import java.util.Collection;
import java.util.Iterator;
import javax.ejb.CreateException;
import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import javax.ejb.RemoveException;
import com.softwareag.test_guide.ejb.util.PGServiceLocator;
import com.softwareag.test_guide.ejb.util.PGServiceLocatorException;
import com.softwareag.test_guide.gradeEJB.PGGradeLocal;
import com.softwareag.test_guide.visitorCommentEJB.PGVisitorCommentLocal;
import com.softwareag.test_guide.visitorCommentEJB.PGVisitorCommentLocalHome;
* @author Julien Martin
public abstract class PGEstablishmentBean implements EntityBean {
public Integer ejbCreate(
Integer id,
String name,
Collection visitorComments,
Collection grades,
Collection countries,
Collection categories)
throws CreateException {
setId(id);
setName(name);
setVisitorComments(visitorComments);
setGrades(grades);
return null;
public void ejbPostCreate(
Integer id,
String name,
Collection visitorComments,
Collection grades,
Collection countries,
Collection categories) {
setCountries(countries);
setCategories(categories);
//Business methods
public int getAverageGrade() {
Collection grades = this.getGrades();
if (grades.size() == 0) {
return 0;
} else {
Iterator iterator = grades.iterator();
int total = 0;
while (iterator.hasNext()) {
PGGradeLocal pGGradeLocal = (PGGradeLocal) iterator.next();
Integer amount = pGGradeLocal.getGrade();
total = total + amount.intValue();
float average = total / grades.size();
int roundedAverage = Math.round(average);
return roundedAverage;
public void addComment(Integer id, String comment) {
try {
PGVisitorCommentLocalHome pGcommentHome =
(PGVisitorCommentLocalHome) PGServiceLocator.getInstance().getLocalHome("PGVisitorCommentHome_L");
PGVisitorCommentLocal pGcomment = pGcommentHome.create(id, comment);
Collection pGcomments = this.getVisitorComments();
pGcomments.add(pGcomment);
} catch (PGServiceLocatorException e) {
e.printStackTrace();
} catch (CreateException e) {
e.printStackTrace();
//Persistence fields
public abstract Integer getId();
public abstract void setId(Integer id);
public abstract String getName();
public abstract void setName(String name);
//Relation fields
public abstract Collection getVisitorComments();
public abstract void setVisitorComments(Collection visitorComments);
public abstract Collection getGrades();
public abstract void setGrades(Collection grades);
public abstract Collection getCountries();
public abstract void setCountries(Collection countries);
public abstract Collection getCategories();
public abstract void setCategories(Collection categories);
//Callback methods
public void setEntityContext(EntityContext ec) {
public void unsetEntityContext() {
public void ejbLoad() {
public void ejbStore() {
public void ejbActivate() {
public void ejbPassivate() {
public void ejbRemove() throws RemoveException {
package com.softwareag.test_guide.visitorCommentEJB;
import javax.ejb.CreateException;
import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import javax.ejb.RemoveException;
* @author Julien Martin
public abstract class PGVisitorCommentBean implements EntityBean {
public Integer ejbCreate(Integer id, String comment)throws CreateException {
setId(id);
setComment(comment);
return null;
public void ejbPostCreate(Integer id, String comment) {}
//Persistence fields
public abstract Integer getId();
public abstract void setId(Integer id);
public abstract String getComment();
public abstract void setComment(String comment);
// public abstract Integer getEstablishment_id();
// public abstract void setEstablishment_id(Integer establishment_id);
//Callback methods
public void setEntityContext(EntityContext ec) {}
public void unsetEntityContext() {}
public void ejbLoad() {}
public void ejbStore() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public void ejbRemove() throws RemoveException {}
}I get the following error from MYSQL:
22:57:10,203 : JOnASVisitorCommentEJBBean.ejbPostCreate : Failed to create bean:
java.sql.SQLException: General error, message from server: "Column 'DB_ESTABLISHMENT_ID' cannot be null"
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1626)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:886)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:945)
at com.mysql.jdbc.Connection.execSQL(Connection.java:1844)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1602)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1488)
at jorm.rdb.mysql.VisitorsCommentBinding.insertVISITORS_COMMENTSTable(VisitorsCommentBinding.java:558)
at jorm.rdb.mysql.VisitorsCommentBinding.write(VisitorsCommentBinding.java:147)
at com.softwareag.test_guide.visitorCommentEJB.JOnASVisitorCommentEJBBean.ejbPostCreate(JOnASVisitorCommentEJBBean.java:283)
at com.softwareag.test_guide.visitorCommentEJB.JOnASVisitorCommentEJBLocalHome.create(JOnASVisitorCommentEJBLocalHome.java:76)
at com.softwareag.test_guide.establishmentEJB.PGEstablishmentBean.addComment(PGEstablishmentBean.java:71)
at com.softwareag.test_guide.establishmentEJB.JOnASEstablishmentEJBLocal.addComment(JOnASEstablishmentEJBLocal.java:170)
at com.softwareag.test_guide.sessionFacadeEJB.PGSessionFacadeBean.addComment(PGSessionFacadeBean.java:80)
at com.softwareag.test_guide.sessionFacadeEJB.JOnASPGSessionFacadeEJBLocal.addComment(JOnASPGSessionFacadeEJBLocal.java:168)
at com.softwareag.test_guide.web.temp.PGBusinessDelegate.addComment(PGBusinessDelegate.java:93)
at com.softwareag.test_guide.web.temp.PGCommentsManagedBean.addCommentAction(PGCommentsManagedBean.java:13)
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:324)
at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
at javax.faces.component.UICommand.broadcast(UICommand.java:312)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
at sun.reflect.GeneratedMethodAccessor208.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:241)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:499)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:263)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:157)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:50)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:140)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:136)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:702)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644)
at java.lang.Thread.run(Thread.java:536)
22:57:10,203 : JFactory.postInvoke : system exception in business method:
javax.ejb.EJBException: Failed to create bean: General error, message from server: "Column 'DB_ESTABLISHMENT_ID' cannot be null"
at com.softwareag.test_guide.visitorCommentEJB.JOnASVisitorCommentEJBBean.ejbPostCreate(JOnASVisitorCommentEJBBean.java:288)
at com.softwareag.test_guide.visitorCommentEJB.JOnASVisitorCommentEJBLocalHome.create(JOnASVisitorCommentEJBLocalHome.java:76)
at com.softwareag.test_guide.establishmentEJB.PGEstablishmentBean.addComment(PGEstablishmentBean.java:71)
at com.softwareag.test_guide.establishmentEJB.JOnASEstablishmentEJBLocal.addComment(JOnASEstablishmentEJBLocal.java:170)
at com.softwareag.test_guide.sessionFacadeEJB.PGSessionFacadeBean.addComment(PGSessionFacadeBean.java:80)
at com.softwareag.test_guide.sessionFacadeEJB.JOnASPGSessionFacadeEJBLocal.addComment(JOnASPGSessionFacadeEJBLocal.java:168)
at com.softwareag.test_guide.web.temp.PGBusinessDelegate.addComment(PGBusinessDelegate.java:93)
at com.softwareag.test_guide.web.temp.PGCommentsManagedBean.addCommentAction(PGCommentsThanks all for replying,
The error occurs when I run the client and not at deploy time. Here is the client code:
public void addComment(Integer primaryKey, String comment) {
System.out.println("primaryKey------>" + primaryKey);
try {
PGEstablishmentLocalHome establishmentHome = (PGEstablishmentLocalHome) PGServiceLocator.getInstance().getLocalHome("PGEstablishmentHome_L");
PGEstablishmentLocal establishmentLocal = establishmentHome.findByPrimaryKey(primaryKey);
establishmentLocal.addComment(primaryKey,comment);
} catch (PGServiceLocatorException e) {
e.printStackTrace();
} catch (FinderException e) {
e.printStackTrace();
u haven't defined the PK entry in the Establishment EJB Bean in DDYes look in the standard DD.
What's more I need both DD as I would with most ejb containers.
The field DB_ESTABLISHMENT_ID is required and I cannot set it to NULL.
Any other help greatly appreciated.
Julien Martin. -
Hi friends i am doing one small project using weblogic,ejb and mysql
When i try to retirive values from the table using CMR i am getting the error of
bolderrorAttempt to serialize a collection that implements a cmr-field. Collections managed by the CMP RDBMS persistence manager may not be passed directly to a remote client.*bold*
My EJBQL is
bold
**@ejb.finder
* query="SELECT OBJECT(a) FROM NeworderSCHEMA as a WHERE a.po_no = ?1"
* signature="java.util.Collection findByPo_noCMR(java.lang.String po_no)" bold
My Session Bean who is calling this is NeworderBean
bold
public java.util.Collection getAllPendingOrdersnew()
throws javax.naming.NamingException, javax.ejb.FinderException {
java.util.Collection pendorders = new java.util.ArrayList(); //to return all pending orders to web-client
java.util.ArrayList pendorder = null; //to put one pending order attributes to collection of pendorders
NeworderLocalHome home = NeworderUtil.getLocalHome();
NeworderLocal localObject = null;
java.util.Collection c = home.findByPo_noCMR("91");
//loop to take one pendingorderLocal at a time and populate pedningorders collection
for(java.util.Iterator i = c.iterator(); i.hasNext(); ){
//populating the arraylist with customer attributes
localObject = (NeworderLocal) i.next();
pendorder = new java.util.ArrayList();
pendorder.add(localObject.getPrimaryKey()); //index 0 -- stores the po_no
pendorder.add(localObject.getPo_date()); //index 1 -- stores the po_date
pendorder.add(localObject.getPo_status());//index 2 -- stores the po_status
pendorder.add(localObject.getPo_suppcode()); //index 3 -- stores the supplier code
pendorder.add(localObject.getUserid());//index 4 -- stores the user id
pendorder.add(localObject.getTimestamp());//index 5 -- stores the created date
pendorder.add(localObject.getItems());//for order detail table
//one customer data is filled. so, add this to customers arraylist
pendorders.add(pendorder);
//return the collection of all customers
return pendorders;
}*bold*
Please help meWhen i give with out @ejb-interface i am getting error of
Exception:weblogic.management.ApplicationException: Prepare failed. Task Id = 29
Module: New_OrderEJB.jar Error: [EJB:011024]The XML parser encountered an error in your deployment descriptor. Please ensure that your deployment descriptor corresponds to the format in the DTD. The error was:
Error parsing file 'META-INF/ejb-jar.xml' at line: 247 column: 26. XML document structures must start and end within the same entity..
ejb-jar.xml file content is
<?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 id="ejb-jar_1">
<description><![CDATA[New_OrderEJB generated by eclipse wtp xdoclet extension.]]></description>
<display-name>New_OrderEJB</display-name>
<enterprise-beans>
<!-- Session Beans -->
<session id="Session_Head">
<description><![CDATA[An EJB named Head]]></description>
<display-name>Head</display-name>
<ejb-name>Head</ejb-name>
<home>order.headsess.HeadHome</home>
<remote>order.headsess.Head</remote>
<local-home>order.headsess.HeadLocalHome</local-home>
<local>order.headsess.HeadLocal</local>
<ejb-class>order.headsess.HeadSession</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
<!--
To add session beans that you have deployment descriptor info for, add
a file to your XDoclet merge directory called session-beans.xml that contains
the <session></session> markup for those beans.
-->
<!-- Entity Beans -->
<entity id="ContainerManagedEntity_Neworder">
<description><![CDATA[<!-- begin-xdoclet-definition -->]]></description>
<ejb-name>Neworder</ejb-name>
<home>order.headentity.NeworderHome</home>
<remote>order.headentity.Neworder</remote>
<local-home>order.headentity.NeworderLocalHome</local-home>
<local>order.headentity.NeworderLocal</local>
<ejb-class>order.headentity.NeworderCMP</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>NeworderSCHEMA</abstract-schema-name>
<cmp-field id="CMPAttribute_1">
<description><![CDATA[<!-- begin-user-doc --> CMP Field po_no Returns the po_no]]></description>
<field-name>po_no</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_2">
<description><![CDATA[<!-- begin-user-doc --> CMP Field po_date Returns the po_date]]></description>
<field-name>po_date</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_3">
<description><![CDATA[<!-- begin-user-doc --> CMP Field po_suppcode Returns the po_suppcode]]></description>
<field-name>po_suppcode</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_4">
<description><![CDATA[<!-- begin-user-doc --> CMP Field po_reference_no Returns the po_reference_no]]></description>
<field-name>po_reference_no</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_5">
<description><![CDATA[<!-- begin-user-doc --> CMP Field userid Returns the userid]]></description>
<field-name>userid</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_6">
<description><![CDATA[<!-- begin-user-doc --> CMP Field timestamp Returns the timestamp]]></description>
<field-name>timestamp</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_7">
<description><![CDATA[<!-- begin-user-doc --> CMP Field approved_by Returns the approved_by]]></description>
<field-name>approved_by</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_8">
<description><![CDATA[<!-- begin-user-doc --> CMP Field po_status Returns the po_status]]></description>
<field-name>po_status</field-name>
</cmp-field>
<primkey-field>po_no</primkey-field>
<query>
<query-method>
<method-name>findAll</method-name>
<method-params>
</method-params>
</query-method>
<ejb-ql><![CDATA[SELECT OBJECT(a) FROM NeworderSCHEMA as a]]></ejb-ql>
</query>
<query>
<query-method>
<method-name>findByStatus</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
<ejb-ql><![CDATA[SELECT OBJECT(a) FROM NeworderSCHEMA as a WHERE a.po_status = ?1]]></ejb-ql>
</query>
<query>
<query-method>
<method-name>findByPo_no</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
<ejb-ql><![CDATA[SELECT OBJECT(a) FROM NeworderSCHEMA as a WHERE a.po_no = ?1]]></ejb-ql>
</query>
<query>
<query-method>
<method-name>findByPo_noCMR</method-name>
<method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
<ejb-ql><![CDATA[SELECT OBJECT(a) FROM NeworderSCHEMA as a WHERE a.po_no = ?1]]></ejb-ql>
</query>
<!-- Write a file named ejb-finders-NeworderBean.xml if you want to define extra finders. -->
</entity>
<entity id="ContainerManagedEntity_OrderDetail">
<description><![CDATA[<!-- begin-xdoclet-definition -->]]></description>
<ejb-name>OrderDetail</ejb-name>
<home>order.detailentity.OrderDetailHome</home>
<remote>order.detailentity.OrderDetail</remote>
<local-home>order.detailentity.OrderDetailLocalHome</local-home>
<local>order.detailentity.OrderDetailLocal</local>
<ejb-class>order.detailentity.OrderDetailCMP</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>OrderDetailSCHEMA</abstract-schema-name>
<cmp-field id="CMPAttribute_9">
<description><![CDATA[<!-- begin-user-doc --> CMP Field serial_no Returns the serial_no]]></description>
<field-name>serial_no</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_10">
<description><![CDATA[<!-- begin-user-doc --> CMP Field po_no Returns the po_no]]></description>
<field-name>po_no</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_11">
<description><![CDATA[<!-- begin-user-doc --> CMP Field model_code Returns the model_code]]></description>
<field-name>model_code</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_12">
<description><![CDATA[<!-- begin-user-doc --> CMP Field color_code Returns the color_code]]></description>
<field-name>color_code</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_13">
<description><![CDATA[<!-- begin-user-doc --> CMP Field order_qty Returns the order_qty]]></description>
<field-name>order_qty</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_14">
<description><![CDATA[<!-- begin-user-doc --> CMP Field prod_yr Returns the prod_yr]]></description>
<field-name>prod_yr</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_15">
<description><![CDATA[<!-- begin-user-doc --> CMP Field prod_mth Returns the prod_mth]]></description>
<field-name>prod_mth</field-name>
</cmp-field>
<cmp-field id="CMPAttribute_16">
<description><![CDATA[<!-- begin-user-doc --> CMP Field recd_qty Returns the recd_qty]]></description>
<field-name>recd_qty</field-name>
</cmp-field>
<primkey-field>serial_no</primkey-field>
<query>
<query-method>
<method-name>findAll</method-name>
<method-params>
</method-params>
</query-method>
<ejb-ql><![CDATA[SELECT OBJECT(a) FROM OrderDetailSCHEMA as a]]></ejb-ql>
</query>
<!-- Write a file named ejb-finders-OrderDetailBean.xml if you want to define extra finders. -->
</entity>
<!--
To add entity beans that you have deployment descriptor info for, add
a file to your XDoclet merge directory called entity-beans.xml that contains
the <entity></entity> markup for those beans.
-->
<!-- Message Driven Beans -->
<!--
To add message driven beans that you have deployment descriptor info for, add
a file to your XDoclet merge directory called message-driven-beans.xml that contains
the <message-driven></message-driven> markup for those beans.
-->
</enterprise-beans>
<!-- Relationships -->
<relationships id="Relationships_1">
<ejb-relation id="EJBRelation_1">
<ejb-relation-name>Neworder</ejb-relation-name>
<ejb-relationship-role id="EJBRelationshipRole_1">
<ejb-relationship-role-name>Order-contains-Items</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source id="RoleSource_1">
<ejb-name>Neworder</ejb-name>
</relationship-role-source>
<cmr-field id="CMRField_1">
<cmr-field-name>items</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role id="EJBRelationshipRole_2">
<ejb-relationship-role-name>item-contained-in-order</ejb-relationship-role-name>
<multiplicity>Many</multiplicity>
<cascade-delete/>
<relationship-role-source id="RoleSource_2">
<ejb-name>OrderDetail</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
<ejb-relation id="EJBRelation_2">
<ejb-relation-name>Order-Items</ejb-relation-name>
<ejb-relationship-role id="EJBRelationshipRole_3">
<ejb-relationship-role-name>Order-has-Items</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source id="RoleSource_3">
<ejb-name>Neworder</ejb-name>
</relationship-role-source>
<cmr-field id="CMRField_2">
<cmr-field-name>itemValue</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role id="EJBRelationshipRole_4">
<multiplicity>Many</multiplicity>
<relationship-role-source id="RoleSource_4">
<ejb-name>
once again thank you -
I have the following:-
COUNTRY has 1-M relationship with its NCAs (members).
I want to get all the Members for a given country, so can you please scan through the descriptors and let me know where I a missing something.
ejb-jar.xml:
COUNTRY:-
<entity>
<description>Entity Bean ( CMP )</description>
<display-name>Country</display-name>
<ejb-name>Country</ejb-name>
<local-home>inspections.ejb.entity.CountryLocalHome</local-home>
<local>inspections.ejb.entity.CountryLocal</local>
<ejb-class>inspections.ejb.entity.CountryBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Long</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>Country</abstract-schema-name>
<cmp-field>
<field-name>pkCountry</field-name>
</cmp-field>
<cmp-field>
<field-name>ecdDn</field-name>
</cmp-field>
<cmp-field>
<field-name>active</field-name>
</cmp-field>
<cmp-field>
<field-name>countryCode</field-name>
</cmp-field>
<primkey-field>pkCountry</primkey-field>
</entity>
NCA:-
<entity>
<description>Entity Bean ( CMP )</description>
<display-name>NCA</display-name>
<ejb-name>NCA</ejb-name>
<local-home>inspections.ejb.entity.NCALocalHome</local-home>
<local>inspections.ejb.entity.NCALocal</local>
<ejb-class>inspections.ejb.entity.NCABean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Long</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>NCA</abstract-schema-name>
<cmp-field>
<field-name>pkNca</field-name>
</cmp-field>
<cmp-field>
<field-name>ecdDn</field-name>
</cmp-field>
<cmp-field>
<field-name>active</field-name>
</cmp-field>
<cmp-field>
<field-name>cmrMemberState</field-name>
</cmp-field>
<primkey-field>pkNca</primkey-field>
<query>
<query-method>
<method-name>findAll</method-name>
<method-params/>
</query-method>
<ejb-ql>select object(o) from NCA o</ejb-ql>
</query>
<query>
<description>This finds the NCA based on given country</description>
<query-method>
<method-name>findNCAByCountry</method-name>
<method-params>
<method-param>java.lang.Long</method-param>
</method-params>
</query-method>
<ejb-ql>select object(o) from NCA o, IN (o.cmrMemberState) AS cmr where cmr.pkCountry = ?1</ejb-ql>
</query>
</entity>
================================================
orion-ejb-jar.xml
COUNTRY:-
<entity-deployment name="Country" data-source="jdbc/DBCorporate" table="CORE.COUNTRY" copy-by-value="false" exclusive-write-access="false">
<primkey-mapping>
<cmp-field-mapping name="pkCountry" persistence-name="PK_COUNTRY" persistence-type="NUMBER(10)"/>
</primkey-mapping>
<cmp-field-mapping name="pkCountry" persistence-name="PK_COUNTRY" persistence-type="NUMBER(10)"/>
<cmp-field-mapping name="ecdDn" persistence-name="ECD_DN" persistence-type="VARCHAR2(4000)"/>
<cmp-field-mapping name="countryCode" persistence-name="COUNTRY_CODE" persistence-type="VARCHAR2(2)"/>
<cmp-field-mapping name="NCA_cmrMemberState">
<collection-mapping table="CORE.NCA">
<primkey-mapping>
<cmp-field-mapping>
<entity-ref home="Country">
<cmp-field-mapping name="cmrMemberState_pkMs" persistence-name="FK_COUNTRY" persistence-type="NUMBER(10)"/>
</entity-ref>
</cmp-field-mapping>
</primkey-mapping>
<value-mapping type="inspections.ejb.entity.NCALocal" immutable="true">
<cmp-field-mapping>
<entity-ref home="NCA">
<cmp-field-mapping name="pkNca" persistence-name="PK_NCA" persistence-type="NUMBER(10)"/>
</entity-ref>
</cmp-field-mapping>
</value-mapping>
</collection-mapping>
</cmp-field-mapping>
<entity-deployment>
NCA:-
<entity-deployment name="NCA" data-source="jdbc/DBCorporate" table="CORE.NCA" copy-by-value="false" exclusive-write-access="false">
<primkey-mapping>
<cmp-field-mapping name="pkNca" persistence-name="PK_NCA" persistence-type="NUMBER(10)"/>
</primkey-mapping>
<cmp-field-mapping name="pkNca" persistence-name="PK_NCA" persistence-type="NUMBER(10)"/>
<cmp-field-mapping name="ecdDn" persistence-name="ECD_DN" persistence-type="VARCHAR2(4000)"/>
<cmp-field-mapping name="cmrMemberState" persistence-name="FK_COUNTRY">
<entity-ref home="Country">
<cmp-field-mapping persistence-name="FK_COUNTRY" persistence-type="NUMBER(10)"/>
</entity-ref>
<entity-deployment>
============================================================
DEPLOY ERROR:-
05/08/24 11:20:18 Auto-deploying - inspections-EJB.jar (No previous deployment found)...
05/08/24 11:20:25 Encountered "IN ( o . cmrMemberState" at line 1, column 13.
Was expecting one of:
"AbstractSchemaName" ...
"IN" "(" "IdentificationVar" "." "SingleValuedCmrField" ...
"IN" "(" "IdentificationVar" "." "CollectionValuedCmrField" ...
EJB QL statement : 'select object(o) from NCA o, IN (o.cmrMemberState) AS cmr where cmr.pkCountry = ?1'
EJB QL method : public abstract java.util.Collection inspections.ejb.entity.NCALocalHome.findNCAByCountry(java.lang.Long) throws javax.ejb.FinderExceptionOC4J used is 10g
-
MOdify with Date field giving error
Hi,
I have to modifuy an internal table using modify statement.
After using the modify statement my date field in the internal table is replace by *.
heres a sample code i have used to depict the scenario(with the test values:)
DATA: BEGIN OF t_arcs_source OCCURS 0,
premise(10) type c,
key_date TYPE sy-datum,
END OF t_arcs_source.
DATA: wa_arcs_source LIKE LINE OF t_arcs_source.
t_arcs_source-premise = '1001'.
t_arcs_source-key_date = '20080101'.
APPEND t_arcs_source.
t_arcs_source-premise = '1001'.
t_arcs_source-key_date = '20090101'.
APPEND t_arcs_source.
sort t_arcs_source by premise ascending key_date descending.
clear t_arcs_source.
loop at t_arcs_source into wa_arcs_source.
at new premise.
modify t_arcs_source from wa_arcs_source transporting key_date where premise = wa_arcs_source-premise.
endat.
endloop.
please test the code and see the error and help me out.
Regards,
AnandHi.
I have modify ur above given code and make it changed for ur need meanz according ur nedd and it is working accurately.
check it and then tell me.
DATA: BEGIN OF t_arcs_source OCCURS 0,
premise(10) type c,
key_date TYPE sy-datum,
END OF t_arcs_source.
" New code of loines i appended
data: wa_t_arcs_source like t_arcs_source.
data: t_arcs_source_1 LIKE STANDARD TABLE OF t_arcs_source WITH HEADER LINE.
data: wa_t_arcs_source_1 like t_arcs_source.
" End of new code of line
DATA: wa_arcs_source LIKE LINE OF t_arcs_source. " I change this work area by wa_t_arcs_source
t_arcs_source-premise = '1001'.
t_arcs_source-key_date = '20080101'.
APPEND t_arcs_source.
t_arcs_source-premise = '1001'.
t_arcs_source-key_date = '20090101'.
APPEND t_arcs_source.
sort t_arcs_source by premise ascending key_date descending.
clear t_arcs_source.
loop at t_arcs_source into wa_t_arcs_source. " Used the new work area
wa_t_arcs_source_1 = wa_t_arcs_source.
append wa_t_arcs_source_1 to t_arcs_source_1.
at new premise.
modify t_arcs_source_1 from wa_t_arcs_source_1 transporting key_date where premise = wa_t_arcs_source-premise.
endat.
endloop.
Just copy paste in editor and check it.
Edited by: tahir naqqash on Feb 2, 2009 11:24 AM -
How can I resolve Exception : "Count Field Incorrect" error
Hi all,
I am experiencing with "Count Field incorrect" error. What's wrong with it? How can I resolve it?
This error is occured at UPDATE function of SQL. My JSP page is to update the old record.
Sometimes, "Update statement error" message appear. These two problems I always confusing.
What are the possible point of these error in my Java file and JSP page? I use package import to JSP Page.
Pls help me.
With thanks,Thanks,
Your URLs help me exectly. But after I have changed my code, the error is changed to "Too Few Parameters : Expected 35". What's wrong with it? The following is my code.
try {
String DRIVER = ("sun.jdbc.odbc.JdbcOdbcDriver");
String URL = "jdbc:odbc:Industrial_One_DSN";
String sql = "UPDATE BusinessRegistration " +
"SET [Date] = ?, ISIC = ?, BizName = ?, BizAddress = ?, " +
"OwnerName = ?, OwnerNRC = ?, Investment = ?, EstablishedYear = ?, " +
"L_Male = ?, L_Female = ?, F_Male = ?, F_Female = ?, " +
"OwnershipType = ?, Remarks = ?, IndustialZoneName = ?, Unit = ?, " +
"Fuel = ?, FactoryType = ?, FactoryName = ?, Township = ? " +
"MainProductName = ?, MainProductCountType = ?, " +
"MainProductQuantity = ?, MainProductValue = ?, RMName = ?, " +
"RMCountType = ?, RMQuantity = ?, RMValue = ?, EnergyName = ?, " +
"MachinePower = ?, AmountGallon = ?, StateDiv = ?, BizSize = ? " +
"WHERE RegistrationID = ?";
Class.forName(DRIVER);
Connection con = DriverManager.getConnection(URL);
PreparedStatement pstmt = con.prepareStatement(sql);
int ilmale = Integer.parseInt(lmale);
int ilfemale = Integer.parseInt(lfemale);
int ifmale = Integer.parseInt(fmale);
int iffemale = Integer.parseInt(ffemale);
int impq = Integer.parseInt(mpq);
int impv = Integer.parseInt(mpv);
int irmq = Integer.parseInt(rmq);
int irmv = Integer.parseInt(rmv);
int iamountgallon = Integer.parseInt(amountgallon);
pstmt.setString(1, date);
pstmt.setString(2, isic);
pstmt.setString(3, bizname);
pstmt.setString(4, bizaddress);
pstmt.setString(5, ownername);
pstmt.setString(6, ownernrc);
pstmt.setString(7, investment);
pstmt.setString(8, eyear);
pstmt.setInt(9, ilmale);
pstmt.setInt(10, ilfemale);
pstmt.setInt(11, ifmale);
pstmt.setInt(12, iffemale);
pstmt.setString(13, ownershiptype);
pstmt.setString(14, remark);
pstmt.setString(15, izn);
pstmt.setString(16, unit);
pstmt.setString(17, fuel);
pstmt.setString(18, ft);
pstmt.setString(19, fname);
pstmt.setString(20, township);
pstmt.setString(21, mpn);
pstmt.setString(22, mpct);
pstmt.setInt(23, impq);
pstmt.setInt(24, impv);
pstmt.setString(25, rmname);
pstmt.setString(26, rmct);
pstmt.setInt(27, irmq);
pstmt.setInt(28, irmv);
pstmt.setString(29, ename);
pstmt.setString(30, mpower);
pstmt.setInt(31, iamountgallon);
pstmt.setString(32, statediv);
pstmt.setString(33, bizsize);
pstmt.setInt(34, Integer.parseInt(rid));
pstmt.executeUpdate();
}I have got 35 fields in my db. But i wanna edit 34 fields only. I have no primary key in my table. Is't alright?
pls keep on helping me.
With thanks,
WTDAHL -
EJB-QL with self referencing cmr-field in path identifier fails
I have a simple application . Only one bean and one relationship. The relationship is a (0..1)-(0..1) for the same bean (self referencing).
I have a finder method defined with ejb-ql that tries to access the field of one of the cmr fields of the relationship.
class1Bean is the abstract schema for my bean, and subclass1 is the cmr-field name.
SELECT OBJECT(obj) FROM class1Bean obj WHERE obj.subclass1.id LIKE ?1
Here is the error message when trying to deploy:
Bean: Class1
Method: java.util.Collection findBySubclass1(java.lang.String)
EJBQL: SELECT OBJECT(obj) FROM class1Bean obj WHERE obj.subclass1.id LIKE ?1
Error: JDO75100: Fatal internal error: JDO75341: Missing field meta data for field 'subclass1' of 'Class1'
This same code deploys fine on JBoss 4.0, and should be legal ejb-ql. Is this a known issue with Sun JSAS?Sounds like a problem with the bean metadata. Please check the entity mapping defined in sun-cmp-mappings.xml. Also make sure field sublass1 is defined as CMR everywhere.
-- markus. -
OC4J 9.0.4 / EJB-QL / cmr-field
Hi,
I'm using the OC4J 9.0.4 developer preview and am trying to construct some EJB-QL of the following form:
select object(A) from MANYTABLE A, IN (A.cmr_field_to_ONETABLE) AS B
where A.field = ?1 and B.pk_field = ?2
where ONETABLE has a 1:m bidirectional relationship with MANYTABLE. The cmr-field entry for cmr_field_to_ONETABLE is present in the ejb-jar.xml.
In the underlying database tables, the cmr_field_to_ONETABLE in A is a foreign key to pk_field of B.
When I attempt to deploy the application, OC4J screams about an "Error translating EJBQL" saying that:
Was expecting one of:
"AbstractSchemaName" ...
"IN" "(" "IdentificationVar" "." "SingleValuedCmrField" "." ...
"IN" "(" "IdentificationVar" "." "CollectionValuedCmrField" ...
This doesn't make sense to me. As far as I can see, the EJB-QL is correct.
Suggestions?
regards
GeorgeHi,
I'm using the OC4J 9.0.4 developer preview and am trying to construct some EJB-QL of the following form:
select object(A) from MANYTABLE A, IN (A.cmr_field_to_ONETABLE) AS B
where A.field = ?1 and B.pk_field = ?2
where ONETABLE has a 1:m bidirectional relationship with MANYTABLE. The cmr-field entry for cmr_field_to_ONETABLE is present in the ejb-jar.xml.
In the underlying database tables, the cmr_field_to_ONETABLE in A is a foreign key to pk_field of B.
When I attempt to deploy the application, OC4J screams about an "Error translating EJBQL" saying that:
Was expecting one of:
"AbstractSchemaName" ...
"IN" "(" "IdentificationVar" "." "SingleValuedCmrField" "." ...
"IN" "(" "IdentificationVar" "." "CollectionValuedCmrField" ...
This doesn't make sense to me. As far as I can see, the EJB-QL is correct.
Suggestions?
regards
George -
Javax.ejb.EJBException: Attempt to access a collection valued cmr-field
I have 2 local CMP project and defect
i have a method getDefectList in ProjectBean. This method returns a collection of defect object.The relationship of Defect and Project is defined in ejb-jar where project can contain many defects.
when i try to access this method in a session bean it gives me the error
"javax.ejb.EJBException: Attempt to access a collection valued cmr-field outside the scope of a transaction."
Please let me know the solution.After further research, it looks like CMR fields can only use three options for the trans-attribute: Mandatory, Required, or RequiresNew
<container-transaction>
<description>Transaction attributes</description>
<method>
<ejb-name>strong.customer</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Mandatory</trans-attribute>
</container-transaction>
thus I believe that you will have to begin a transaction before executing your method. -
ERROR J2EE EJB-03027 with OC4J 10.1.3.3
Hi,
we have an application that works fine in iAS 9i (9.0.3).
Now, we have to migrate the platform to 10G and we are testing with OC4J 10.1.3.3.
But when the OC4J works... we see this message:
2008-03-06 16:10:12.737 ERROR J2EE EJB-03027 [prueba] Se ha producido un error al desplegar el módulo EJB: java.lang.InstantiationException: Internal server error: oracle.classloader.util.AnnotatedClassFormatError (Bad version number in .class file
Clase no válida: UPHome_EntityHomeWrapper1
Cargador: prueba.root:0.0.0
Origen de Código: /C:/OC4J 10.1.3.3/j2ee/home/application-deployments/prueba/MGU-1.0/deployment-cache.jar
Configuración: <ejb> in wrappers
Clase Dependiente: com.evermind.server.ejb.deployment.EntityBeanDescriptor
Cargador: oc4j:10.1.3
Origen de Código: /C:/OC4J 10.1.3.3/j2ee/home/lib/oc4j-internal.jar
Configuración: <code-source> in META-INF/boot.xml in C:\OC4J 10.1.3.3\j2ee\home\oc4j.jar
08/03/06 16:10:12 ADVERTENCIA: Application.setConfig Application: prueba is in failed state as initialization failed.
java.lang.InstantiationException: Error initializing ejb-modules: Internal server error: oracle.classloader.util.AnnotatedClassFormatError (Bad version number in .class file
Clase no válida: UPHome_EntityHomeWrapper1
Cargador: prueba.root:0.0.0
Origen de Código: /C:/OC4J 10.1.3.3/j2ee/home/application-deployments/prueba/MGU-1.0/deployment-cache.jar
Configuración: <ejb> in wrappers
Clase Dependiente: com.evermind.server.ejb.deployment.EntityBeanDescriptor
Cargador: oc4j:10.1.3
Origen de Código: /C:/OC4J 10.1.3.3/j2ee/home/lib/oc4j-internal.jar
Configuración: <code-source> in META-INF/boot.xml in C:\OC4J 10.1.3.3\j2ee\home\oc4j.jar
We have looked for information about the 'Bad version number' error, and we have recompile all our code with the JDK 1.5 (the same JDK for the OC4J). But we still have the error...
Which may be the problem?...
Thanks.The only thing you can do is to make sure that you recompile everything you're using.
--olaf -
XML form SPS13 error saving form with user field
Hello gurus!
After upgrading to SPS13 all XML Forms with imput field type 'user' produce error when saving data: incorrect user id. But I select user id from user list! ID can't be incorrect.
Please, help.
bestRegards, RO-manHi Roman,
I am using EP 60 SPS13 Patch 3, have you installed this patch ?
You have to create a sibling node, for instance "usuario", don't forget to define it as user (data detail).
Then you add a browse object in your form, and change action property as user.
Then you establish a relation between usuario and your browse object.
Patricio. -
Error in smart form with currency fields
while i am using with currency fields in samrt forms error is comming in while i am giving print-preview in se38 "<b>Reference field WA_EKPO-NETPR unknown in form."</b>
In smart forms if we want to display quantity and currency fields. We cannott directly display currency field and quantity fields.
To display the mdo like this
Ex: GLOBAL Definitions
WA_NETPR LIKE EKPO-NETPR
For that we have to create an extra variable in global definitions
Ex: netpr FIELD of EKPO
CREATE program lines and specify WA_NETWR = itab-netpr.
Close the thread once your question is answered.
Regards,
SaiRam -
Please help with CMR - strange error.
Hi,
im using xdoclet to generate sun files and i also tried to configure CMR manually in
the ejb-jar.xml but i just cant get it working:
When i try to deploy my app i always get the following strange exception:
[#|2004-12-11T20:50:48.281+0100|SCHWERWIEGEND|sun-appserver-pe8.1|javax.enterpr ise.system.tools.deployment|_ThreadID=13;|Caught java.lang.NullPointerException while processing CMP beans for application [informatrix]; module [informatrix.jar]: null. See log for details.
java.lang.NullPointerException
at com.sun.jdo.spi.persistence.support.ejb.ejbc.EjbConversionHelper.getRealRelatio nRoleDescriptor(EjbConversionHelper.java:363)
at com.sun.jdo.spi.persistence.support.ejb.ejbc.EjbConversionHelper.getRelationRol eDescriptor(EjbConversionHelper.java:357)
at com.sun.jdo.spi.persistence.support.ejb.ejbc.EjbConversionHelper.getInverseFiel dName(EjbConversionHelper.java:227)
at com.sun.jdo.api.persistence.mapping.ejb.MappingFile.completeCmrMappings(Mapping File.java:1636)
at com.sun.jdo.api.persistence.mapping.ejb.MappingFile.intoMappingClasses(MappingF ile.java:131)
at com.sun.jdo.spi.persistence.support.ejb.ejbc.MappingGenerator.loadMappingClasse s(MappingGenerator.java:460)
at com.sun.jdo.spi.persistence.support.ejb.ejbc.MappingGenerator.generateMapping(M appingGenerator.java:274)
at com.sun.jdo.spi.persistence.support.ejb.ejbc.JDOCodeGenerator.loadOrCreateMappi ngClasses(JDOCodeGenerator.java:581)
at com.sun.jdo.spi.persistence.support.ejb.ejbc.JDOCodeGenerator.init(JDOCodeGener ator.java:153)
at com.sun.jdo.spi.persistence.support.ejb.ejbc.JDOCodeGenerator.init(JDOCodeGener ator.java:126)
at com.sun.ejb.codegen.CmpCompiler.compile(CmpCompiler.java:143)
at com.sun.ejb.codegen.IASEJBC.doCompile(IASEJBC.java:615)
at com.sun.ejb.codegen.IASEJBC.ejbc(IASEJBC.java:563)
at com.sun.enterprise.deployment.backend.EJBCompiler.preDeployApp(EJBCompiler.java :361)
at com.sun.enterprise.deployment.backend.EJBCompiler.compile(EJBCompiler.java:209)
at com.sun.enterprise.deployment.backend.AppDeployer.runEJBC(AppDeployer.java:286)
at com.sun.enterprise.deployment.backend.AppDeployer.deploy(AppDeployer.java:176)
at com.sun.enterprise.deployment.backend.AppDeployer.doRequestFinish(AppDeployer.j ava:107)
at com.sun.enterprise.deployment.phasing.J2EECPhase.runPhase(J2EECPhase.java:138)
at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPh ase.java:71)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeplo ymentService.java:626)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentSe rvice.java:187)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentSe rvice.java:513)
at com.sun.enterprise.management.deploy.DeployThread.deploy(DeployThread.java:140)
at com.sun.enterprise.management.deploy.DeployThread.run(DeployThread.java:168)
|#]
Can anyone explain what do those fields:
name
role-name
cascade-delete
target-ejb
target-role-name
target-cascade-delete
target-multiple
mean.
My scenario is following:
Bean 1 = User
Bean 2 = EmployeeData
Relationship: User has EmployeeData (1:1)
Tables:
Bean 1 mapped to users
Bean 2 mapped to employee_data
Collumns:
Bean 1 references Bean 2 in column pk_login Bean 1-field is login
Bean 2 references Bean 1 in column fk_login Bean 2-field is login
Thanx a lot to anyone who answers.For the 1:1 relationship, the ejb.xml needs to have the relationship defined
<ejb-relation>
<ejb-relationship-role>
<ejb-relationship-role-name>AEJB-BEJB</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source>
<ejb-name>AEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>b</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role>
<ejb-relationship-role-name>BEJB-AEJB</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source>
<ejb-name>BEJB</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>a</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
For sun-cmp-mappings. xml make sure the column name for the FK of the related bean is defined
<entity-mapping>
<ejb-name>AEJB</ejb-name>
<table-name>AEJB_1X1_BI_BTOB</table-name>
<cmp-field-mapping>
<field-name>id</field-name>
<column-name>ID</column-name>
</cmp-field-mapping>
<cmp-field-mapping>
<field-name>name</field-name>
<column-name>NAME</column-name>
</cmp-field-mapping>
<cmp-field-mapping>
<field-name>value</field-name>
<column-name>VALUE</column-name>
</cmp-field-mapping>
<cmr-field-mapping>
<cmr-field-name>b</cmr-field-name>
<column-pair>
<column-name>ID</column-name>
<column-name>BEJB_1X1_BI_BTOB.FK_FOR_AEJB_1X1_BI_BTOB</column-name>
</column-pair>
</cmr-field-mapping>
</entity-mapping>
<entity-mapping>
<ejb-name>BEJB</ejb-name>
<table-name>BEJB_1X1_BI_BTOB</table-name>
<cmp-field-mapping>
<field-name>id</field-name>
<column-name>ID</column-name>
</cmp-field-mapping>
<cmp-field-mapping>
<field-name>name</field-name>
<column-name>NAME</column-name>
</cmp-field-mapping>
<cmp-field-mapping>
<field-name>value</field-name>
<column-name>VALUE</column-name>
</cmp-field-mapping>
<cmr-field-mapping>
<cmr-field-name>a</cmr-field-name>
<column-pair>
<column-name>FK_FOR_AEJB_1X1_BI_BTOB</column-name>
<column-name>AEJB_1X1_BI_BTOB.ID</column-name>
</column-pair>
</cmr-field-mapping> -
Please help: deploy Bean with "No resource available" error for M:N relationship
Hi all,
I wonder any one comes across with deploying beans with M:N relationship with
"No resource available".
I defined the relationship in ejb-jar.xml and dbms in the
weblogic-cmp-rdbms-jar.xml, but when I deployed the beans I got
the following error
------ Error message-----
weblogic.common.ResourceException: No resources available at weblogic.common.internal.ResourceAllocator.reserve(ResourceAllocator.
java:568) at weblogic.common.internal.ResourceAllocator.reserve(ResourceAllocator.
java:400) at weblogic.common.internal.ResourceAllocator.reserveNoWait(ResourceAllo
cator.java:368) at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.j
ava:166) at weblogic.jdbc.common.internal.ConnectionPool.reserveNoWait(Connection
Pool.java:127) at weblogic.jdbc.common.internal.RmiDataSource.getPoolConnection(RmiData
Source.java:194) at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
ce.java:219) at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.getConnection(RDBMSP
ersistenceManager.java:317) at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.createDefaultDBMSTab
le(RDBMSPersistenceManager.java:1149) at weblogic.ejb20.utils.TableVerifier.verifyTableExistsAndCreateMaybe(Ta
bleVerifier.java:428) at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.verifyTablesExist(RD
Unable to deploy EJB: CustomerBean from \ejb:
Errors encountered ''The Container-Managed Persistence Entity EJB failed while
creating its SQL Type Map. The error was: Invalid object name 'localcustomer_localsubscription'.
Severity 16, State 1, Procedure 'IVM_SERVER null', Line 1', 'Error encountered
while attempting to create Default DBMS Table: 'localcustomer_localsubscription'.
Error Text: 'weblogic.common.ResourceException: No resource s available'.''
---------------End error ----------------------
---------------my ejb-jar.xml
<ejb-jar>
- <enterprise-beans>
- <entity>
<ejb-name>AddressBean</ejb-name>
<local-home>customer.LocalAddressHome</local-home>
<local>customer.LocalAddress</local>
<ejb-class>customer.AddressBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
- <cmp-field>
<field-name>addressID</field-name>
</cmp-field>
- <cmp-field>
<field-name>street</field-name>
</cmp-field>
- <cmp-field>
<field-name>city</field-name>
</cmp-field>
- <cmp-field>
<field-name>zip</field-name>
</cmp-field>
- <cmp-field>
<field-name>state</field-name>
</cmp-field>
<primkey-field>addressID</primkey-field>
</entity>
- <entity>
<ejb-name>CustomerBean</ejb-name>
<local-home>customer.LocalCustomerHome</local-home>
<local>customer.LocalCustomer</local>
<ejb-class>customer.CustomerBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<abstract-schema-name>CustomerBean</abstract-schema-name>
- <cmp-field>
<field-name>customerID</field-name>
</cmp-field>
- <cmp-field>
<field-name>firstName</field-name>
</cmp-field>
- <cmp-field>
<field-name>lastName</field-name>
</cmp-field>
<primkey-field>customerID</primkey-field>
- <query>
- <query-method>
<method-name>findByLastName</method-name>
- <method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
- <ejb-ql>
- <![CDATA[ SELECT OBJECT(o) FROM CustomerBean AS o
]]>
</ejb-ql>
</query>
- <query>
- <query-method>
<method-name>findByFirstName</method-name>
- <method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
- <ejb-ql>
- <![CDATA[ SELECT OBJECT(o) FROM CustomerBean AS o
]]>
</ejb-ql>
</query>
</entity>
- <entity>
<ejb-name>SubscriptionBean</ejb-name>
<local-home>customer.LocalSubscriptionHome</local-home>
<local>customer.LocalSubscription</local>
<ejb-class>customer.SubscriptionBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<abstract-schema-name>SubscriptionBean</abstract-schema-name>
- <cmp-field>
<field-name>type</field-name>
</cmp-field>
- <cmp-field>
<field-name>title</field-name>
</cmp-field>
<primkey-field>title</primkey-field>
- <query>
- <query-method>
<method-name>findAllSubscriptions</method-name>
<method-params />
</query-method>
- <ejb-ql>
- <![CDATA[ SELECT OBJECT(o) FROM SubscriptionBean AS o
]]>
</ejb-ql>
</query>
</entity>
</enterprise-beans>
- <relationships>
- <ejb-relation>
<ejb-relation-name>LocalCustomer-LocalAddress</ejb-relation-name>
- <ejb-relationship-role>
<ejb-relationship-role-name>LocalCustomer-Has-LocalAddresss</ejb-relationship-role-name>
<multiplicity>one</multiplicity>
- <relationship-role-source>
<ejb-name>CustomerBean</ejb-name>
</relationship-role-source>
- <cmr-field>
<cmr-field-name>addresses</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
- <ejb-relationship-role>
<ejb-relationship-role-name>LocalAddress-Has-LocalCustomer</ejb-relationship-role-name>
<multiplicity>many</multiplicity>
- <relationship-role-source>
<ejb-name>AddressBean</ejb-name>
</relationship-role-source>
- <cmr-field>
<cmr-field-name>customer</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
</ejb-relation>
- <ejb-relation>
<ejb-relation-name>LocalCustomer-LocalSubscription</ejb-relation-name>
- <ejb-relationship-role>
<ejb-relationship-role-name>LocalCustomers-Have-LocalSubscriptions</ejb-relationship-role-name>
<multiplicity>many</multiplicity>
- <relationship-role-source>
<ejb-name>CustomerBean</ejb-name>
</relationship-role-source>
- <cmr-field>
<cmr-field-name>subscriptions</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
- <ejb-relationship-role>
<ejb-relationship-role-name>LocalSubscriptions-Have-LocalCustomers</ejb-relationship-role-name>
<multiplicity>many</multiplicity>
- <relationship-role-source>
<ejb-name>SubscriptionBean</ejb-name>
</relationship-role-source>
- <cmr-field>
<cmr-field-name>customers</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
</ejb-relation>
</relationships>
- <assembly-descriptor>
- <container-transaction>
- <method>
<ejb-name>AddressBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
- <container-transaction>
- <method>
<ejb-name>CustomerBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
- <container-transaction>
- <method>
<ejb-name>SubscriptionBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
------------------End of ejb-jar.xml---------------
Please help
Thanks in advance
MikeHi Gaurav,
Other applications used the same the datasource, which I used for this application,
are running fine.
I think there is some bug in the wlserver 6.1 to create the join table. I think
it is the time I should ask the bea wlserver 6.1.
Mike
"Gaurav Khanna" <[email protected]> wrote:
This implies that there are no database connections available. You need
to
check if you can log into your database instance. By default there are
30
connections specified for an instance in Oracle. FYI.
"Mike" <[email protected]> wrote in message
news:[email protected]...
Hi all,
I wonder any one comes across with deploying beans with M:Nrelationship with
"No resource available".
I defined the relationship in ejb-jar.xml and dbms in the
weblogic-cmp-rdbms-jar.xml, but when I deployed the beans I got
the following error
------ Error message-----
weblogic.common.ResourceException: No resources available atweblogic.common.internal.ResourceAllocator.reserve(ResourceAllocator.
java:568) atweblogic.common.internal.ResourceAllocator.reserve(ResourceAllocator.
java:400) atweblogic.common.internal.ResourceAllocator.reserveNoWait(ResourceAllo
cator.java:368) atweblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.j
ava:166) atweblogic.jdbc.common.internal.ConnectionPool.reserveNoWait(Connection
Pool.java:127) atweblogic.jdbc.common.internal.RmiDataSource.getPoolConnection(RmiData
Source.java:194) atweblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSour
ce.java:219) atweblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.getConnection(RDBMSP
ersistenceManager.java:317) atweblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.createDefaultDBMSTab
le(RDBMSPersistenceManager.java:1149) atweblogic.ejb20.utils.TableVerifier.verifyTableExistsAndCreateMaybe(Ta
bleVerifier.java:428) atweblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.verifyTablesExist(RD
Unable to deploy EJB: CustomerBean from \ejb:
Errors encountered ''The Container-Managed Persistence Entity EJB failedwhile
creating its SQL Type Map. The error was: Invalid object name'localcustomer_localsubscription'.
Severity 16, State 1, Procedure 'IVM_SERVER null', Line 1', 'Errorencountered
while attempting to create Default DBMS Table:'localcustomer_localsubscription'.
Error Text: 'weblogic.common.ResourceException: No resource savailable'.''
---------------End error ----------------------
---------------my ejb-jar.xml
<ejb-jar>
- <enterprise-beans>
- <entity>
<ejb-name>AddressBean</ejb-name>
<local-home>customer.LocalAddressHome</local-home>
<local>customer.LocalAddress</local>
<ejb-class>customer.AddressBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
- <cmp-field>
<field-name>addressID</field-name>
</cmp-field>
- <cmp-field>
<field-name>street</field-name>
</cmp-field>
- <cmp-field>
<field-name>city</field-name>
</cmp-field>
- <cmp-field>
<field-name>zip</field-name>
</cmp-field>
- <cmp-field>
<field-name>state</field-name>
</cmp-field>
<primkey-field>addressID</primkey-field>
</entity>
- <entity>
<ejb-name>CustomerBean</ejb-name>
<local-home>customer.LocalCustomerHome</local-home>
<local>customer.LocalCustomer</local>
<ejb-class>customer.CustomerBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<abstract-schema-name>CustomerBean</abstract-schema-name>
- <cmp-field>
<field-name>customerID</field-name>
</cmp-field>
- <cmp-field>
<field-name>firstName</field-name>
</cmp-field>
- <cmp-field>
<field-name>lastName</field-name>
</cmp-field>
<primkey-field>customerID</primkey-field>
- <query>
- <query-method>
<method-name>findByLastName</method-name>
- <method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
- <ejb-ql>
- <![CDATA[ SELECT OBJECT(o) FROM CustomerBean AS o
]]>
</ejb-ql>
</query>
- <query>
- <query-method>
<method-name>findByFirstName</method-name>
- <method-params>
<method-param>java.lang.String</method-param>
</method-params>
</query-method>
- <ejb-ql>
- <![CDATA[ SELECT OBJECT(o) FROM CustomerBean AS o
]]>
</ejb-ql>
</query>
</entity>
- <entity>
<ejb-name>SubscriptionBean</ejb-name>
<local-home>customer.LocalSubscriptionHome</local-home>
<local>customer.LocalSubscription</local>
<ejb-class>customer.SubscriptionBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
<abstract-schema-name>SubscriptionBean</abstract-schema-name>
- <cmp-field>
<field-name>type</field-name>
</cmp-field>
- <cmp-field>
<field-name>title</field-name>
</cmp-field>
<primkey-field>title</primkey-field>
- <query>
- <query-method>
<method-name>findAllSubscriptions</method-name>
<method-params />
</query-method>
- <ejb-ql>
- <![CDATA[ SELECT OBJECT(o) FROM SubscriptionBean AS o
]]>
</ejb-ql>
</query>
</entity>
</enterprise-beans>
- <relationships>
- <ejb-relation>
<ejb-relation-name>LocalCustomer-LocalAddress</ejb-relation-name>
- <ejb-relationship-role>
<ejb-relationship-role-name>LocalCustomer-Has-LocalAddresss</ejb-relationshi
p-role-name>
<multiplicity>one</multiplicity>
- <relationship-role-source>
<ejb-name>CustomerBean</ejb-name>
</relationship-role-source>
- <cmr-field>
<cmr-field-name>addresses</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
- <ejb-relationship-role>
<ejb-relationship-role-name>LocalAddress-Has-LocalCustomer</ejb-relationship
-role-name>
<multiplicity>many</multiplicity>
- <relationship-role-source>
<ejb-name>AddressBean</ejb-name>
</relationship-role-source>
- <cmr-field>
<cmr-field-name>customer</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
</ejb-relation>
- <ejb-relation>
<ejb-relation-name>LocalCustomer-LocalSubscription</ejb-relation-name>
- <ejb-relationship-role>
<ejb-relationship-role-name>LocalCustomers-Have-LocalSubscriptions</ejb-rela
tionship-role-name>
<multiplicity>many</multiplicity>
- <relationship-role-source>
<ejb-name>CustomerBean</ejb-name>
</relationship-role-source>
- <cmr-field>
<cmr-field-name>subscriptions</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
- <ejb-relationship-role>
<ejb-relationship-role-name>LocalSubscriptions-Have-LocalCustomers</ejb-rela
tionship-role-name>
<multiplicity>many</multiplicity>
- <relationship-role-source>
<ejb-name>SubscriptionBean</ejb-name>
</relationship-role-source>
- <cmr-field>
<cmr-field-name>customers</cmr-field-name>
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
</ejb-relation>
</relationships>
- <assembly-descriptor>
- <container-transaction>
- <method>
<ejb-name>AddressBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
- <container-transaction>
- <method>
<ejb-name>CustomerBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
- <container-transaction>
- <method>
<ejb-name>SubscriptionBean</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
------------------End of ejb-jar.xml---------------
Please help
Thanks in advance
Mike
Maybe you are looking for
-
Error loading photoshopimport.aip plugin in Illustrator CS4
Hello, I'm currently using Illustrator CS4 and just updated my Mac to OS X Yosemite. After installing the new software, I've got some bugs with Illustrator. Namely, upon opening the program, I get the message "Error loading plugins". The plugin in
-
Insert ' character in a varchar2 column
How can i insert ' character in a column. For example I want to insert HARINDER ' KANDA in a name column in one of tables. I get the message "Quoted String not properly terminated"
-
How can I use "undone" after restarting my PC?
I did something stupid in iTunes (no songs are marked anymore). How can I reset it after restarting the Pc? Thanx
-
External monitor preview not working in CS5
Well its taken almost a month to get my Production premium suite CS5 working (exit code 7 install error) I finally reinstalled win7 pro after dicking with adobe tech support for weeks (they did try to be helpful and polite) and that "cured" the insta
-
I'm just curious how much it is going to cost. :/