Zdar,
potreboval bych pomoct s tim, jak se pripojit k databasi v JBoss. Mam default
nastaveni database, dodavane s JBoss.
Mam AccountBean s kodem:
private void makeConnection() {
try {
InitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup("DefaultDS");
connection = ds.getConnection();
} catch (NamingException e) {
throw new EJBException("Can not find the database!", e);
} catch (SQLException e) {
throw new EJBException("Can not connect to the database", e);
}
}
pak mam ejb-jar.xml s kodem:
<ejb-jar>
<enterprise-beans>
<entity>
<ejb-name>AccountEJB</ejb-name>
<home>cz.ixos.ejb.entity.account.AccountHome</home>
<remote>cz.ixos.ejb.entity.account.Account</remote>
<ejb-class>cz.ixos.ejb.entity.account.AccountBean</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>false</reentrant>
<resource-ref>
<res-ref-name>DefaultDS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</entity>
</enterprise-beans>
</ejb-jar>
a jboss.xml:
<jboss>
<enterprise-beans>
<entity>
<ejb-name>AccountEJB</ejb-name>
<jndi-name>ejb/AccountHome</jndi-name>
<resource-ref>
<res-ref-name>DefaultDS</res-ref-name>
<jndi-name></jndi-name>
</resource-ref>
</entity>
</enterprise-beans>
</jboss>
Kdyz vsak beana zavola makeConnection() dostanu:
14:39:25,646 ERROR [LogInterceptor] EJBException in method: public abstract
cz.ixos.ejb.entity.account.Account
cz.ixos.ejb.entity.account.AccountHome.create(java.lang.String,java.lang.String,java.lang.String,java.math.BigDecimal)
throws java.rmi.RemoteException,javax.ejb.CreateException, causedBy:
javax.naming.NameNotFoundException: DefaultDS not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:491)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:499)
at org.jnp.server.NamingServer.getObject(NamingServer.java:505)
at org.jnp.server.NamingServer.lookup(NamingServer.java:278)
Co delam spatne? Uz nad tim dumam druhy den a nic me nepada..
Diky,
Lubos