Hello friends,
I am new to
JBOSS environment. I have put all my efforts trying to configure MYSQL4.x with JBOSS 3.x. I can very well get my
ejb's from the Naming Server but when I try to get any other object such as
String, Datasource objects I get a exception javax.naming.NameNotFoundException.
According to me there are two possibilities :
1. Problem with JNDI : Can be. But I can get my ejbs back from JNDI. But not Datasource or any other say String object.
2. Problem with MYSQL Configuration : - no comments -
When I cut and paste the mysql-service.xml file I get the message :
============================================================================
JBOSS Console :
14:09:45,312 INFO [MainDeployer] Starting deployment of package: file:/E:/jboss/jboss-tomcat/server/default/deploy/mysql-service.xml
14:09:45,328 INFO [JBossManagedConnectionPool] Creating
14:09:45,328 INFO [JBossManagedConnectionPool] Created
14:09:45,328 INFO [LocalTxConnectionManager] Creating
14:09:45,328 INFO [LocalTxConnectionManager] Created
14:09:45,328 INFO [JBossManagedConnectionPool] Starting
14:09:45,328 INFO [JBossManagedConnectionPool] Started
14:09:45,343 INFO [LocalTxConnectionManager] Starting
14:09:45,359 INFO [MySqlDS] Bound connection factory for resource adapter 'JBoss LocalTransaction
JDBC Wrapper' to JNDI name '
java:/MySqlDS'
14:09:45,359 INFO [LocalTxConnectionManager] Started
14:09:45,359 INFO [MainDeployer] Deployed package: file:/E:/jboss/jboss-tomcat/server/default/deploy/mysql-service.xml
============================================================================
Client Code :
HashtablehashTable= new Hashtable();
hashTable.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
hashTable.put(Context.PROVIDER_URL,"jnp://happy:1099");
Context context= new InitialContext(hashTable);
DataSource dataSource= (DataSource) context.lookup("java:/MySqlDS");
============================================================================
login-config.xml
<!--
Testing for MYSQL Database Starts here -->
<application-policy name = "MySQLDbRealm">
<authentication>
<login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule" flag = "required">
<module-option name = "principal">root</module-option>
<module-option name = "userName">root</module-option>
<module-option name = "password"></module-option>
<module-option name = "managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=MySqlDS</module-option>
</login-module>
</authentication>
</application-policy>
<!-- Testing for MYSQL Database Ends here -->
============================================================================
mysql-service.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- ===================================================================== -->
<!-- -->
<!-- JBoss Server Configuration -->
<!-- -->
<!-- ===================================================================== -->
<server>
<!-- ==================================================================== -->
<!-- New ConnectionManager setup for mysql using 2.0.11 driver -->
<!-- Build jmx-api (build/build.sh all) and view for config documentation -->
<!-- ==================================================================== -->
<mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=MySqlDS">
<!-- Include a login module configuration named MySqlDbRealm.
Update your login-conf.xml, here is an example for a
ConfiguredIdentityLoginModule:
<application-policy name = "MySqlDbRealm">
<authentication>
<login-module code = "org.jboss.resource.security.ConfiguredIdentityLoginModule" flag = "required">
<module-option name = "principal">yourprincipal</module-option>
<module-option name = "userName">yourusername</module-option>
<module-option name = "password">yourpassword</module-option>
<module-option name = "managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=MySqlDS</module-option>
</login-module>
</authentication>
</application-policy>
NOTE: the application-policy name attribute must match SecurityDomainJndiName, and the
module-option name = "managedConnectionFactoryName"
must match the object name of the ConnectionManager you are configuring here.
-->
<!--uncomment out this line if you are using the MySqlDbRealm above -->
<attribute name="SecurityDomainJndiName">MySqlDbRealm</attribute>
<!---->
<depends optional-attribute-name="ManagedConnectionFactoryName">
<!--embedded mbean-->
<mbean code="org.jboss.resource.connectionmanager.RARDeployment" name="jboss.jca:service=LocalTxDS,name=MySqlDS">
<attribute name="JndiName">MySqlDS</attribute>
<attribute name="ManagedConnectionFactoryProperties">
<properties>
<config-property name="ConnectionURL" type="java.lang.String">jdbc:mysql://happy:3306/test</config-property>
<config-property name="DriverClass" type="java.lang.String">org.gjt.mm.mysql.Driver</config-property>
<!--set these only if you want only default logins, not through JAAS -->
<config-property name="UserName" type="java.lang.String">root</config-property>
<config-property name="Password" type="java.lang.String"></config-property>
</properties>
</attribute>
<!--Below here are advanced properties -->
<!--hack-->
<depends optional-attribute-name="OldRarDeployment">jboss.jca:service=RARDeployment,name=JBoss LocalTransaction JDBC Wrapper</depends>
</mbean>
</depends>
<depends optional-attribute-name="ManagedConnectionPool">
<!--embedded mbean-->
<mbean code="org.jboss.resource.connectionmanager.JBossManagedConnectionPool" name="jboss.jca:service=LocalTxPool,name=MySqlDS">
<attribute name="MinSize">0</attribute>
<attribute name="MaxSize">50</attribute>
<attribute name="BlockingTimeoutMillis">5000</attribute>
<attribute name="IdleTimeoutMinutes">15</attribute>
<!--criteria indicates if Subject (from security domain) or app supplied
parameters (such as from getConnection(user, pw)) are used to distinguish
connections in the pool. Choices are
ByContainerAndApplication (use both),
ByContainer (use Subject),
ByApplication (use app supplied params only),
ByNothing (all connections are equivalent, usually if adapter supports
reauthentication)-->
<attribute name="Criteria">ByContainer</attribute>
</mbean>
</depends>
<depends optional-attribute-name="CachedConnectionManager">jboss.jca:service=CachedConnectionManager</depends>
<depends optional-attribute-name="JaasSecurityManagerService">jboss.security:service=JaasSecurityManager</depends>
<attribute name="TransactionManager">java:/TransactionManager</attribute>
<!--make the rar deploy! hack till better deployment-->
<depends>jboss.jca:service=RARDeployer</depends>
</mbean>
</server>
============================================================================