I met a problem when I deploy a entity bean!
I had developed a simple entity--only have
two columns use Jbuilder 6.0 Enterprise,
when I deploy it with weblogic 6.1,I met
the following error :
weblogic.j2ee.DeploymentException: Error deploying application mpassword:
Unable to deploy EJB: Password1 from mpassword.jar:
The DataSource with the JNDI name: Oracle could not be located. Please
ensure that the DataSource has been deployed successfully and that the JNDI
name in your EJB Deployment descriptor is correct.
at weblogic.deploy.deploy(deploy.java:665)
at weblogic.deploy.runBody(deploy.java:358)
at weblogic.utils.compiler.Tool.run(Tool.java:79)
at weblogic.deploy.main(deploy.java:1601)
Error deploying application mpassword:
Unable to deploy EJB: Password1 from mpassword.jar:
The DataSource with the JNDI name: Oracle could not be located. Please
ensure that the DataSource has been deployed successfully and that the JNDI
name in your EJB Deployment descriptor is correct.
Hi,
Within you weblogic-cmp-rdbms-jar.xml file you will have an entry:
<data-source-name>Oracle</data-source-name>
This links to a DataSource deployed on WebLogic which in turn links to a
connection pool to the database where you persist the entity.
So do you have a DataSource called Oracle?
Is this correctly deployed?
Gareth
"mrliuz" <[email protected]> wrote in message
news:[email protected]..
I had developed a simple entity--only have
two columns use Jbuilder 6.0 Enterprise,
when I deploy it with weblogic 6.1,I met
the following error :
weblogic.j2ee.DeploymentException: Error deploying application mpassword:
Unable to deploy EJB: Password1 from mpassword.jar:
The DataSource with the JNDI name: Oracle could not be located. Please
ensure that the DataSource has been deployed successfully and that theJNDI
name in your EJB Deployment descriptor is correct.
at weblogic.deploy.deploy(deploy.java:665)
at weblogic.deploy.runBody(deploy.java:358)
at weblogic.utils.compiler.Tool.run(Tool.java:79)
at weblogic.deploy.main(deploy.java:1601)
Error deploying application mpassword:
Unable to deploy EJB: Password1 from mpassword.jar:
The DataSource with the JNDI name: Oracle could not be located. Please
ensure that the DataSource has been deployed successfully and that theJNDI
name in your EJB Deployment descriptor is correct.
Similar Messages
-
Met a problem when excute a process about Create InfoArea
Dear all,
we met a problem when excute a process in our bw system:
our process as follow:
rsa1(Data Warehousing Workbench:Modeling) --> InfoProvider --> Create InfoArea
the below error message window came out.
error in object editing
No valid change license available for n
/BPR3R/
Choose 'Display object' or 'Cancel'.
its detail as follow:
Message no. TO127
Diagnosis
You cannot edit the object AREA 0INDUSTRIES. This may be due to the following reasons:
The corresponding namespace /BPR3R/ is not entered in the namespace table with a valid change license.
In the namespace table there is no entry with a valid change license that matches the template /BPR3R/.
System Response
The function terminates.
Procedure
Check the name of the object AREA 0INDUSTRIES. If necessary, choose another object name.
Otherwise, let the system administrator check the change licenses of the namespaces in your SAP system.
Maintain the namespaces in the Tools of the Transport Organizer under Administration -> Display/Change Namespaces.
You need to check and correct the entries that match the template /BPR3R/.
You need to distinguish between the following cases:
The namespace is /0SAP/:
Make sure that the namespace role is C (recipient) and the flags SSCR popup and SAP standard are activated. The license fields remain empty.
You did not create the namespace yourself. Instead, the namespace owner is SAP or another software vendor.
Make sure that the namespace role is C (recipient). The field Repair license must either contain the valid license, or the flag SSCR popup must be activated. Contact the namespace owner and ask what you should now do, and what the valid repair license is.
You are the namespace owner:
Proceed according to the documentation on applying for and setting up namespaces. If the namespace role is P (producer) then you need a valid development license. For information on this, see the SAP Library under BC - Basis Components -> Change and Transport System -> BC - Namespaces and Naming Conventions -> Reservation of Namespaces).
Please give your advice.
RegardsHi,
this forum is about the SAP BusinessObjects BI Solution architecture. I would suggest you post your question into the SAP BW Forum.
regards
Ingo Hilgefort -
Problem in deploying CMP entity bean 2.0 in J2EE 1.4
i am trying to deploy a cmp entity bean 2.0 using j2ee1.4 deployment tool. the bean uses sql server as the database. i have successfully created a coonection pool for sql server using j2ee admin console. the entity bean class files are successfully compiled. but while deploying the entity bean i am not able to set the database settings and jndi name for the bean. can one please guide me in the deployment steps in j2ee1.4.
mohitMohit,
We are discussing this topic in the fourm below. I'm having the same problem so feel free to join our conversation.
~Howard
http://forum.java.sun.com/thread.jsp?forum=13&thread=478054 -
[04/Dec/2001 10:54:00:2] error: EBFP-marshal_internal: internal exception caught in kcp skeleton, ex
ception = java.lang.NullPointerException
[04/Dec/2001 10:54:00:2] error: Exception Stack Trace:
java.lang.NullPointerException
at java.util.Hashtable.get(Hashtable.java:321)
at com.netscape.server.ejb.SQLPersistenceManager.<init>(Unknown Source)
at com.netscape.server.ejb.SQLPersistenceManagerFactory.newInstance(Unknown Source)
at com.netscape.server.ejb.EntityDelegateManagerImpl.getPersistenceManager(Unknown Source)
at com.netscape.server.ejb.EntityDelegateManagerImpl.doPersistentFind(Unknown Source)
at com.netscape.server.ejb.EntityDelegateManagerImpl.find(Unknown Source)
at com.kivasoft.eb.EBHomeBase.findSingleByParms(Unknown Source)
at samples.test.ejb.Entity.ejb_home_samples_test_ejb_Entity_TestEntityBean.findByPrimaryKey(
ejb_home_samples_test_ejb_Entity_TestEntityBean.java:126)
at samples.test.ejb.Entity.ejb_kcp_skel_TestEntityHome.findByPrimaryKey__samples_test_ejb_En
tity_TestEntity__int(ejb_kcp_skel_TestEntityHome.java:266)
at com.kivasoft.ebfp.FPRequest.invokenative(Native Method)
at com.kivasoft.ebfp.FPRequest.invoke(Unknown Source)
at samples.test.ejb.Entity.ejb_kcp_stub_TestEntityHome.findByPrimaryKey(ejb_kcp_stub_TestEnt
ityHome.java:338)
at samples.test.ejb.Entity.ejb_stub_TestEntityHome.findByPrimaryKey(ejb_stub_TestEntityHome.
java:85)
at samples.test.ejb.TestEJB.getGreeting(TestEJB.java:51)Hi,
I think you are trying to test the Hello world EJB example shipped with the product. As a first
step I would recomend you to go through every line of the document on deploying this application,
since, I too have experienced many errors while trying to deploy the sample applications, but on
following the documentation, I subsequently overcame all the errors and have been working with the
applications. So please follow the steps in documentation and let me know, if you still encounter any
issues.
Regards
Raj
Sandhya S wrote:
I am facing a problem while deploying an Entity bean in iPlanet(sp3).I
have attached the exception thrown.Why has this exception occured?
[04/Dec/2001 10:54:00:2] error: EBFP-marshal_internal: internal
exception caught in kcp skeleton, ex
ception = java.lang.NullPointerException
[04/Dec/2001 10:54:00:2] error: Exception Stack Trace:
java.lang.NullPointerException
at java.util.Hashtable.get(Hashtable.java:321)
at
com.netscape.server.ejb.SQLPersistenceManager.<init>(Unknown Source)
at
com.netscape.server.ejb.SQLPersistenceManagerFactory.newInstance(Unknown
Source)
at
com.netscape.server.ejb.EntityDelegateManagerImpl.getPersistenceManager(Unknown
Source)
at
com.netscape.server.ejb.EntityDelegateManagerImpl.doPersistentFind(Unknown
Source)
at
com.netscape.server.ejb.EntityDelegateManagerImpl.find(Unknown Source)
at com.kivasoft.eb.EBHomeBase.findSingleByParms(Unknown
Source)
at
samples.test.ejb.Entity.ejb_home_samples_test_ejb_Entity_TestEntityBean.findByPrimaryKey(
ejb_home_samples_test_ejb_Entity_TestEntityBean.java:126)
at
samples.test.ejb.Entity.ejb_kcp_skel_TestEntityHome.findByPrimaryKey__samples_test_ejb_En
tity_TestEntity__int(ejb_kcp_skel_TestEntityHome.java:266)
at com.kivasoft.ebfp.FPRequest.invokenative(Native Method)
at com.kivasoft.ebfp.FPRequest.invoke(Unknown Source)
at
samples.test.ejb.Entity.ejb_kcp_stub_TestEntityHome.findByPrimaryKey(ejb_kcp_stub_TestEnt
ityHome.java:338)
at
samples.test.ejb.Entity.ejb_stub_TestEntityHome.findByPrimaryKey(ejb_stub_TestEntityHome.
java:85)
at samples.test.ejb.TestEJB.getGreeting(TestEJB.java:51)
Try our New Web Based Forum at http://softwareforum.sun.com
Includes Access to our Product Knowledge Base! -
Error while deploying an entity bean
Hi,
I am trying to deploy an entity bean in weblogic 7.0 .
My weblogic-ejb-jar.xml has the entry as :
<weblogic-enterprise-bean>
<ejb-name>enroleejb.ManagedObjectImplHome</ejb-name>
<stateless-session-descriptor>
<pool>
<max-beans-in-free-pool>100</max-beans-in-free-pool>
<initial-beans-in-free-pool>0</initial-beans-in-free-pool>
</pool>
<stateless-clustering>
<stateless-bean-is-clusterable>True</stateless-bean-is-clusterable>
<stateless-bean-methods-are-idempotent>False</stateless-bean-methods-are-ide
mpotent>
</stateless-clustering>
</stateless-session-descriptor>
<transaction-descriptor>
<trans-timeout-seconds>60</trans-timeout-seconds>
</transaction-descriptor>
<enable-call-by-reference>True</enable-call-by-reference>
<jndi-name>enroleejb.ManagedObjectImplHome</jndi-name>
</weblogic-enterprise-bean>
When I run ejbc it gives the following error.
[java] The file /meta-inf/weblogic-cmp-rdbms-jar.xml, specified in a
type-storage element
of your weblogic-ejb-jar.xml descriptor, does not exist in the jar
file.
[java] at
weblogic.ejb20.persistence.PersistenceType.setTypeSpecificFile(PersistenceTy
pe.java:475)
[java] at
weblogic.ejb20.persistence.PersistenceType.setupDeployer(PersistenceType.jav
a:407)
[java] at
weblogic.ejb20.deployer.CMPInfoImpl.setup(CMPInfoImpl.java:114)
[java] at
weblogic.ejb20.ejbc.EJB20CMPCompiler.generatePersistenceSources(EJB20CMPComp
iler.java:64)
[java] at
weblogic.ejb20.ejbc.EJBCompiler.doCompile(EJBCompiler.java:223)
[java] at
weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:344)
[java] at weblogic.ejbc20.runBody(ejbc20.java:470)
[java] at weblogic.utils.compiler.Tool.run(Tool.java:126)
[java] at weblogic.ejbc.main(ejbc.java:29)
In the generated jar file I have meta-inf\weblogic-cmp-rdbms.jar file.
Still it gives the error.
What could be the problem?
Any help would be appreciated.
Thanks,
NamrataEjb jar file should have META-INF/weblogic-cmp-rdbms-jar.xml
"Sarita Satoor" <[email protected]> wrote:
Hi,
I am trying to deploy an entity bean in weblogic 7.0 .
My weblogic-ejb-jar.xml has the entry as :
<weblogic-enterprise-bean>
<ejb-name>enroleejb.ManagedObjectImplHome</ejb-name>
<stateless-session-descriptor>
<pool>
<max-beans-in-free-pool>100</max-beans-in-free-pool>
<initial-beans-in-free-pool>0</initial-beans-in-free-pool>
</pool>
<stateless-clustering>
<stateless-bean-is-clusterable>True</stateless-bean-is-clusterable>
<stateless-bean-methods-are-idempotent>False</stateless-bean-methods-are-ide
mpotent>
</stateless-clustering>
</stateless-session-descriptor>
<transaction-descriptor>
<trans-timeout-seconds>60</trans-timeout-seconds>
</transaction-descriptor>
<enable-call-by-reference>True</enable-call-by-reference>
<jndi-name>enroleejb.ManagedObjectImplHome</jndi-name>
</weblogic-enterprise-bean>
When I run ejbc it gives the following error.
[java] The file /meta-inf/weblogic-cmp-rdbms-jar.xml, specified
in a
type-storage element
of your weblogic-ejb-jar.xml descriptor, does not exist in the jar
file.
[java] at
weblogic.ejb20.persistence.PersistenceType.setTypeSpecificFile(PersistenceTy
pe.java:475)
[java] at
weblogic.ejb20.persistence.PersistenceType.setupDeployer(PersistenceType.jav
a:407)
[java] at
weblogic.ejb20.deployer.CMPInfoImpl.setup(CMPInfoImpl.java:114)
[java] at
weblogic.ejb20.ejbc.EJB20CMPCompiler.generatePersistenceSources(EJB20CMPComp
iler.java:64)
[java] at
weblogic.ejb20.ejbc.EJBCompiler.doCompile(EJBCompiler.java:223)
[java] at
weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:344)
[java] at weblogic.ejbc20.runBody(ejbc20.java:470)
[java] at weblogic.utils.compiler.Tool.run(Tool.java:126)
[java] at weblogic.ejbc.main(ejbc.java:29)
In the generated jar file I have meta-inf\weblogic-cmp-rdbms.jar file.
Still it gives the error.
What could be the problem?
Any help would be appreciated.
Thanks,
Namrata -
Deploying CMP Entity Beans in Weblogic
How to generate/convert the Orion xml file to Weblogic_RDBMS ?
Thxpetstore 1.3 will be available for the upcoming beta of weblogic 7.0...
Andrew Sliwkowski(BEA)
[email protected]
"Nitin Sawant" <[email protected]> wrote in message
news:3c04f6cd$[email protected]..
>
Appreciate if you can share your plans on releasing a petstore 1.3 patchfor weblogic.
>
>
i am having problems deploying CMP Entity Beans in petstore 1.3 where theprimary
key class is defined as java.lang.Object in the ejb-jar.xml descriptor(<prim-key-class>java.lang.Object</prim-key-class>).
Does weblogic 6.1 with 1.3 features enabled support the above feature.
Thanks, -
Deployment problem sdk 1.4 with entity bean
hallo!
i have a big problem with the j2ee sdk 1.4. when i want to add an entity bean to my ear-file, everything goes good, but when i put the sql-ql for the finder-method and save the file i got an error like this
xxxxxxx.ear is corrupt or cannot be read
when i dont save and will show the descriptor it generates an empty descriptor for this entity bean.
the problem is, that the deployment tool cannot generate the deployment desciptor for entity beans. with session bean there was no problems.
hope somebody can help me.
thanksThere's bug in non-U.S. locales. The workaround is described in this thread:
http://forum.java.sun.com/thread.jsp?forum=136&thread=472692&tstart=15&trange=15
-Ian Evans
Sun Microsystems
J2EE Tutorial team -
Problem deploying EJB entity bean
Hi all!
I'm trying to deploy an CMP entity bean with composite primary key.
My environment is Oracle 8i (8.1.7) on W2K Professional and I'm using JDK 1.3.1_02.
The error I get is:
Compiling Stubs...done
Generating Jar File...done
Loading EJB Jar file and Comm Stubs Jar file...done
Generating EJBHome and EJBObject on the server...
An exception occurred during code generation: null
I don't understand what am I doing wrong...
Any help will be highly appreciated.
[Could anyone point me out sample code for CMP entity beans with composite primary key?]
Apologies for the length of the POST, just trying to pass as much info as I can...
The table is the following:
CREATE TABLE GPS_HIST (
gps_date_of_fix VARCHAR2(40) NOT NULL,
gps_time_of_fix VARCHAR2(40) NOT NULL,
issi NUMBER(10) NOT NULL,
gps_condition NUMBER(5),
gps_latitude VARCHAR2(40),
gps_longitude VARCHAR2(40),
gps_speed_knt NUMBER(10),
constraint gps_hist_pk primary key (gps_date_of_fix, gps_time_of_fix, issi))
TABLESPACE AVLDATA
PCTFREE 10 PCTUSED 40
INITRANS 1 MAXTRANS 255
STORAGE (
INITIAL 128K NEXT 128K PCTINCREASE 0
MINEXTENTS 1 MAXEXTENTS 4096)
NOCACHE;
The primary key class is the following:
package gps;
public class GPSEntryPK implements java.io.Serializable
public int ISSI;
public String gpsTimeOfFix;
public String gpsDateOfFix;
public GPSEntryPK() {}
public GPSEntryPK (String gpsDateOfFix, String gpsTimeOfFix, int ISSI)
this.gpsDateOfFix = gpsDateOfFix;
this.gpsTimeOfFix = gpsTimeOfFix;
this.ISSI = ISSI;
public String getGPSDateOfFix()
return this.gpsDateOfFix;
public String getGPSTimeOfFix()
return this.gpsTimeOfFix;
public int getISSI()
return this.ISSI;
public boolean equals(Object obj) {
if ((obj instanceof GPSEntryPK) &&
(this.ISSI == ((GPSEntryPK)obj).ISSI) &&
(this.gpsTimeOfFix.equals(((GPSEntryPK)obj).gpsTimeOfFix)) &&
(this.gpsDateOfFix.equals(((GPSEntryPK)obj).gpsDateOfFix)))
return true;
return false;
public int hashCode() {
return (this.gpsTimeOfFix.concat(this.gpsDateOfFix)).hashCode() * this.ISSI;
The bean implemantation (part of it) is as follows:
public void setEntityContext(EntityContext ctx)
this.ctx = ctx;
Properties props = ctx.getEnvironment();
public void unsetEntityContext()
this.ctx = null;
public GPSEntryPK ejbCreate(String gpsDateOfFix, String gpsTimeOfFix, int ISSI, int gpsCondition,
String gpsLatitude, String gpsLongitude, double gpsSpeedKnt)
throws CreateException, RemoteException
try {
setGPSDateOfFix(gpsDateOfFix);
setGPSTimeOfFix(gpsTimeOfFix);
setISSI(ISSI);
setGPSCondition(gpsCondition);
setGPSLatitude(gpsLatitude);
setGPSLongitude(gpsLongitude);
setGPSSpeedKnt(gpsSpeedKnt);
} catch (java.rmi.RemoteException e) {
throw new CreateException();
return null;
public GPSEntryPK ejbFindByPrimaryKey(GPSEntryPK pk) throws RemoteException, FinderException {
return null;
public void ejbPostCreate(String gpsDateOfFix, String gpsTimeOfFix, int ISSI, int gpsCondition,
String gpsLatitude, String gpsLongitude, double gpsSpeedKnt)
throws CreateException
// get primarykey
GPSEntryPK pk = (GPSEntryPK)ctx.getPrimaryKey();
public void ejbActivate() {}
public void ejbPassivate() {}
public void ejbRemove() {}
public void ejbLoad()
// You can get to the primary key
GPSEntryPK pk = (GPSEntryPK)ctx.getPrimaryKey();
public void ejbStore(){}
The descriptors are the following:
"gpsentry.xml"
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems Inc.//DTD Enterprise JavaBeans 1.1//EN" "ejb-jar.dtd">
<ejb-jar>
<enterprise-beans>
<entity>
<description>no description</description>
<ejb-name>GPSEntry</ejb-name>
<home>gps.GPSEntryHome</home>
<remote>gps.GPSEntry</remote>
<ejb-class>gpsServer.GPSEntryBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>gps.GPSEntryPK</prim-key-class>
<reentrant>False</reentrant>
<cmp-field><field-name>gpsDateOfFix</field-name></cmp-field>
<cmp-field><field-name>gpsTimeOfFix</field-name></cmp-field>
<cmp-field><field-name>ISSI</field-name></cmp-field>
<env-entry>
<env-entry-name>realmName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>gps.realm</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>GPSEntryBean.databaseURL</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>jdbc:oracle:kprb:</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>GPSEntryBean.JDBCDriverName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>oracle.jdbc.driver.OracleDriver</env-entry-value>
</env-entry>
</entity>
</enterprise-beans>
</ejb-jar>
"oracle_gpsentry.xml"
<?xml version="1.0"?>
<!DOCTYPE oracle-descriptor PUBLIC "-//Oracle Corporation.//DTD Oracle 1.1//EN" "oracle-ejb-jar.dtd">
<oracle-descriptor>
<mappings>
<ejb-mapping>
<ejb-name>GPSEntry</ejb-name>
<jndi-name>test/gpsentry</jndi-name>
</ejb-mapping>
</mappings>
<persistence-provider>
<description> specifies a type of persistence manager </description>
<persistence-name>psi-ri</persistence-name>
<persistence-deployer>oracle.aurora.ejb.persistence.ocmp.OcmpEntityDeployer</persistence-deployer>
</persistence-provider>
<persistence-descriptor>
<description> This specifies a particular type of persistence manager to be used for a bean. param is where you would put bean specific persistence info in the format of params. The deployment process just passes what's in the param to the persistence deployer. For the baby persistence, we do parse the persistence-mapping but for other persistence backend we don't do anything with the params </description>
<ejb-name>customerbean</ejb-name>
<persistence-name>psi-ri</persistence-name>
<psi-ri>
<schema>AVLMIS</schema>
<table>gps_hist</table>
<attr-mapping>
<field-name>gpsDateOfFix</field-name>
<column-name>gps_date_of_fix</column-name>
</attr-mapping>
<attr-mapping>
<field-name>gpsTimeOfFix</field-name>
<column-name>gps_time_of_fix</column-name>
</attr-mapping>
<attr-mapping>
<field-name>ISSI</field-name>
<column-name>issi</column-name>
</attr-mapping>
<attr-mapping>
<field-name>gpsCondition</field-name>
<column-name>gps_condition</column-name>
</attr-mapping>
<attr-mapping>
<field-name>gpsLatitude</field-name>
<column-name>gps_latitude</column-name>
</attr-mapping>
<attr-mapping>
<field-name>gpsLongitude</field-name>
<column-name>gps_longitude</column-name>
</attr-mapping>
<attr-mapping>
<field-name>gpsSpeedKnt</field-name>
<column-name>gps_speed_knt</column-name>
</attr-mapping>
</psi-ri>
</persistence-descriptor>
</oracle-descriptor>
Thanks in advance.Hi Nikos,
I obviously don't know what your entire situation is, but you may not
be aware that Oracle's DBMS embedded EJB container does not work well,
and as a result, Oracle decided to replace it with an external EJB
container which is part of a product called "Oracle Containers for
J2EE" (otherwise known as "OC4J"). The "other" forum (the J2EE forum)
deals mainly with OC4J.
As far as I know, Oracle recommends doing your EJB related work with
OC4J and not with the embedded EJB container.
Good Luck,
Avi. That's correct
Java code, implementing data bound logic, can still run in the database as Java stored procedures/packages/functions/triggers
while J2EE componentsdeployed in middle-tier implement business logic. Java in database enable the database to be an active participant to your deployment platform
in 9iDB R2 you will even be able to call-out Web client (using HTTP Client), EJB client (using oc4jclient.jar) or Web Service client
(using SOAP libraries)
Kuassi -
Deploying BMP Entity Bean with primary key calss
Hi,
I am using EJB 2.0 with and websphere studio 5.0 and database is sql server 2000.
My BMP Entity bean has a primary key class.From my client I am invoking the Entity Bean by calling it's findbyprimarykey method.
The home interface of my findbyprimarykey method returns a class of type Remote.But in the Entity Bean class,the return type is the primarykey class type.
My problem is invoking this findbyprimarykey from the client to get the remote interface so that the other business methods of the entity bean can be called.
The control goes into the ejbFindbyPrimaryKey but when it is returing from the Entity Bean class,it gives a remote exception (as the return type in Entity Bean class and Home interface are different for the findbyprimarykey method).
I think that somewhere in the deployment decriptor in my websphere,i have to specify the primarykey class type,which i am missing out and hence getting the error.
Please help me out with your advice and solution.
Thanks
Rahul PriyadarshiHi,
Sorry to disturb you again.
Even my code is also almost the same....i am pasting the code below...Please go through it and let me know if I have made any mistake..
EditVendorEntityBean.....(Bean Class)
package code.beans.EditVendor;
import code.beans.dataAccess.*;
import javax.ejb.CreateException;
import javax.ejb.RemoveException;
import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import javax.ejb.EJBException;
import javax.ejb.FinderException;
import javax.ejb.ObjectNotFoundException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.sql.*;
import javax.sql.*;
import java.util.*;
* Bean implementation class for Enterprise Bean: EditVendorEntity
public class EditVendorEntityBean implements javax.ejb.EntityBean {
private static Hashtable dataSources = new Hashtable();
private String username;
private int Vendor_ID;
private int Category_Id;
private String Category_Name;
private String Vendor_Name;
private String Vendor_Address1;
private String Vendor_Address2;
private String Contact_Name;
private String Home_Phone;
private String Work_Phone;
private String email;
private String faxno;
private String userloginname;
private boolean dirtyFlag = false;
private EntityContext context;
private static final String DS_NAME = "jdbc/spiPOPS";
Connection con = null;
Statement stmt = null;
PreparedStatement st = null;
ResultSet res = null;
//***********************Business Methods*********************
// Begin of Busines Methods
public void setData (String[] catname, String vendorname,String vendadd1,String vendadd2,String vendcontact,String venoff,String venres,String mailid,String venfax) {
System.out.println("in setData where Vendor Id= "+ Vendor_ID);
boolean status=false;
boolean existing=false;
ArrayList cat=new ArrayList();
try
cat=getcategorylist(this.Vendor_ID);
catch(SQLException e)
System.out.println("Could not get category list");
System.out.println("Size of cat array -->" + cat.size() + " and string array size -->" + catname.length);
if(catname.length>0)
//Removing unwanted vendor categories for a particular vendor id
for(int i=0;i<cat.size();i++)
existing=false;
String tempdata=(String)cat.get(i);
for(int j=0;j<catname.length;j++)
if(tempdata.equals(catname[j]))
existing=true;
if(!existing)
try
delvencat(this.Vendor_ID,tempdata.trim());
catch(SQLException e)
System.out.println("Could not delete record in POPS_VENDOR_CATEGORY for -->" + tempdata);
//Adding new vendor categories for a particular vendor
try
for(int i=0;i<catname.length;i++)
status=false;
String strcat=catname;
status=checkcat(this.Vendor_ID,strcat.trim());
if(!status)
insertvencat(this.Vendor_ID,strcat.trim());
catch(SQLException e)
System.out.println("Could not insert or select from POPS_VENDOR_CATEGORY table");
this.Vendor_Name =vendorname;
this.Vendor_Address1 =vendadd1;
this.Vendor_Address2 =vendadd2;
this.Contact_Name =vendcontact;
this.Work_Phone =venoff;
this.Home_Phone =venres;
this.email =mailid;
this.faxno =venfax;
dirtyFlag = true;
System.out.println("Leaving set data method");
public Vector getData() {
Vector vctRec=new Vector();
ArrayList arrdatas = new ArrayList();
arrdatas.add(""+this.Vendor_ID);
arrdatas.add(this.Vendor_Name);
arrdatas.add(this.Vendor_Address1);
arrdatas.add(this.Vendor_Address2);
arrdatas.add(this.Contact_Name);
arrdatas.add(this.Work_Phone);
arrdatas.add(this.Home_Phone);
arrdatas.add(this.email);
arrdatas.add(this.faxno);
vctRec.addElement(arrdatas);
ArrayList cat=new ArrayList();
try
System.out.println("Calling getcategorylist from getdata with vendorid-->" + this.Vendor_ID);
cat = getcategorylist(this.Vendor_ID);
catch(SQLException e)
System.out.println("Could not get datas for category list");
vctRec.addElement(cat);
ArrayList allcats=new ArrayList();
try
allcats = getallcategorylist();
catch(SQLException e)
System.out.println("Could not get datas for category list");
vctRec.addElement(allcats);
dirtyFlag = false;
System.out.println("Before return statement in getdata with vector size -->" + vctRec.size());
return vctRec;
// End of Business Methods
//**************************Entity Bean Methods*******************************
* ejbActivate
public void ejbActivate() {
Vendor_ID = Integer.parseInt((String)context.getPrimaryKey());
System.out.println("Inside ejbActivate Vendor_ID-->"+ Vendor_ID);
* ejbLoad
public void ejbLoad() {
System.out.println("Inside ejbLoad ********" );
try {
loadRow();
}catch (Exception ex) {
System.out.println("Failed in loadRow()");
throw new EJBException("ejbLoad: " +
ex.getMessage());
* ejbPassivate
public void ejbPassivate() {
System.out.println("Inside ejbPassivate " );
Vendor_ID = 0;
* ejbRemove
public void ejbRemove() throws javax.ejb.RemoveException {
//Empty Method
* ejbStore
public void ejbStore() {
System.out.println("Inside ejbStore " );
try {
storeRow();
}catch (Exception ex) {
System.out.println("Exception thrown in storeRow" + ex.getMessage());
throw new EJBException("ejbLoad: " +
ex.getMessage());
* getEntityContext
public javax.ejb.EntityContext getEntityContext() {
return context;
* setEntityContext
public void setEntityContext(javax.ejb.EntityContext ctx) {
System.out.println("Inside setEntityContext " );
try{
con = getConnection(DS_NAME);
System.out.println("DB Connection Created!!");
catch(Exception e){
this.context = ctx;
* unsetEntityContext
public void unsetEntityContext() {
System.out.println("Inside unsetEntityContext " );
closeDbConnection(con, res, st);
this.context = null;
* ejbCreate
//code.beans.EditVendor.EditVendorEntityKey
public code.beans.EditVendor.EditVendorEntityKey ejbCreate(String vendorid)
throws javax.ejb.CreateException {
return new EditVendorEntityKey(vendorid);
//return null;
* ejbPostCreate
public void ejbPostCreate(String vendorid) throws javax.ejb.CreateException {
//Empty
* ejbFindByPrimaryKey
//code.beans.EditVendor.EditVendorEntityKey
public code.beans.EditVendor.EditVendorEntityKey ejbFindByPrimaryKey(
code.beans.EditVendor.EditVendorEntityKey primaryKey)
throws javax.ejb.FinderException {
try {
if(selectByPrimaryKey(Integer.parseInt(primaryKey.getVendorId()))) {
System.out.println("Leaving the findbyprimarykey method from the entity bean");
return primaryKey;
//return null;
}else {
throw new ObjectNotFoundException
("Row for id " + primaryKey + " not found.");
}catch (Exception ex) {
throw new EJBException("EXCEPTION IN ejbFindByPrimaryKey :- " + ex.getMessage());
/*********************** Database Utility Routines *************************/
private boolean selectByPrimaryKey(int priKey)
throws SQLException {
System.out.println("inside selectByPrimaryKey for primary key " + priKey);
String queryStr ="SELECT VENDOR_ID FROM POPS_VENDOR WHERE VENDOR_ID = " + priKey;
System.out.println("in selectByPrimaryKey where queryString is: "+ queryStr);
stmt = con.createStatement();
ResultSet result = stmt.executeQuery(queryStr);
if(!result.next()) {
stmt.close();
System.out.println("Did not find "+priKey);
return false;
else { //Found the primaryKey
Vendor_ID = result.getInt("VENDOR_ID");
stmt.close();
return true;
private void loadRow() throws SQLException {
System.out.println("inside loadRow ...");
stmt = con.createStatement();
String queryStr = "SELECT VENDOR_NAME,VENDOR_ADDRESS1,VENDOR_ADDRESS2,CONTACT_NAME,HOME_PHONE,WORK_PHONE,EMAIL_ID,FAX_NO " +
"FROM POPS_VENDOR WHERE VENDOR_ID=" + Vendor_ID;
System.out.println("Inside loadRow()***********"+queryStr);
ResultSet result = stmt.executeQuery(queryStr);
ArrayList catadatas=new ArrayList();
if(!result.next())
throw new SQLException("No record for primary key" + Vendor_ID);
this.Vendor_ID =Vendor_ID;
this.Vendor_Name =result.getString("VENDOR_NAME");
this.Vendor_Address1 =result.getString("VENDOR_ADDRESS1");
this.Vendor_Address2 =result.getString("VENDOR_ADDRESS2");
this.Contact_Name =result.getString("CONTACT_NAME");
this.Home_Phone =result.getString("HOME_PHONE");
this.Work_Phone =result.getString("WORK_PHONE");
this.email =result.getString("EMAIL_ID");
this.faxno =result.getString("FAX_NO");
System.out.println("Leaving loadrow method with loaded datas for vendor -->" + Vendor_ID);
stmt.close();
private ArrayList getcategorylist(int vendor) throws SQLException{
String queryStr ="SELECT DISTINCT(VENDOR_CAT) FROM POPS_VENDOR_CATEGORY WHERE VENDOR_ID=" + vendor;
System.out.println("Query for the cat list --> " + queryStr);
stmt = con.createStatement();
ResultSet result = stmt.executeQuery(queryStr);
ArrayList catdatas=new ArrayList();
try{
while(result.next())
catdatas.add(result.getString("VENDOR_CAT"));
catch (SQLException e){
stmt.close();
System.out.println("Could not retrieve datas for Category list");
stmt.close();
System.out.println("size off array for cat -->" + catdatas.size() + " and datas ->" + catdatas);
return catdatas;
private ArrayList getallcategorylist() throws SQLException{
//String queryStr ="SELECT DISTINCT(VENDOR_CAT) FROM POPS_VENDOR_CATEGORY";
StringBuffer strquery=new StringBuffer(20);
strquery.append("SELECT DISTINCT(CATEGORY_NAME) FROM POPS_CATEGORY");
stmt = con.createStatement();
//ResultSet result = stmt.executeQuery(queryStr);
ResultSet result = stmt.executeQuery(strquery.toString());
ArrayList catdatas=new ArrayList();
try{
while(result.next())
//catdatas.add(result.getString("VENDOR_CAT"));
catdatas.add(result.getString("CATEGORY_NAME"));
catch (SQLException e){
stmt.close();
System.out.println("Could not retrieve datas for All Category list");
stmt.close();
return catdatas;
private void delvencat(int vendor,String vencat) throws SQLException {
int update=-1;
stmt = con.createStatement();
String queryStr ="DELETE FROM POPS_VENDOR_CATEGORY WHERE VENDOR_ID = " + vendor + " AND VENDOR_CAT = '" + vencat.toUpperCase() + "'";
System.out.println("Delete query --> " + queryStr);
update= stmt.executeUpdate(queryStr);
if(update!=1)
System.out.println("Did not find data to delete");
stmt.close();
private void insertvencat(int vendor,String vencat) throws SQLException {
int update=-1;
String queryStr ="INSERT INTO POPS_VENDOR_CATEGORY(VENDOR_ID,VENDOR_CAT)" +
" VALUES(" + vendor +",'" + vencat + "')";
System.out.println("Insert query --> " + queryStr);
stmt = con.createStatement();
update=stmt.executeUpdate(queryStr);
if(update!=1)
System.out.println("Could not insert records in the database");
stmt.close();
private boolean checkcat(int vendor,String catven) throws SQLException {
boolean datastatus=false;
String queryStr ="SELECT VENDOR_ID FROM POPS_VENDOR_CATEGORY WHERE VENDOR_ID = " + vendor + " AND VENDOR_CAT = '" + catven.toUpperCase() + "'";
stmt = con.createStatement();
ResultSet result = stmt.executeQuery(queryStr);
datastatus=result.next();
stmt.close();
return datastatus;
private void storeRow() throws SQLException {
System.out.println("Inside ejb store");
if (!dirtyFlag) {
System.out.println("Skipping the UPDATE because object is not dirty");
return;
CallableStatement cs=null;
try{
cs = con.prepareCall("EXEC POPS_VENDOR_UPDATE " + this.Vendor_ID + ",'" + this.Vendor_Name + "','" + this.Vendor_Address1 + "','" + this.Vendor_Address2 + "','" + this.Contact_Name + "','" + this.Work_Phone + "','" + this.Home_Phone + "','" + this.email + "','" + this.faxno +"'");
System.out.println("\n\n SQL Statement : \n " + "EXEC POPS_VENDOR_UPDATE " + this.Vendor_ID + ",'" + this.Vendor_Name + "','" + this.Vendor_Address1 + "','" + this.Vendor_Address2 + "','" + this.Contact_Name + "','" + this.Work_Phone + "','" + this.Home_Phone + "','" + this.email + "','" + this.faxno +"'");
cs.executeUpdate();
catch (SQLException e){
cs.close();
System.out. println("\n\n Error in calling stored procedure POPS_INSERT_NEW_REQUEST \n\n"+ e.getMessage() + "\n\n");
cs.close();
dirtyFlag = false;
private Connection getConnection(String dbName) throws SQLException
String configuredDataSourceName = null;
if (dbName == null) {
System.out.println("Attemp to get connection failed. The requested database name is null");
DataSource dbSource = getDataSource(dbName);
return dbSource.getConnection();
private DataSource getDataSource(String dbName)
// looking from cache;
DataSource dbSource = (DataSource) dataSources.get(dbName);
if (dbSource == null) { //we need to find it from JNDI
try {
Context ic = new InitialContext();
dbSource = (DataSource) ic.lookup(dbName);
dataSources.put(dbName, dbSource);
}catch (NamingException e){
return dbSource;
* User calls this function to safely close an connection
* @param connt The connection a datasource
* @param rs The resulSet inside this connection
* @param statement The statement associate with this connection
private void closeDbConnection(Connection cont,ResultSet rs,Statement statement)
if (rs != null)
try {
rs.close();
} catch (SQLException ignored) {
ignored.printStackTrace();
if (statement != null)
try {
statement.close();
} catch (SQLException ignored) {
ignored.printStackTrace();
if (cont != null)
try {
cont.close();
} catch (SQLException ignored) {
ignored.printStackTrace();
} //closeDbConnection
EditVendorEntity (Remote Interface)
package code.beans.EditVendor;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
import java.util.*;
* Remote interface for Enterprise Bean: EditVendorEntity
public interface EditVendorEntity extends javax.ejb.EJBObject {
public void setData (String[] catname, String vendorname,String vendadd1,String vendadd2,String vendcontact,String venoff,String venres,String mailid,String venfax)
throws RemoteException;
public Vector getData() throws RemoteException;
EditVendorEntityHome (Home Interface)
package code.beans.EditVendor;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import javax.ejb.DuplicateKeyException;
import javax.ejb.EJBHome;
import java.util.*;
* Home interface for Enterprise Bean: EditVendorEntity
public interface EditVendorEntityHome extends javax.ejb.EJBHome {
* Creates an instance from a key for Entity Bean: EditVendorEntity
public code.beans.EditVendor.EditVendorEntity create(String vendorid)
throws javax.ejb.CreateException, java.rmi.RemoteException;
* Finds an instance using a key for Entity Bean: EditVendorEntity
public code.beans.EditVendor.EditVendorEntity findByPrimaryKey(
code.beans.EditVendor.EditVendorEntityKey Vendor_ID)
throws javax.ejb.FinderException, java.rmi.RemoteException;
EditVendorEntityKey (Primary Key Class)
package code.beans.EditVendor;
* Key class for Entity Bean: EditVendorEntity
public class EditVendorEntityKey implements java.io.Serializable {
static final long serialVersionUID = 3206093459760846163L;
public String primkey;
* Creates an empty key for Entity Bean: EditVendorEntity
public EditVendorEntityKey() { }
public EditVendorEntityKey(String primarykey) {
this.primkey=primarykey;
public String getVendorId() {
return primkey;
* Returns true if both keys are equal.
public boolean equals(java.lang.Object otherKey) {
if (otherKey instanceof code.beans.EditVendor.EditVendorEntityKey) {
code.beans.EditVendor.EditVendorEntityKey o =
(code.beans.EditVendor.EditVendorEntityKey) otherKey;
return (primkey.equals(otherKey));
return false;
* Returns the hash code for the key.
public int hashCode() {
return (primkey.hashCode());
Please go through and give me your comments and solution...
Thanks in advance
Rahul -
How to specify JDBC Oracle url using deployment tool - Entity Bean
Hello I'am new to EJB.
When creating a entity bean-managed persistence and you need to specify the jdbc url with user name
and password to establish a connection object, how does one specify that in the deployment
tool?
Heres an example of what has in the J2EE tutorial has in AccountEJB to get an connection object
private String dbName = "java:comp/env/jdbc/AccountDB";
private void makeConnection() throws NamingException, SQLException {
InitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup(dbName);
con = ds.getConnection();
Now if my oracle jdbc url is to be jdbc:oracle:thin:@Abe:1521:dev
ie My host is Abe, port number 1521 and database name of dev and username/password will be system/manager.
what would my dbName be at the top?
Would my JNDI lookup of a DataSource resource "java:comp/env/jdbc/AccountDB" become "java:comp/env/jdbc/dev" for starters?
In the Resource Factories Reference Code I've add a reference of
Coded Name: jdbc/dev
Type: javax.sql.DataSource
Authentication: Container
and down the bottom of the I've put JNDI Name: MyAccount
according to the AccountClient code of:
Context initial = new InitialContext();
Object objref = initial.lookup("MyAccount");
and put User Name of "system" and Password of "manager"
I'am sure in the source code I have to put
Class.forName("oracle.jdbc.driver.OracleDriver")
else you would get that no sutitable driver error, maybe you don't have to if ejb server is smart enough?
What I'am confuse about is where to specify the jdbc url of "jdbc:oracle:thin:@Abe:1521:dev" ??
Know it won't work because of this vital part. Do you have to put that somewhere else in the deployment tool or properties file, or some other tool??
Please help
Thanks
Abraham KhalilWhen running the client after successful deployment with jdbc, I'am getting
javax.naming.CommunicationException: java.rmi.MarshalException: CORBA MARSHAL 1398079699 Maybe; nested exception is:
org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : minor code: 1398079699 completed: Maybe
org.omg.CORBA.MARSHAL: Unable to read value from underlying bridge : minor code: 1398079699 completed: Maybe
at com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:923)
at com.sun.corba.ee.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:281)
at com.sun.corba.ee.internal.corba.TCUtility.unmarshalIn(TCUtility.java:274)
at com.sun.corba.ee.internal.corba.AnyImpl.read_value(AnyImpl.java:554)
at com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_any(CDRInputStream_1_0.java:605)
at com.sun.corba.ee.internal.iiop.CDRInputStream.read_any(CDRInputStream.java:252)
at com.sun.corba.ee.internal.javax.rmi.CORBA.Util.readAny(Util.java:203)
at javax.rmi.CORBA.Util.readAny(Unknown Source)
at org.omg.stub.com.sun.enterprise.naming._SerialContextProvider_Stub.lookup(Unknown Source)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:133)
at javax.naming.InitialContext.lookup(Unknown Source)
at AccountClient.main(AccountClient.java:21)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:151)
at javax.naming.InitialContext.lookup(Unknown Source)
at AccountClient.main(AccountClient.java:21)
One thing I don't like about EJB is that everything is transparent which is good! But its much
harder to debug! :( Tried to see if I can figure it out. Hope someone has seen this problem before? -
Can I deploy the entity bean in different jar files?
I have an application EAR, which contains several JARs. I have an entity bean A that has relationships with 2 other different entity beans B and C in the same DB. Now, I have to deploy this entity A together with B in AB.jar, and A with C in AC.jar. Both AB.jar and AC.jar are modules of the same application EAR file. They all use the same data sources to the same database, and named by different <ejb-name>.
I have no problem with deploying the app to WebLogic 8.1. But the JSP page accessing entity A got errors. Sometime, it got error complaining that the container-generated ejbFindAccount mehtod is abstract.
My questions are,
Can an entity bean be defined twice in 2 different jars?
When container load AB.jar and AC.jar, does it generate the finder methods twice?
I guess there are some name conflicts going on here. What should I do to avoid it?
Any comments are very much appreciated.Thanks for your answer, but how can I use it in connection with relationships?
<!-- ********************************************************************** -->
<!-- Relationship: View to FrameworkUser -->
<!-- ********************************************************************** -->
<ejb-relation id="View-FrameworkUser">
<description></description>
<ejb-relation-name>View-FrameworkUser</ejb-relation-name>
<ejb-relationship-role>
<ejb-relationship-role-name>Views-have-FrameworkUser</ejb-relationship-role-name>
<multiplicity>Many</multiplicity>
<relationship-role-source>
<ejb-name>View</ejb-name>
</relationship-role-source>
<cmr-field>
<cmr-field-name>frameworkUser</cmr-field-name><!-#- getter/setter -#->
<cmr-field-type>java.util.Collection</cmr-field-type>
</cmr-field>
</ejb-relationship-role>
<!-#- *************** -#->
<ejb-relationship-role>
<ejb-relationship-role-name>FrameworkUser-has-Views</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source>
<!-#- *******REFERENCE******** -#->
<ejb-name>ejb_foo_jar2_ejb.jar#FrameworkUser</ejb-name>
<!-#- *******REFERENCE******** -#->
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
...this obviously doesn't work...
Do I have to write a new <entity> where I define the referenced entity? -
Noob Question: Problem with Persistence in First Entity Bean
Hey folks,
I have started with EJB3 just recently. After reading several books on the topic I finally started programming myself. I wanted to develop a little application for getting a feeling of the technology. So what I did is to create a AppClient, which calls a Stateless Session Bean. This Stateless Bean then adds an Entity to the Database. For doing this I use Netbeans 6.5 and the integrated glassfish. The problem I am facing is, that the mapping somehow doesnt work, but I have no clue why it doesn't work. I just get an EJBException.
I would be very thankfull if you guys could help me out of this. And don't forget this is my first ejb project - i might need a very detailed answer ... I know - noobs can be a real ....
So here is the code of the application. I have a few methods to do some extra work there, you can ignore them, there are of no use at the moment. All that is really implemented is testConnection() and testAddCompany(). The testconnection() Methode works pretty fine, but when it comes to the testAddCompany I get into problems.
Edit:As I found out just now, there is the possibility of Netbeans to add a Facade pattern to an Entity bean. If I use this, everythings fine and it works out to be perfect, however I am still curious, why the approach without the given classes by netbeans it doesn't work.
public class Main {
private EntryRemote entryPoint = null;
public static void main(String[] args) throws NamingException {
Main main = new Main();
main.runApplication();
private void runApplication()throws NamingException{
this.getContext();
this.testConnection();
this.testAddCompany();
this.testAddShipmentAddress(1);
this.testAddBillingAddress(1);
this.testAddEmployee(1);
this.addBankAccount(1);
private void getContext() throws NamingException{
InitialContext ctx = new InitialContext();
this.entryPoint = (EntryRemote) ctx.lookup("Entry#ejb.EntryRemote");
private void testConnection()
System.err.println("Can Bean Entry be reached: " + entryPoint.isAlive());
private void testAddCompany(){
Company company = new Company();
company.setName("JavaFreaks");
entryPoint.addCompany(company);
System.err.println("JavaFreaks has been placed in the db");
}Here is the Stateless Session Bean. I added the PersistenceContext, and its also mapped in the persistence.xml file, however here the trouble starts.
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Stateless(mappedName="Entry")
public class EntryBean implements EntryRemote {
@PersistenceContext(unitName="PersistenceUnit") private EntityManager manager;
public boolean isAlive() {
return true;
public boolean addCompany(Company company) {
manager.persist(company);
return true;
public boolean addShipmentAddress(long companyId) {
return false;
public boolean addBillingAddress(long companyId) {
return false;
public boolean addEmployee(long companyId) {
return false;
public boolean addBankAccount(long companyId) {
return false;
}That you guys and gals will have a complete overview of whats really going on, here is the Entity as well.
package ejb;
import java.io.Serializable;
import javax.persistence.*;
@Entity
@Table(name="COMPANY")
public class Company implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name="COMPANY_NAME")
private String name;
public Long getId() {
return id;
public void setId(Long id) {
this.id = id;
public String getName() {
return name;
public void setName(String name) {
this.name = name;
System.err.println("SUCCESS: CompanyName SET");
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Company)) {
return false;
Company other = (Company) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
return true;
@Override
public String toString() {
return "ejb.Company[id=" + id + "]";
}And the persistence.xml file
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="PersistenceUnit" transaction-type="JTA">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<jta-data-source>jdbc/sample</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="toplink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>And this is the error message
08.06.2009 10:30:46 com.sun.enterprise.appclient.MainWithModuleSupport <init>
WARNUNG: ACC003: Ausnahmefehler bei Anwendung.
javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.RemoteException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaktion für Zurücksetzung markiert.; nested exception is:
javax.transaction.RollbackException: Transaktion für Zurücksetzung markiert.
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.RemoteException: Transaction aborted; nested exception is: javax.transaction.RollbackException: Transaktion für Zurücksetzung markiert.; nested exception is:
javax.transaction.RollbackException: Transaktion für Zurücksetzung markiert.
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:243)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
at ejb.__EntryRemote_Remote_DynamicStub.addCompany(ejb/__EntryRemote_Remote_DynamicStub.java)I spend half the night figuring out whats wrong, however I couldnt find any solution.
If you have any idea pls let me know
Best regards and happy coding
Taggert
Edited by: Taggert_77 on Jun 8, 2009 2:27 PMWell I don't understand this. If Netbeans created a Stateless Session Bean as a facade then it works -and it is implemented as a CMP, not as a BMP as you suggested.
I defenitely will try you suggestion, just for curiosity and to learn the technology, however I dont have see why BMP will work and CMP won't.
I also don't see why a stateless bean can not be a CMP. As far as I read it should not matter. Also on the link you sent me, I can't see anything related to that.
Maybe you can help me answering these questions.
I hope the above lines don't sound harsh. I really appreciate your input.
Best regards
Taggert -
Problem creating EJB 3.0 Entity bean in JDeveloper
Hello all,
I trying to create my first entity bean in JDeveloper.
JDevelper create the entity bean with the code below:
package model;
import java.io.Serializable;
import javax.persistence.Entity;
@Entity
public class BatchSettlementT implements Serializable {
public BatchSettlementT() {
The problem is that JDeveloper don't find the import command import javax.persistence.Entity;
What am I doing wrong?
I'm using JDeveloper Studio Edition Version 10.1.3.1.0.3914.
My libraries are:
- TopLink
- Oracle XML Parser 2
- EJB 3.0
- Toplink Essentials JPA
- J2EE
Thanks in advance.It's very strange, when I type import.javax. in my class there is no persistence package available, do you have any idea what's wrong.
I did set the technology scope to EJB either.
Thanks! -
Deploying CMP entity bean throws compilation error.
Jdeveloper build works fine but the server deployment ( embedded) fails. I linked tools.jar to j2ee home dir, same version as jdev uses. Session beans deploy OK.
The table corr to the entity bean has a primary key and the entity bean was created by dragging-dropping table onto UML diagram.
error is >>>cmp-field of type 'java.lang.Long' does not have a no-arg constructor which is needed for properties/fields based mapping<<<, message details follow after dashed line.
Platform details - Jdeveloper 9.0.3 on mdk 9.0, JDK 1.4.1 ( JDK 1.3.1 also does the same).
[Starting OC4J using the following ports: HTTP=8988, RMI=23891, JMS=9227.]
/usr/java/j2sdk1.4.1/bin/java -hotspot -classpath /var/jdeveloper/j2ee/home/oc4j.jar -Xverify:none -Doracle.j2ee.dont.use.memory.archive=true -Xrs com.evermind.server.OC4JServer -config /home/demo/jdevhome/system9.0.3.1035/oc4j-config/server.xml
[waiting for the server to complete its initialization...]
Embedded OC4J startup time: 9611 ms.
Copying default deployment descriptor from archive at /home/demo/jdevhome/mywork/MyHRApplication/EJB-Tier/classes/META-INF/orion-ejb-jar.xml to deployment directory /home/demo/jdevhome/system9.0.3.1035/oc4j-config/application-deployments/current-workspace-app/classes...
Auto-deploying file:/home/demo/jdevhome/mywork/MyHRApplication/EJB-Tier/classes/ (No previous deployment found)... Error compiling /home/demo/jdevhome/mywork/MyHRApplication/EJB-Tier/classes: cmp-field of type 'java.lang.Long' does not have a no-arg constructor which is needed for properties/fields based mapping
Oracle9iAS (9.0.3.0.0) Containers for J2EE initializedPlease note that the data-source has been re-architectured in 10.1.3 DP3 and you should have DataSource as follows:
<data-sources xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='http://xmlns.oracle.com/oracleas/schema/data-sources-10_1.xsd' schema-major-version='10' schema-minor-version='1'>
<managed-data-source connection-pool-name='Example Connection Pool' jndi-name='jdbc/OracleDS' name='OracleManagedDS' />
<connection-pool name='Example Connection Pool' >
<connection-factory factory-class='oracle.jdbc.pool.OracleDataSource' user='scott' password='tiger' url='jdbc:oracle:thin:@localhost:1521:orcl'>
</connection-factory>
</connection-pool>
</data-sources> -
Error Deploying CMP Entity Bean
Hi,
I am new to Entity Beans and am trying to deploy a CMP Entity Bean without any success.
I did search this forum for similar issues and tried those suggestions as well but that has not helped. Was wondering if someone could help me out on this.
The Entity bean has 2 fields: name and description.
The ejb-jar.xml file for this bean is:
<enterprise-beans>
<entity>
<ejb-name>Product</ejb-name>
<home>example.cmp.ProductHome</home>
<remote>example.cmp.Product</remote>
<ejb-class>example.cmp.ProductBean</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>PRODUCTS</abstract-schema-name>
<cmp-field>
<field-name>name</field-name>
</cmp-field>
<cmp-field>
<field-name>description</field-name>
</cmp-field>
<primkey-field>name</primkey-field>
<query>
</query>
</entity>
</enterprise-beans>
The error that I get while deploying the bean is:
Error deploying EJB homes for: file:/C:/servers/oc4j1013/j2ee/home/applications/cmptest/cmptest.jar
java.lang.InstantiationException: Error looking up cmt-datasource at jdbc/OracleDS (name not found)
at com.evermind.server.ApplicationState.getDataSourceContainer(ApplicationState.java:384)
Error deploying file:/C:/servers/oc4j1013/j2ee/home/applications/cmptest/cmptest.jar
homes: Error looking up cmt-datasource at jdbc/OracleDS (name not found)
[java] [TopLink Severe]: 2005.04.17 10:22:20.156--ServerSession(28816172)--
Local Exception Stack:
[java] Exception [TOPLINK-7060] (TopLink (Oracle OC4J CMP) - 10g release 3(10.1.3.0) (Build 041129)): oracle.toplink.exceptions.ValidationException
[java] Exception Description: Cannot acquire data source [jdbc/OracleDS].
[java] Internal Exception: javax.naming.NameNotFoundException: jdbc/OracleDS not found
[java] at oracle.toplink.exceptions.ValidationException.cannotAcquireDataSource(ValidationException.java:208)
[java] at oracle.toplink.internal.ejb.cmp.oc4j.Oc4jNonJtaConnector.getOrCreateDataSource(Oc4jNonJtaConnector.java:62)
If anybody knows what the problem is please let me know.
Thanks in advance.
BhupenPlease note that the data-source has been re-architectured in 10.1.3 DP3 and you should have DataSource as follows:
<data-sources xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='http://xmlns.oracle.com/oracleas/schema/data-sources-10_1.xsd' schema-major-version='10' schema-minor-version='1'>
<managed-data-source connection-pool-name='Example Connection Pool' jndi-name='jdbc/OracleDS' name='OracleManagedDS' />
<connection-pool name='Example Connection Pool' >
<connection-factory factory-class='oracle.jdbc.pool.OracleDataSource' user='scott' password='tiger' url='jdbc:oracle:thin:@localhost:1521:orcl'>
</connection-factory>
</connection-pool>
</data-sources>
Maybe you are looking for
-
Yesterday I had problems with the website Myfitnesspal.com. I have a tab set to automatically open when I start the browser every day. I could not log any information into the site, so I tried a log off and log on. It won't let me log on to the site.
-
Hello, fellow PKGBUILD-writers (and everyone who wants to join, too ). As some of you have noticed, the UML drawing tool gaphor in AUR has been pretty outdated for quite some time and quite a few seem to have tried to get the latest version up and ru
-
We recently implemented activity reporting in our portal. Looking at the reports we are seeing a small number of annoymous users logging in as 'Guest'. We are not sure where these guests are coming from or how they are logging in. How would someone l
-
Keep asking me to authorize the computer
"The Iphone cannot be synced because this computer is no longer authorized for purchased items that are on this iphone." I tried to re-authorize the computer at the store and it did said this computer is already authorized. But however the same mess
-
Creating Web Parts for an Enterprise Wiki...
Hi All, I am trying to set up a knowledge base using an Enterprise Wiki site in SharePoint Online (apologies if this is the wrong forum) and I would like to be able to control the layout of the certain entries. I think I need some web parts, but I a