on 11-30-2004 4:11 PM
While deploying an .ear-Archive with CMP Entity Bean archive and webarchive containing Servletclass extending ServletTestCase for running EJB-Tests with Cactus I get the following error.
Reason: Application sap.com/bank_ear cannot be started, because it has hard reference to resource CONFIG_DB with type javax.sql.DataSource, but it is not active on the server.
I already checked my application for references to CONFIG_DB as suggested in other threads.
I created a data-source-alias:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE data-source-aliases SYSTEM "data-source-aliases.dtd">
<data-source-aliases>
<aliases>
<data-source-name>${com.sap.datasource.default}</data-source-name>
<alias>DB_BANK</alias>
</aliases>
</data-source-aliases>
and refer it in
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persistent-ejb-map SYSTEM "persistent.dtd">
<persistent-ejb-map>
<locking
type="Table"/>
<db-properties>
<data-source-name>DB_BANK</data-source-name>
<database-vendor
name="SAPDB"/>
</db-properties>
<entity-beans>
<entity-bean>
<ejb-name>AccountBean</ejb-name>
<table-name>BA_ACCOUNT</table-name>
<field-map
key-type="NoKey">
<field-name>holderId</field-name>
<column>
<column-name>HOLDER_ID</column-name>
</column>
</field-map>
<field-map
key-type="NoKey">
<field-name>balance</field-name>
<column>
<column-name>BALANCE</column-name>
</column>
</field-map>
<field-map
key-type="PrimaryKey">
<field-name>ejb_pk</field-name>
<column>
<column-name>ACCOUNT_ID</column-name>
</column>
</field-map>
</entity-bean>
</entity-beans>
<relationships/>
</persistent-ejb-map>
Also I created resource-refs in the bean`s DDs.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-j2ee-engine SYSTEM "ejb-j2ee-engine.dtd">
<ejb-j2ee-engine>
<description>
</description>
<enterprise-beans>
<enterprise-bean>
<ejb-name>AccountBean</ejb-name>
<jndi-name>Accounting</jndi-name>
<resource-ref>
<res-ref-name>jdbc/DB_BANK</res-ref-name>
<res-link>DB_BANK</res-link>
</resource-ref>
<entity-props/>
</enterprise-bean>
</enterprise-beans>
</ejb-j2ee-engine>
<?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>
<description>EJB JAR description</description>
<display-name>EJB JAR</display-name>
<enterprise-beans>
<entity>
<ejb-name>AccountBean</ejb-name>
<home>com.plecto.admin.account.AccountHome</home>
<remote>com.plecto.admin.account.Account</remote>
<ejb-class>com.plecto.admin.account.AccountBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>java.lang.Object</prim-key-class>
<reentrant>False</reentrant>
<cmp-version>2.x</cmp-version>
<abstract-schema-name>AccountSchema</abstract-schema-name>
<cmp-field>
<description>
</description>
<field-name>holderId</field-name>
</cmp-field>
<cmp-field>
<description>
</description>
<field-name>balance</field-name>
</cmp-field>
<resource-ref>
<res-ref-name>jdbc/DB_BANK</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</entity>
</enterprise-beans>
</ejb-jar>
<b></b>
Hello Werner,
The mappings seem to be alright at a first glance.
Have you tried out un- and redeploying your application? Sometimes values appear to be cached in the server. So if you have deployed the application before you entered DB_BANK as alias this might solve the problem...
BR
Daniel
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
82 | |
10 | |
10 | |
9 | |
6 | |
6 | |
5 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.