Connect to MySQL without Datasource in JBoss AS 7.1
pradeepsixer Jul 18, 2013 8:06 AMHi,
I am using JBoss AS 7.1 and am trying to connect to MySQL database without creating a datasource name. Unfortunately, while running the client program, the Bean throws ClassNotFoundException
Here is what I did :
I have put the mysql-connector-java-5.1.18-bin.jar in JBOSS_HOME/modules/com/mysql/jdbc/main . And created a module.xml file with the following contents :
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.0" name="com.mysql.jdbc"> <resources> <resource-root path="mysql-connector-java-5.1.18-bin.jar"/> </resources> <dependencies> <module name="javax.api"/> </dependencies> </module>
Then updated the standalone.xml file with the following line under the drivers node
<driver name="mysql" module="com.mysql.jdbc"/>
Here is my Bean Code :
package com.testing.dbaccess;
import javax.ejb.Stateless;
/**
* Session Bean implementation class DatabaseAccess
*/
@Stateless
public class DatabaseAccess implements DatabaseAccessRemote
{
/**
* Default constructor.
*/
public DatabaseAccess()
{
// TODO Auto-generated constructor stub
}
public void testConnection()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Success");
}
catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
And my interface for the bean would be :
package com.testing.dbaccess;
import javax.ejb.Remote;
@Remote
public interface DatabaseAccessRemote
{
public void testConnection();
}
My Client program is :
package com.testing.client;
import com.testing.dbaccess.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.util.Properties;
public class DBClient
{
public static void main(String a[])
{
DatabaseAccessRemote dbaccess = searchBean();
dbaccess.testConnection();
}
private static DatabaseAccessRemote searchBean()
{
Context initialContext;
Properties properties = new Properties();
DatabaseAccessRemote bean = null;
properties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
try
{
initialContext = new InitialContext(properties);
bean = (DatabaseAccessRemote) initialContext
.lookup("ejb:/testingEjb//DatabaseAccess!com.testing.dbaccess.DatabaseAccessRemote");
}
catch (NamingException e)
{
e.printStackTrace();
}
return bean;
}
}
And i get the following error when i run the client :
17:30:17,864 ERROR [stderr] (EJB default - 1) java.lang.ClassNotFoundException: com.mysql.jdbc.Driver from [Module "deployment.testingEjb.jar:main" from Service Module Loader] 17:30:17,867 ERROR [stderr] (EJB default - 1) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 17:30:17,868 ERROR [stderr] (EJB default - 1) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 17:30:17,869 ERROR [stderr] (EJB default - 1) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 17:30:17,871 ERROR [stderr] (EJB default - 1) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 17:30:17,872 ERROR [stderr] (EJB default - 1) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) 17:30:17,874 ERROR [stderr] (EJB default - 1) at java.lang.Class.forName0(Native Method) 17:30:17,875 ERROR [stderr] (EJB default - 1) at java.lang.Class.forName(Class.java:186) 17:30:17,876 ERROR [stderr] (EJB default - 1) at com.testing.dbaccess.DatabaseAccess.testConnection(DatabaseAccess.java:24) 17:30:17,877 ERROR [stderr] (EJB default - 1) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 17:30:17,878 ERROR [stderr] (EJB default - 1) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 17:30:17,879 ERROR [stderr] (EJB default - 1) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 17:30:17,881 ERROR [stderr] (EJB default - 1) at java.lang.reflect.Method.invoke(Method.java:601) 17:30:17,882 ERROR [stderr] (EJB default - 1) at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72) 17:30:17,884 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:17,885 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) 17:30:17,887 ERROR [stderr] (EJB default - 1) at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36) 17:30:17,888 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:17,889 ERROR [stderr] (EJB default - 1) at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47) 17:30:17,896 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:17,897 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) 17:30:17,900 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:17,901 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) 17:30:17,902 ERROR [stderr] (EJB default - 1) at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53) 17:30:17,904 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:17,906 ERROR [stderr] (EJB default - 1) at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) 17:30:17,915 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:17,916 ERROR [stderr] (EJB default - 1) at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228) 17:30:17,918 ERROR [stderr] (EJB default - 1) at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304) 17:30:17,919 ERROR [stderr] (EJB default - 1) at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190) 17:30:17,920 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:17,921 ERROR [stderr] (EJB default - 1) at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:80) 17:30:17,922 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:17,923 ERROR [stderr] (EJB default - 1) at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) 17:30:17,925 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:17,926 ERROR [stderr] (EJB default - 1) at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) 17:30:17,927 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:17,928 ERROR [stderr] (EJB default - 1) at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) 17:30:17,929 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:17,930 ERROR [stderr] (EJB default - 1) at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:43) 17:30:17,932 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:17,933 ERROR [stderr] (EJB default - 1) at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) 17:30:17,934 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:17,935 ERROR [stderr] (EJB default - 1) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) 17:30:17,936 ERROR [stderr] (EJB default - 1) at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165) 17:30:17,937 ERROR [stderr] (EJB default - 1) at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.invokeMethod(MethodInvocationMessageHandler.java:302) 17:30:17,939 ERROR [stderr] (EJB default - 1) at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.access$200(MethodInvocationMessageHandler.java:64) 17:30:17,940 ERROR [stderr] (EJB default - 1) at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:196) 17:30:17,942 ERROR [stderr] (EJB default - 1) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 17:30:17,943 ERROR [stderr] (EJB default - 1) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 17:30:17,944 ERROR [stderr] (EJB default - 1) at java.util.concurrent.FutureTask.run(FutureTask.java:166) 17:30:17,945 ERROR [stderr] (EJB default - 1) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 17:30:17,946 ERROR [stderr] (EJB default - 1) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 17:30:17,947 ERROR [stderr] (EJB default - 1) at java.lang.Thread.run(Thread.java:722) 17:30:17,948 ERROR [stderr] (EJB default - 1) at org.jboss.threads.JBossThread.run(JBossThread.java:122) 17:30:31,262 ERROR [stderr] (EJB default - 2) java.lang.ClassNotFoundException: com.mysql.jdbc.Driver from [Module "deployment.testingEjb.jar:main" from Service Module Loader] 17:30:31,264 ERROR [stderr] (EJB default - 2) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 17:30:31,265 ERROR [stderr] (EJB default - 2) at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 17:30:31,266 ERROR [stderr] (EJB default - 2) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 17:30:31,268 ERROR [stderr] (EJB default - 2) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 17:30:31,269 ERROR [stderr] (EJB default - 2) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) 17:30:31,270 ERROR [stderr] (EJB default - 2) at java.lang.Class.forName0(Native Method) 17:30:31,271 ERROR [stderr] (EJB default - 2) at java.lang.Class.forName(Class.java:186) 17:30:31,272 ERROR [stderr] (EJB default - 2) at com.testing.dbaccess.DatabaseAccess.testConnection(DatabaseAccess.java:24) 17:30:31,273 ERROR [stderr] (EJB default - 2) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 17:30:31,274 ERROR [stderr] (EJB default - 2) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 17:30:31,275 ERROR [stderr] (EJB default - 2) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 17:30:31,276 ERROR [stderr] (EJB default - 2) at java.lang.reflect.Method.invoke(Method.java:601) 17:30:31,277 ERROR [stderr] (EJB default - 2) at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72) 17:30:31,279 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:31,280 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53) 17:30:31,281 ERROR [stderr] (EJB default - 2) at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36) 17:30:31,283 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:31,284 ERROR [stderr] (EJB default - 2) at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47) 17:30:31,285 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:31,286 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21) 17:30:31,287 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:31,289 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) 17:30:31,294 ERROR [stderr] (EJB default - 2) at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53) 17:30:31,295 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:31,296 ERROR [stderr] (EJB default - 2) at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51) 17:30:31,297 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:31,298 ERROR [stderr] (EJB default - 2) at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228) 17:30:31,299 ERROR [stderr] (EJB default - 2) at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304) 17:30:31,300 ERROR [stderr] (EJB default - 2) at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190) 17:30:31,300 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:31,301 ERROR [stderr] (EJB default - 2) at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:80) 17:30:31,302 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:31,303 ERROR [stderr] (EJB default - 2) at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) 17:30:31,304 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:31,305 ERROR [stderr] (EJB default - 2) at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) 17:30:31,306 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:31,307 ERROR [stderr] (EJB default - 2) at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50) 17:30:31,308 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:31,308 ERROR [stderr] (EJB default - 2) at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:43) 17:30:31,309 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:31,310 ERROR [stderr] (EJB default - 2) at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45) 17:30:31,311 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288) 17:30:31,312 ERROR [stderr] (EJB default - 2) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61) 17:30:31,313 ERROR [stderr] (EJB default - 2) at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165) 17:30:31,314 ERROR [stderr] (EJB default - 2) at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.invokeMethod(MethodInvocationMessageHandler.java:302) 17:30:31,315 ERROR [stderr] (EJB default - 2) at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.access$200(MethodInvocationMessageHandler.java:64) 17:30:31,316 ERROR [stderr] (EJB default - 2) at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:196) 17:30:31,317 ERROR [stderr] (EJB default - 2) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 17:30:31,318 ERROR [stderr] (EJB default - 2) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 17:30:31,318 ERROR [stderr] (EJB default - 2) at java.util.concurrent.FutureTask.run(FutureTask.java:166) 17:30:31,319 ERROR [stderr] (EJB default - 2) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 17:30:31,320 ERROR [stderr] (EJB default - 2) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 17:30:31,321 ERROR [stderr] (EJB default - 2) at java.lang.Thread.run(Thread.java:722) 17:30:31,321 ERROR [stderr] (EJB default - 2) at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Please help me out with this.
Thanks in advance