How to create a simple EJB3 project in Eclipse (JBoss 7.1)
Environment Used
- JDK 6 (Java SE 6)
- EJB 3.0 (stateless session bean)
- Eclipse Indigo IDE for Java EE Developers (3.7.1)
- JBoss Tools – Core 3.3.0 M5 for Eclipse Indigo (3.7.1)
- JBoss Application Server (AS) 7.1.0.CR1b / Final
Setting up development environment:
Read this page for installing and setting up the environment for developing and deploying EJB 3.0 Session bean on JBoss application server.
Project Description:
- We are going to create a simple EJB 3 HelloWorld stateless session bean project and a remote Java application client which will call/invoke the bean.
- This “HelloWorld” example explains how to develop, deploy and run EJB3 Session Bean (stateless and stateful) in JBoss application server.
- For testing this “HelloWorld” example we write a remote Java Application Client (main() method).
- For simplicity, the session bean and the client to access the session bean are created in the same project.
Creating New EJB Project
- Open Eclipse IDE and create a new EJB project which can be done in three ways,
- Right click on Project Explorer -> New -> EJB Project
- File menu -> New -> EJB Project
- Click on the down arrow on New icon on toolbar -> EJB Project
- Enter the project name as “HelloWorldSessionBean” and make sure the JBoss 7.1 Runtime has been selected with the EJB 3.0 Module version.
- Click Next -> Next -> and Finish.
- You will see an EJB project in the Project Explorer view.
Creating Session Bean and Bean Interface
- Right click on ejbModule -> New -> Session Bean (EJB 3.x)
- Enter the Java package name as com.ibytecode.businesslogic
- Enter the Class name as HelloWorldBean
- Select the State type as Stateless
- Check the Remote Business Interface and enter the name as com.ibytecode.business.HelloWorld. The business interface will be created in different package (com.ibytecode.business)
- Click Finish
Coding Bean and the Interface
- Open Bean Interface and type the following code and save the file (Ctrl+s).
- Interface can be either @Remote or @Local. In this example we have used @Remote.
package com.ibytecode.business;
import javax.ejb.Remote;
@Remote
public interface HelloWorld {
public String sayHello();
}
- Open Bean and type the following code and save the file.
- Bean type can either be @Stateful or @Stateless. In this example we have used @Stateless.
package com.ibytecode.businesslogic;
import com.ibytecode.business.HelloWorld;
import javax.ejb.Stateless;
@Stateless
public class HelloWorldBean implements HelloWorld {
public HelloWorldBean() {
}
public String sayHello() {
return "Hello World !!!";
}
}
Now the Stateless Session Bean has been created. The next step is to deploy the bean on the server.
Deploying EJB project
- Now we need to deploy the stateless session bean “HelloWorldBean” on server.
- Deploying the project can be done in two ways,
- Right click on the EJB project -> Run As -> Run On Server. Select the existing “JBoss 7.1 Runtime Server” and click Finish.
- Right click on “JBoss 7.1 Runtime Server” available in Servers view -> Add and Remove… -> Select the EJB JAR file from the left pane and click Add-> and then Finish.
Start/Restart the Server
Right click on “JBoss 7.1 Runtime Server” from Servers view and click on Start if it has not yet been started.
If the project is deployed properly with global JNDI mapping then you will see the following message in the console.
Creating Client
- The next step is to write a remote Java client application (with main()) for accessing and invoking the EJBs deployed on the server
- Client uses JNDI to lookup for a proxy of your bean and invokes method on that proxy.
Creating JNDI InitialContext
Obtaining a Context using InitialContext
- All naming service operations are performed on some implementation of the javax.naming.Context interface. Therefore, the starting point of interacting with the naming service is to obtain a Context by providing the properties specific to the server implementation being used. In our case it is, JBoss Application Server.
- To create a javax.naming.InitialContext, we need to initialize it with properties from the environment. JNDI verifies each property’s value by merging the values from the following two sources,
- Using parameterized constructor of InitialContext which takes properties of supplied environment
- jndi.properties resource files found on the classpath.
NOTE:We will use parameterized constructor for initializing the InitialContext.
For JBoss AS 7 we need to set the Context.URL_PKG_PREFIXES property with value “org.jboss.ejb.client.naming” to obtain the InitialContext.
The following utility class is used to create InitialContext for JBoss AS and can be reused in all applications. Otherwise the code written in this class should be repeated in all clients.
- Right click on ejbModule -> New -> Class
- Enter the package name as com.ibytecode.clientutility
- Enter the Class name as ClientUtility
- Click on Finish
package com.ibytecode.clientutility;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class ClientUtility {
private static Context initialContext;
private static final String PKG_INTERFACES = "org.jboss.ejb.client.naming";
public static Context getInitialContext() throws NamingException {
if (initialContext == null) {
Properties properties = new Properties();
properties.put(Context.URL_PKG_PREFIXES, PKG_INTERFACES);
initialContext = new InitialContext(properties);
}
return initialContext;
}
}
Creating client class
- Right click on ejbModule -> New -> Class
- Enter the package name as com.ibytecode.client
- Enter the Class name as EJBApplicationClient
- Check the main() method option
- Click on Finish
package com.ibytecode.client;
import javax.naming.Context;
import javax.naming.NamingException;
import com.ibytecode.business.HelloWorld;
import com.ibytecode.businesslogic.HelloWorldBean;
import com.ibytecode.clientutility.ClientUtility;
public class EJBApplicationClient {
public static void main(String[] args) {
HelloWorld bean = doLookup();
System.out.println(bean.sayHello()); // 4. Call business logic
}
private static HelloWorld doLookup() {
Context context = null;
HelloWorld bean = null;
try {
// 1. Obtaining Context
context = ClientUtility.getInitialContext();
// 2. Generate JNDI Lookup name
String lookupName = getLookupName();
// 3. Lookup and cast
bean = (HelloWorld) context.lookup(lookupName);
} catch (NamingException e) {
e.printStackTrace();
}
return bean;
}
private static String getLookupName() {
/*
The app name is the EAR name of the deployed EJB without .ear suffix.
Since we haven't deployed the application as a .ear,
the app name for us will be an empty string
*/
String appName = "";
/* The module name is the JAR name of the deployed EJB
without the .jar suffix.
*/
String moduleName = "HelloWorldSessionBean";
/*AS7 allows each deployment to have an (optional) distinct name.
This can be an empty string if distinct name is not specified.
*/
String distinctName = "";
// The EJB bean implementation class name
String beanName = HelloWorldBean.class.getSimpleName();
// Fully qualified remote interface name
final String interfaceName = HelloWorld.class.getName();
// Create a look up string name
String name = "ejb:" + appName + "/" + moduleName + "/" +
distinctName + "/" + beanName + "!" + interfaceName;
return name;
}
}
Setting up EJB client context properties
An EJB client context is a context which contains contextual information for carrying out remote invocations on EJBs. This is a JBoss AS specific API. The EJB client context can be associated with multiple EJB receivers. Each EJB receiver is capable of handling invocations on different EJBs.
For example, an EJB receiver “ClientA” might be able to handle invocation on a bean identified by app-A/module-A/distinctinctName-A/BeanA!com.ibc.RemoteBeanA, app-B/module-B/distinctName-B/BeanB!RemoteBeanB, etc. Each such EJB receiver knows about what set of EJBs it can handle and each of the EJB receiver knows which server target to use for handling the invocations on the bean. The server IP address and its remoting port should be specified in the properties file placed in the client classpath. This properties file (EJB client context) will then be used internally by the JNDI implementation to handle invocations on the bean proxy.
Create a file “jboss-ejb-client.properties” in the classpath of the application. We can place it in ejbModule folder of our application. The jboss-ejb-client.properties contains the following properties:
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
Adding JAR files required for the client to run the client application
- Open Run Configurations… in Run menu or Run Configurations in Run icon
- Select the client application (EJBApplicationClient) under Java Application from left pane and open the Classpath tab from right side pane. If you don’t see your client application, run it once. Select “User Entries” and click on “Add External JARs”
- Add the following JAR files.
JAR name Location jboss-transaction-api_1.1_spec-1.0.0.Final.jar AS7_HOME/modules/javax/transaction/api/main/ jboss-ejb-api_3.1_spec-1.0.1.Final.jar AS7_HOME/modules/javax/ejb/api/main/ jboss-ejb-client-1.0.0.Beta10.jar AS7_HOME/modules/org/jboss/ejb-client/main/ jboss-marshalling-1.3.0.GA.jar AS7_HOME/modules/org/jboss/marshalling/main/ xnio-api-3.0.0.CR5.jar AS7_HOME/modules/org/jboss/xnio/main/ jboss-remoting-3.2.0.CR6.jar AS7_HOME/modules/org/jboss/remoting3/main/ jboss-logging-3.1.0.Beta3.jar AS7_HOME/modules/org/jboss/logging/main/ xnio-nio-3.0.0.CR5.jar AS7_HOME/modules/org/jboss/xnio/nio/main/ jboss-sasl-1.0.0.Beta9.jar AS7_HOME/modules/org/jboss/sasl/main/ jboss-marshalling-river-1.3.0.GA.jar AS7_HOME/modules/org/jboss/marshalling/river/main/ You can also add it in Build path (Right click on your EJB Project->Properties, select Java Build Path from left side pane and select Libraries from right side and click on Add External JARs)
If you are using JBoss Application Server (AS) 7.1.0 Final version then it is sufficient to add only one client JAR file (jboss-client-7.1.0.Final.jar) which is located in AS7_HOME/bin/client
The figure below shows the final directory structure of this example.

Run the client
Use Ctrl + F11 to run the client.
Hello World !!!
How to create a simple EJB3 project in Eclipse (JBoss 7.1),













That is very cool!
I think the more valuable part of the tutorial is actually accessing the EJB from a standalone application and showing which jars are required in your standalone app’s classpath for jboss 7.1 – seeing as it’s still in beta and jboss 7 is still rather new.
Would you be able to create a tutorial that creates a similar standalone client but using maven?
Great work,
Cheers
loading...
Thanks. I will try to do the same with Maven and Eclipse.
loading...
I have try your code, just create interface and session bean class, but it produce error:
15:44:08,633 INFO [org.jboss.modules] JBoss Modules version 1.1.0.CR6
15:44:08,856 INFO [org.jboss.msc] JBoss MSC version 1.0.1.GA
15:44:08,898 INFO [org.jboss.as] JBoss AS 7.1.0.CR1b “Flux Capacitor” starting
15:44:09,576 INFO [org.jboss.as] Creating http management service using socket-binding (management-http)
15:44:09,576 INFO [org.xnio] XNIO Version 3.0.0.CR7
15:44:09,583 INFO [org.xnio.nio] XNIO NIO Implementation Version 3.0.0.CR7
15:44:09,590 INFO [org.jboss.remoting] JBoss Remoting version 3.2.0.CR8
15:44:09,602 INFO [org.jboss.as.logging] JBAS011502: Removing bootstrap log handlers
15:44:09,636 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool — 26) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
15:44:09,639 INFO [org.jboss.as.clustering] (ServerService Thread Pool — 30) JBAS010300: Activating Infinispan subsystem.
15:44:09,652 INFO [org.jboss.as.connector] (MSC service thread 1-3) JBAS010408: Starting JCA Subsystem (JBoss IronJacamar 1.0.6.Final)
15:44:09,674 INFO [org.jboss.as.osgi] (ServerService Thread Pool — 39) JBAS011910: Activating OSGi Subsystem
15:44:09,688 INFO [org.jboss.as.security] (ServerService Thread Pool — 44) Activating Security Subsystem
15:44:09,693 INFO [org.jboss.as.naming] (ServerService Thread Pool — 38) JBAS011800: Activating Naming Subsystem
15:44:09,697 INFO [org.jboss.as.naming] (MSC service thread 1-2) JBAS011802: Starting Naming Service
15:44:09,699 INFO [org.jboss.as.jaxr] (MSC service thread 1-5) Binding JAXR ConnectionFactory: java:jboss/jaxr/ConnectionFactory
15:44:09,708 INFO [org.jboss.as.mail.extension] (MSC service thread 1-3) JBAS015400: Bound mail session
15:44:09,721 INFO [org.jboss.as.webservices] (ServerService Thread Pool — 48) JBAS015537: Activating WebServices Extension
15:44:09,757 INFO [org.jboss.as.security] (MSC service thread 1-4) Picketbox version=4.0.6.Beta2
15:44:09,861 INFO [org.jboss.as.remoting] (MSC service thread 1-1) Listening on /127.0.0.1:4447
15:44:09,868 INFO [org.jboss.ws.common.management.AbstractServerConfig] (MSC service thread 1-2) JBoss Web Services – Stack CXF Server 4.0.0.GA
15:44:10,062 INFO [org.apache.tomcat.util.net.AprEndpoint] (MSC service thread 1-7) Failed to create poller with specified size of 32768
15:44:10,068 INFO [org.apache.tomcat.util.net.AprEndpoint] (MSC service thread 1-7) Failed to create poller with specified size of 32768
15:44:10,074 INFO [org.apache.tomcat.util.net.AprEndpoint] (MSC service thread 1-7) Failed to create poller with specified size of 16384
15:44:10,075 INFO [org.apache.coyote.http11.Http11AprProtocol] (MSC service thread 1-7) Starting Coyote HTTP/1.1 on http–127.0.0.1-8080
15:44:10,214 INFO [org.jboss.as.remoting] (MSC service thread 1-2) Listening on /127.0.0.1:9999
15:44:10,215 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-2) JBAS010400: Bound data source
15:44:10,221 INFO [org.jboss.as.server.deployment.scanner] (MSC service thread 1-5) JBAS015012: Started FileSystemDeploymentService for directory /Users/mi/jboss-as-7.1.0.CR1b/standalone/deployments
15:44:10,224 INFO [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads – 1) JBAS015003: Found HelloWorld.jar in deployment directory. To trigger deployment create a file called HelloWorld.jar.dodeploy
15:44:10,277 INFO [org.jboss.as] (Controller Boot Thread) JBoss AS 7.1.0.CR1b “Flux Capacitor” started in 1900ms – Started 130 of 200 services (68 services are passive or on-demand)
15:44:10,286 INFO [org.jboss.as.server.deployment] (MSC service thread 1-5) Starting deployment of “HelloWorld.jar”
15:44:10,400 WARN [org.jboss.modules] (MSC service thread 1-2) Failed to define class com.ibytecode.businesslogic.HelloWorldBean in Module “deployment.HelloWorld.jar:main” from Service Module Loader: java.lang.UnsupportedClassVersionError: com/ibytecode/businesslogic/HelloWorldBean : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_29]
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) [:1.6.0_29]
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) [:1.6.0_29]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) [:1.6.0_29]
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327) [jboss-modules.jar:1.1.0.CR6]
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391) [jboss-modules.jar:1.1.0.CR6]
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243) [jboss-modules.jar:1.1.0.CR6]
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73) [jboss-modules.jar:1.1.0.CR6]
at org.jboss.modules.Module.loadModuleClass(Module.java:505) [jboss-modules.jar:1.1.0.CR6]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182) [jboss-modules.jar:1.1.0.CR6]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.1.0.CR6]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.1.0.CR6]
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.1.0.CR6]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.1.0.CR6]
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:111)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:54)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115) [jboss-as-server-7.1.0.CR1b.jar:7.1.0.CR1b]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_29]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_29]
at java.lang.Thread.run(Thread.java:680) [:1.6.0_29]
15:44:10,417 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC00001: Failed to start service jboss.deployment.unit.”HelloWorld.jar”.POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit.”HelloWorld.jar”.POST_MODULE: Failed to process phase POST_MODULE of deployment “HelloWorld.jar”
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:121) [jboss-as-server-7.1.0.CR1b.jar:7.1.0.CR1b]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_29]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_29]
at java.lang.Thread.run(Thread.java:680) [:1.6.0_29]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011093: Could not load component class com.ibytecode.businesslogic.HelloWorldBean
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:113)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:54)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115) [jboss-as-server-7.1.0.CR1b.jar:7.1.0.CR1b]
… 5 more
Caused by: java.lang.ClassNotFoundException: com.ibytecode.businesslogic.HelloWorldBean from [Module "deployment.HelloWorld.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:111)
… 7 more
15:44:10,424 INFO [org.jboss.as.server] (DeploymentScanner-threads – 2) JBAS015856: Undeploy of deployment “HelloWorld.jar” was rolled back with failure message {“JBAS014671: Failed services” => {“jboss.deployment.unit.\”HelloWorld.jar\”.POST_MODULE” => “org.jboss.msc.service.StartException in service jboss.deployment.unit.\”HelloWorld.jar\”.POST_MODULE: Failed to process phase POST_MODULE of deployment \”HelloWorld.jar\”"}}
15:44:10,425 INFO [org.jboss.as.controller] (DeploymentScanner-threads – 2) JBAS014774: Service status report
JBAS014777: Services which failed to start: service jboss.deployment.unit.”HelloWorld.jar”.POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit.”HelloWorld.jar”.POST_MODULE: Failed to process phase POST_MODULE of deployment “HelloWorld.jar”
15:44:10,426 ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads – 1) {“JBAS014653: Composite operation failed and was rolled back. Steps that failed:” => {“Operation step-2″ => {“JBAS014671: Failed services” => {“jboss.deployment.unit.\”HelloWorld.jar\”.POST_MODULE” => “org.jboss.msc.service.StartException in service jboss.deployment.unit.\”HelloWorld.jar\”.POST_MODULE: Failed to process phase POST_MODULE of deployment \”HelloWorld.jar\”"}}}}
15:44:10,433 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) Stopped deployment HelloWorld.jar in 5ms
Please Help..
loading...
Good to just have a few lines of stacktrace and the rest in an attached file.
-i
loading...
Hi,
This error
java.lang.UnsupportedClassVersionError: com/ibytecode/businesslogic/HelloWorldBean : Unsupported major.minor version 51.0is due to JDK version mismatch.To solve this problem, right click on your EJB project -> Properties -> Project Facets and change the Java version to 1.6 from drop down menu. Click on Apply and then run your project.
loading...
Hi, nithya
Thank you for your help, its working. but when i run java application i get an exception:
lookupName ejb:/HelloWorld//HelloWorldBean!com.ibytecode.business.HelloWorld
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.ibytecode.client.EJBApplicationClient.doLookUp(EJBApplicationClient.java:27)
at com.ibytecode.client.EJBApplicationClient.main(EJBApplicationClient.java:74)
and this is the propertie file content:
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port = 8080
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
How to fix this?
Thank you
Update:
I am really sorry, that is my mistake, i am not put the properties in InitialContext() constructor . now that error is solve but another problem show here is the error:
Feb 28, 2012 10:59:09 AM org.jboss.ejb.client.EJBClient(ConfigBasedEJBClientContextSelector.java:120)(ConfigBasedEJBClientContextSelector.java:110) (EJBClientContext.java:57)
INFO: JBoss EJB Client version 1.0.0.Beta11
Feb 28, 2012 10:59:09 AM org.xnio.Xnio
INFO: XNIO Version 3.0.0.CR7
Feb 28, 2012 10:59:09 AM org.xnio.nio.NioXnio
INFO: XNIO NIO Implementation Version 3.0.0.CR7
Feb 28, 2012 10:59:09 AM org.jboss.remoting3.EndpointImpl
INFO: JBoss Remoting version 3.2.0.CR8
Feb 28, 2012 10:59:14 AM org.jboss.ejb.client.ConfigBasedEJBClientContextSelector createConnections
ERROR: Could not create connection for connection named default
java.lang.RuntimeException: Operation failed with status WAITING
at org.jboss.ejb.client.remoting.IoFutureHelper.get(IoFutureHelper.java:93)
at org.jboss.ejb.client.ConfigBasedEJBClientContextSelector.createConnection(ConfigBasedEJBClientContextSelector.java:292)
at org.jboss.ejb.client.ConfigBasedEJBClientContextSelector.createConnections(ConfigBasedEJBClientContextSelector.java:209)
at org.jboss.ejb.client.ConfigBasedEJBClientContextSelector.setupEJBReceivers(ConfigBasedEJBClientContextSelector.java:138)
at org.jboss.ejb.client.ConfigBasedEJBClientContextSelector.
at org.jboss.ejb.client.ConfigBasedEJBClientContextSelector.
at org.jboss.ejb.client.EJBClientContext.
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:91)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:83)
at $Proxy0.sayHello(Unknown Source)
at com.ibytecode.client.EJBApplicationClient.main(EJBApplicationClient.java:77)
Feb 28, 2012 10:59:14 AM org.jboss.ejb.client.ConfigBasedEJBClientContextSelector createConnections
INFO: Connection default will not be available in EJB client context org.jboss.ejb.client.EJBClientContext@a210b5b
Exception in thread “main” java.lang.IllegalStateException: No EJB receiver available for handling [appName:,modulename:HelloWorld,distinctname:] combination
at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:344)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:92)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:83)
at $Proxy0.sayHello(Unknown Source)
at com.ibytecode.client.EJBApplicationClient.main(EJBApplicationClient.java:77)
in properties file i set the remote.connections=default but it produce error “Could not create connection for connection named default”. What is the value for remote.connections?
Thank You
loading...
In the jboss-ejb-client.properties file change the remote.connection.default.port number from 8080 to 4447 and run the client.
loading...
Hi nithya,
I already set to 4447, but my question why i have to change the port to 4447 because my default port is 8080?, and i have run the client but javax.ejb.NoSuchEJBException, No such EJB.
Feb 28, 2012 4:43:23 PM org.jboss.ejb.client.EJBClient
INFO: JBoss EJB Client version 1.0.0.Beta11
Feb 28, 2012 4:43:23 PM org.xnio.Xnio
INFO: XNIO Version 3.0.0.CR7
Feb 28, 2012 4:43:23 PM org.xnio.nio.NioXnio
INFO: XNIO NIO Implementation Version 3.0.0.CR7
Feb 28, 2012 4:43:23 PM org.jboss.remoting3.EndpointImpl
INFO: JBoss Remoting version 3.2.0.CR8
Feb 28, 2012 4:43:23 PM org.jboss.ejb.client.remoting.VersionReceiver handleMessage
INFO: Received server version 1 and marshalling strategies [river]
Feb 28, 2012 4:43:23 PM org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver associate
INFO: Successful version handshake completed for receiver context org.jboss.ejb.client.EJBReceiverContext@709446e4 on channel Channel ID 92da92aa (outbound) of Remoting connection 69e328e0 to localhost/127.0.0.1:4447
Exception in thread “main” javax.ejb.NoSuchEJBException: No such EJB[appname=, modulename=HelloWorldSessionBean, distinctname=, beanname=HelloWorldBean, viewclassname=null]
at org.jboss.ejb.client.remoting.GeneralInvocationFailureResponseHandler.processMessage(GeneralInvocationFailureResponseHandler.java:75)
at org.jboss.ejb.client.remoting.ChannelAssociation$ResponseReceiver.handleMessage(ChannelAssociation.java:297)
at org.jboss.remoting3.remote.RemoteConnectionChannel$5.run(RemoteConnectionChannel.java:409)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
loading...
Its workiing now… thank you very much nithya
loading...
am getting the same error as you got ,no such ejb
,how did u solve
pls let me know
loading...
Check ejb deployment errors, lookup string.
loading...
Nithya, i am still curious why i must change the port to 4447? why not use 8080?
loading...
The port 8080 is the http port with ejb you have to call with remote port and jboss 7 remote port for call ejb is 4447
loading...
From JBoss AS 7.1 documentation,
“By default AS7 uses 4447 as the remoting port. The EJB client API uses the remoting port for communicating with the server for remote invocations, so that’s the port we use in our client programs.”
loading...
File Name –> jboss-ejb-client.properties
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
package com.ibytecode.clientutility;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class ClientUtility {
private static Context initialContext;
private static final String PKG_INTERFACES = “org.jboss.ejb.client.naming”;
public static Context getInitialContext() throws NamingException {
if (initialContext == null) {
Properties properties = new Properties();
properties.put(Context.URL_PKG_PREFIXES, PKG_INTERFACES);
initialContext = new InitialContext(properties);
}
return initialContext;
}
}
I AM GETTING FOLLOWING ERROR, PLEASE GUIDE ME WHERE I AM DOING MISTAKES
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.ibytecode.client.EJBApplicationClient.doLookup(EJBApplicationClient.java:26)
at com.ibytecode.client.EJBApplicationClient.main(EJBApplicationClient.java:13)
Exception in thread “main” java.lang.NullPointerException
at com.ibytecode.client.EJBApplicationClient.main(EJBApplicationClient.java:14)
loading...
Make sure you have included all the required jar files. If you use JBoss 7.1 FINAL, you need only one jar file (jboss-client-7.1.0.Final.jar which is located in ‘AS7_HOME/bin/client’ folder) in your client classpath. If you use the version mentioned in this tutorial, then include all the jars specified and run the client.
Also make sure you have client properties file in classpath or place it in the mentioned folder in this tutorial.
loading...
Can anyone help me with this ??
2012-03-23 11:24:44 org.jboss.ejb.client.EJBClient
INFO: JBoss EJB Client version 1.0.5.Final
Exception in thread "main" java.lang.IllegalStateException: No EJB receiver available for handling [appName:,modulename:HelloWorldSessionBean,distinctname:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@9506dc4
at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:584)
at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:119)
at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
at $Proxy0.sayHello(Unknown Source)
loading...
now i’m getting this
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.ibytecode.client.Client.doLookup(Client.java:26)
at com.ibytecode.client.Client.main(Client.java:13)
loading...
Pls see my previous comment on adding the reqd. jar files.
loading...
Dear Praveen,
thx for your help, now i’m getting this… Please help me
Name from getLookupName =ejb:/hw//HelloWorldBean!com.ibytecode.business.HelloWorld
17:27:33,435 INFO [client] JBoss EJB Client version 1.0.5.Final
Exception in thread "main" java.lang.IllegalStateException: No EJB receiver available for handling [appName:,modulename:hw,distinctname:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@d8d9850
loading...
Is your project name ‘hw’? If not, change ‘hw’ to your project name. Also make sure the project is deployed on the server.
loading...
Hi Please help me out with this exception:
my lookup string is : “ejb:/HelloWorldSessionBean//HelloWorldBean!com.ibytecode.business.HelloWorld”
and the stack trace is :
Apr 03, 2012 1:35:21 AM org.jboss.ejb.client.EJBClient
INFO: JBoss EJB Client version 1.0.2.Final
Apr 03, 2012 1:35:34 AM org.xnio.Xnio
INFO: XNIO Version 3.0.3.GA
Apr 03, 2012 1:35:34 AM org.xnio.nio.NioXnio
INFO: XNIO NIO Implementation Version 3.0.3.GA
Apr 03, 2012 1:35:34 AM org.jboss.remoting3.EndpointImpl
INFO: JBoss Remoting version 3.2.2.GA
Apr 03, 2012 1:35:40 AM org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector setupEJBReceivers
WARN: Could not register a EJB receiver for connection to remote://127.0.0.1:4447
java.lang.RuntimeException: Operation failed with status WAITING
at org.jboss.ejb.client.remoting.IoFutureHelper.get(IoFutureHelper.java:93)
at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.setupEJBReceivers(ConfigBasedEJBClientContextSelector.java:115)
at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.(ConfigBasedEJBClientContextSelector.java:77)
at org.jboss.ejb.client.EJBClientContext.(EJBClientContext.java:76)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:120)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
at $Proxy0.sayHello(Unknown Source)
at com.ibytecode.client.EJBApplicationClient.main(EJBApplicationClient.java:13)
loading...
my jboss-ejb-client.properties file has :
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=x1
remote.connection.x1.host=127.0.0.1
remote.connection.x1.port=4447
remote.connection.x1.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
loading...
Check Jboss server is running or not. Make sure the url 127.0.0.1:8080 displays jboss page in browser. Or else try localhost instead of 127.0.0.1 in client properties file.
loading...
the server is up and running.
Tried with both localhost and 127.0.0.1 but still the error is same!
loading...
logs from server console after deploying the ejb application
11:39:21,300 INFO [org.jboss.as.server.deployment] (MSC service thread 1-7) Starting deployment of “HelloWorldSessionBean.jar”
11:39:21,800 INFO [org.jboss.as.jpa] (MSC service thread 1-2) added javax.persistence.api dependency to HelloWorldSessionBean.jar
11:39:22,269 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-3) JNDI bindings for session bean named HelloWorldBean in deployment unit deployment “HelloWorldSessionBean.jar” are as follows:
java:global/HelloWorldSessionBean/HelloWorldBean!com.ibytecode.business.HelloWorld
java:app/HelloWorldSessionBean/HelloWorldBean!com.ibytecode.business.HelloWorld
java:module/HelloWorldBean!com.ibytecode.business.HelloWorld
java:global/HelloWorldSessionBean/HelloWorldBean
java:app/HelloWorldSessionBean/HelloWorldBean
java:module/HelloWorldBean
11:39:23,112 INFO [org.jboss.as.server.controller] (DeploymentScanner-threads – 1) Deployed “HelloWorldSessionBean.jar”
loading...
Start Jboss server and in cmd, type
telnet 127.0.0.1 4447
Check the port is running or not. Otherwise I don’t see any errors.
loading...
Excellent tutorial
loading...
Thanks!!! I’m just omit a step with “classpath entry” and spend a time getting “IllegalStateException: No EJB receiver available for handling”…
loading...
Hi,
Thanks for such a useful explanation.
I have developed and deployed ejb as explained. I am getting below error while running client. Could you please help me?
Apr 10, 2012 10:12:34 PM org.jboss.ejb.client.EJBClient
INFO: JBoss EJB Client version 1.0.5.Final
Exception in thread “main” java.lang.IllegalStateException: No EJB receiver available for handling [appName:,modulename:HelloWorldSessionBean,distinctname:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@632d3205
at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:584)
at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:119)
at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
at $Proxy0.sayHello(Unknown Source)
at com.vamsi.client.EJBApplicationClient.main(EJBApplicationClient.java:13)
loading...
Vamsi,
For “No EJB receiver available for handling” error messages, there could be one of the below problems,
So go through those issues and try again.
loading...
I appreciate the tutorials – but I’m also getting the No EJB receiver available message – I’ve re-verified the client jars are in my classpath and the jboss-ejb-client.properties is also.
I think one main difference is my jboss instance isn’t on local host. I’ve tried starting it with the bind properties, and I’ve tried making sure the interface is set to the correct IP – but I’m still getting no receivers available. Is there a way to enable the trace or logging for the context lookup on the server side to verify it’s actually hitting the server or not. I’m kind of at a loss right now what to check next.
I’m in the middle of re-writing an old EJB2 app to EJB3 and trying to get the newer versions of JBoss up is a challenge in itself. In a production environment we use to pass the server IP in the client as a property, having to put it in a properties file won’t be an ideal option – I’d rather continue setting the property if possible.
loading...
Lance,
I have added an EJB client code without using jboss-ejb-client.properties file. Go through the link given below and let me know whether it solves your problem.
http://pastebin.com/d2ZtdQrk
loading...
Excellent!!! it worked for me. Got the clear picture and understanding on Session Bean.
Thanks Nithya.
loading...
At first I thought no, same error. But I figured out the lookup method did work – I put in a sysout after and printed the bean and it states it is a proxy for the correct server interface so that all looks correct.
However, I’m now getting the same “No EJB receiver available for handling” on the first method call for that object.
As you can probably tell – I’m not doing exactly the hello world – I have an application that was working on Jboss 5.1 and 6.1 that I’m trying to move over to 7.1.
loading...
Finally found the issue. It’s relating to this setup bit in the standalone.xml
I removed the security-realm attribute and it’s working now.
Found it here JBoss Community Groups
I’m not sure what the issue is, but at least I can move forward now.
Thanks for your help.
loading...
Hi, would you care to explain where to put the persistence.xml and how to refer to the persistence unit name when using the ejb project facet?
Up to now, I did use the plain Java Project facet, put a META-INF folder in its root, and the persistence.xml (let’s pretend “Foo” is the unit name) there. When I use the ejb3 facet instead, a ejb-Module folder is created – and I put the persistence.xml there. When I deploy the application, I see that unit name is ejb-Module#Foo, and I don’t know how to refer to it from any Session Bean that refers to it (using ejbModule#Foo doesn’t work).
Thanks!
loading...
When you create an EJB project in Eclipse, META-INF folder will automatically be created and place the persistence.xml there and not in ejbModule.
Refer this page for detailed explanation of how to develop, deploy and run EJB3 JPA project in JBoss 7.1
loading...
hello
ejb:/simp//HelloWorldBean!com.ibytecode.business.HelloWorld
Exception in thread “main” java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
at org.jboss.ejb.client.Logs.(Logs.java:44)
at org.jboss.ejb.client.EJBClient.(EJBClient.java:40)
at org.jboss.ejb.client.naming.ejb.EjbNamingContext.doCreateProxy(EjbNamingContext.java:139)
at org.jboss.ejb.client.naming.ejb.EjbNamingContext.createEjbProxy(EjbNamingContext.java:113)
at org.jboss.ejb.client.naming.ejb.EjbNamingContext.lookup(EjbNamingContext.java:96)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at com.ibytecode.client.Ejbapplicationclient.doLookUp(Ejbapplicationclient.java:37)
at com.ibytecode.client.Ejbapplicationclient.main(Ejbapplicationclient.java:21)
loading...
What version of JBoss are you using? It looks like an incorrect version of JBoss Logging jar is on your client classpath.
If you are using JBoss 7.1.0 Final version then remove all the JAR files (mentioned in the table) from your classpath and add only one client JAR file (jboss-client-7.1.0.Final.jar) which is located in AS7_HOME/bin/client.
loading...
excellent work. thanks
loading...
OK so I have 2 questions…

1. Where does the JNDILookupClass come from?
2. I am using JBoss 7.0.0 Final, because i can’t get the one that you use here to start…(gives the Server failed to start error) …SO i can’t find any jboss-ejb-client-1.0.0.Beta10.jar in it to add( there is no AS7_HOME/modules/org/jboss/ejb-client/main/)
Any ideas?
loading...
JNDILookupClass was renamed to ClientUtility. I updated the screenshots to reflect the same. For your other question, use the latest version of JBoss AS 7.1.1 which is full java ee 6 compliant.
loading...
Pingback: JavaPins
Hi i need ur help pls give me any suggestion how can implement jboss in eclipse
loading...
Hello Nithya,
I tried to setup your tutorial and its working fine in my machine.
Now I am trying to now add an external JAR(gemfire.jar) file in the EJB and use that JAR in the HelloWorldBean. When I do so, and try to run the appropriate method in the HelloWorldBean, I get the following exception.
INFO: Discarding result for invocation id 1 since no waiting context found
Exception in thread “main” javax.ejb.EJBException: Unexpected Error
at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:163)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:230)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropogatingInterceptor.processInvocation(EJBRemoteTransactionPropogatingInterceptor.java:80)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.as.ee.component.TCCLInterceptor.processInvocation(TCCLInterceptor.java:45)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:165)
at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.invokeMethod(MethodInvocationMessageHandler.java:300)
at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.access$200(MethodInvocationMessageHandler.java:64)
at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:194)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: java.lang.NoClassDefFoundError: com/gemstone/gemfire/cache/client/ClientCacheFactory
at com.ibytecode.businesslogic.HelloWorldBean.insertDataIntoCache(HelloWorldBean.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)
at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228)
… 25 more
Caused by: java.lang.ClassNotFoundException: com.gemstone.gemfire.cache.client.ClientCacheFactory from [Module "deployment.HelloWorldSessionBean.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
… 45 more
Could you help me with this please?
Thanks
Kunal
loading...
You have not added your JAR file (gemfire.jar) properly in your classpath. It is throwing ClassNotFoundException.
loading...
Hi nithya,
This is raj kumar. I am a EJB Fresher. I saw your website and try it your coding. But i have some problem. That is follows.,
Aug 10, 2012 2:24:48 PM org.jboss.ejb.client.EJBClient
INFO: JBoss EJB Client version 1.0.0.Beta10
Aug 10, 2012 2:24:49 PM org.xnio.Xnio
INFO: XNIO Version 3.0.0.CR5
Aug 10, 2012 2:24:49 PM org.xnio.nio.NioXnio
INFO: XNIO NIO Implementation Version 3.0.0.CR5
Aug 10, 2012 2:24:49 PM org.jboss.remoting3.EndpointImpl
INFO: JBoss Remoting version 3.2.0.CR6
Aug 10, 2012 2:24:50 PM org.jboss.remoting3.remote.RemoteConnection handleException
ERROR: JBREM000200: Remote connection failed: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed
Aug 10, 2012 2:24:50 PM org.jboss.ejb.client.ConfigBasedEJBClientContextSelector createConnections
ERROR: Could not create connection for connection named default
java.lang.RuntimeException: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed
at org.jboss.ejb.client.remoting.IoFutureHelper.get(IoFutureHelper.java:91)
at org.jboss.ejb.client.ConfigBasedEJBClientContextSelector.createConnection(ConfigBasedEJBClientContextSelector.java:292)
at org.jboss.ejb.client.ConfigBasedEJBClientContextSelector.createConnections(ConfigBasedEJBClientContextSelector.java:209)
at org.jboss.ejb.client.ConfigBasedEJBClientContextSelector.setupEJBReceivers(ConfigBasedEJBClientContextSelector.java:138)
at org.jboss.ejb.client.ConfigBasedEJBClientContextSelector.(ConfigBasedEJBClientContextSelector.java:120)
at org.jboss.ejb.client.ConfigBasedEJBClientContextSelector.(ConfigBasedEJBClientContextSelector.java:110)
at org.jboss.ejb.client.EJBClientContext.(EJBClientContext.java:57)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:91)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:83)
at $Proxy0.sayHello(Unknown Source)
at com.ibytecode.client.EJBApplicationClient.main(EJBApplicationClient.java:14)
Caused by: javax.security.sasl.SaslException: Authentication failed: all available authentication mechanisms failed
at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:356)
at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:205)
at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72)
at org.xnio.channels.TranslatingSuspendableChannel.handleReadable(TranslatingSuspendableChannel.java:179)
at org.xnio.channels.TranslatingSuspendableChannel$2.handleEvent(TranslatingSuspendableChannel.java:100)
at org.xnio.channels.TranslatingSuspendableChannel$2.handleEvent(TranslatingSuspendableChannel.java:98)
at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:72)
at org.xnio.nio.NioHandle.run(NioHandle.java:90)
at org.xnio.nio.WorkerThread.run(WorkerThread.java:184)
at …asynchronous invocation…(Unknown Source)
at org.jboss.remoting3.EndpointImpl.doConnect(EndpointImpl.java:263)
at org.jboss.remoting3.EndpointImpl.doConnect(EndpointImpl.java:246)
at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:353)
at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:337)
at org.jboss.ejb.client.ConfigBasedEJBClientContextSelector.createConnection(ConfigBasedEJBClientContextSelector.java:290)
… 9 more
Aug 10, 2012 2:24:50 PM org.jboss.ejb.client.ConfigBasedEJBClientContextSelector createConnections
INFO: Connection default will not be available in EJB client context org.jboss.ejb.client.EJBClientContext@166a22b
Exception in thread “main” java.lang.IllegalStateException: No EJB receiver available for handling [appName:,modulename:HelloWorldSessionBean,distinctname:] combination
at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:344)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:92)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:83)
at $Proxy0.sayHello(Unknown Source)
at com.ibytecode.client.EJBApplicationClient.main(EJBApplicationClient.java:14)
loading...
Hi Raj
I am getting the same error. Did you get any resolution.
Thanks,
Uttam
loading...
Hello,
I am getting this Exception while running the client on JBoss 5.1.0 GA
Is it mandated to use JBoss 7?
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
Rgds,
Seetesh
loading...
Great tutorial. Thanks for sharing
loading...
Hello Praveen,
I already add properties file and jboss-client file into refernced libraries but i still getting this error.
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.ibytecode.client.EJBApplicationClient.main(EJBApplicationClient.java:27)
Please help me to remove this error
loading...
hola
yo tengo ese mismo problema por favor ayúdame a resolverlo
gracias
loading...
Hi,
Need Help. I am using Jboss 7.1 and eclipse . I followed all the steps in the tutorial. When i try to run the client, i am getting the below exception
Exception in thread “main” java.lang.NoSuchMethodError: org.jboss.remoting3.Remoting.createEndpoint(Ljava/lang/String;Lorg/xnio/OptionMap;)Lorg/jboss/remoting3/Endpoint;
at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.setupEJBReceivers(ConfigBasedEJBClientContextSelector.java:95)
at org.jboss.ejb.client.remoting.ConfigBasedEJBClientContextSelector.(ConfigBasedEJBClientContextSelector.java:78)
at org.jboss.ejb.client.EJBClientContext.(EJBClientContext.java:77)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:120)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
at $Proxy0.sayHello(Unknown Source)
at com.ibytecode.client.EJBApplicationClient.main(EJBApplicationClient.java:13)
Thanks,
Sahitya
loading...
Issue resolved.I had multiple jboss server runtimes and the runtime in this project was pointed to a older version and i was following steps for latest. I fixed that and ran the tutorial. It worked fine.
Thanks for the tutorial.
loading...
Dear praveen,
now i am getting this error Could not find the main class:com.ibytecode.client.EJBApplicationClient. program will exit……..
this error is generated by JVM.
in eclipse i got the error
java.lang.NoClassDefFoundError: com/ibytecode/client/EJBApplicationClient
Caused by: java.lang.ClassNotFoundException: com.ibytecode.client.EJBApplicationClient
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Plese help me to remove this error.
Thanks
Owais
loading...
I am using JBoss AS 7.1 and Eclipse Juno and am getting the following error when I try to access a simple session bean on the JBoss server from a standalone client in Eclipse. I added jboss-client.jar from C:\jboss-as-7.1.1.Final\bin\client to my build path and under the src directory I created jboss-ejb-client.properties as:
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false
remote.connections=default
remote.connection.default.host=localhost
remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
My standalone is as follows:
package test;
import beans.*;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.Context;
public class BeanTest2 {
public static void main (String[] args) throws Exception {
Properties properties = new Properties();
properties.put(Context.URL_PKG_PREFIXES, “org.jboss.ejb.client.naming”);
InitialContext initialContext = new InitialContext(properties);
RandomNumber2 randomNumber2 = (RandomNumber2)initialContext.lookup(“java:global/RandomNumberEJB/RandomNumber2Bean”);
randomNumber2.setupNum(100000);
System.out.printf(“Random with range: %5.2f.%n”, randomNumber2.currentValue());
randomNumber2.doubleNum();
System.out.printf(“Random with range: %5.2f.%n”, randomNumber2.currentValue());
randomNumber2.done();
}
My stack trace is as follows:
org.omg.CORBA.COMM_FAILURE: FINE: IOP00410001: Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: localhost; port: 3700 vmcid: OMG minor code: 1 completed: No
at sun.reflect.GeneratedConstructorAccessor29.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:248)
at com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:95)
at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.handleFullLogging(WrapperGenerator.java:387)
at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.access$400(WrapperGenerator.java:107)
at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator$2.invoke(WrapperGenerator.java:511)
at com.sun.corba.ee.spi.orbutil.proxy.CompositeInvocationHandlerImpl.invoke(CompositeInvocationHandlerImpl.java:99)
at $Proxy24.connectFailure(Unknown Source)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:257)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:270)
at com.sun.corba.ee.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:129)
at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:223)
at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:228)
at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:393)
at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:130)
at org.omg.CosNaming.NamingContextHelper.narrow(NamingContextHelper.java:69)
at com.sun.enterprise.naming.impl.SerialContext$ProviderCacheKey.getNameService(SerialContext.java:1241)
at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:411)
at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:347)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:504)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at test.BeanTest2.main(BeanTest2.java:15)
Caused by: java.lang.RuntimeException: java.net.ConnectException: Connection refused: connect
at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:340)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:242)
… 14 more
Caused by: java.net.ConnectException: Connection refused: connect
at sun.nio.ch.Net.connect0(Native Method)
at sun.nio.ch.Net.connect(Net.java:364)
at sun.nio.ch.Net.connect(Net.java:356)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:623)
at com.sun.corba.ee.impl.orbutil.ORBUtility.openSocketChannel(ORBUtility.java:110)
at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:325)
… 15 more
Exception in thread “main” javax.naming.NamingException: Lookup failed for ‘java:global/RandomNumberEJB/RandomNumber2Bean’ in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is org.omg.CORBA.COMM_FAILURE: FINE: IOP00410001: Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: localhost; port: 3700 vmcid: OMG minor code: 1 completed: No]]
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:518)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:455)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at test.BeanTest2.main(BeanTest2.java:15)
Caused by: javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is org.omg.CORBA.COMM_FAILURE: FINE: IOP00410001: Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: localhost; port: 3700 vmcid: OMG minor code: 1 completed: No]
at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:352)
at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:504)
… 3 more
Caused by: org.omg.CORBA.COMM_FAILURE: FINE: IOP00410001: Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: localhost; port: 3700 vmcid: OMG minor code: 1 completed: No
at sun.reflect.GeneratedConstructorAccessor29.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:248)
at com.sun.corba.ee.spi.orbutil.logex.corba.CorbaExtension.makeException(CorbaExtension.java:95)
at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.handleFullLogging(WrapperGenerator.java:387)
at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator.access$400(WrapperGenerator.java:107)
at com.sun.corba.ee.spi.orbutil.logex.WrapperGenerator$2.invoke(WrapperGenerator.java:511)
at com.sun.corba.ee.spi.orbutil.proxy.CompositeInvocationHandlerImpl.invoke(CompositeInvocationHandlerImpl.java:99)
at $Proxy24.connectFailure(Unknown Source)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:257)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:270)
at com.sun.corba.ee.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:129)
at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:223)
at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:228)
at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:393)
at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:130)
at org.omg.CosNaming.NamingContextHelper.narrow(NamingContextHelper.java:69)
at com.sun.enterprise.naming.impl.SerialContext$ProviderCacheKey.getNameService(SerialContext.java:1241)
at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:411)
at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:347)
… 4 more
Caused by: java.lang.RuntimeException: java.net.ConnectException: Connection refused: connect
at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:340)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:242)
… 14 more
Caused by: java.net.ConnectException: Connection refused: connect
at sun.nio.ch.Net.connect0(Native Method)
at sun.nio.ch.Net.connect(Net.java:364)
at sun.nio.ch.Net.connect(Net.java:356)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:623)
at com.sun.corba.ee.impl.orbutil.ORBUtility.openSocketChannel(ORBUtility.java:110)
at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:325)
loading...
hola me gustaría que me ayudaras es que estoy haciendo esta guía y me funciono pero al agregar los jars a maven no funciona lo mismo me sale un error Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial y gracias por la ayuda
loading...
May be some problem in dependencies. Also check whether the ejb project is deployed in the server.
loading...
Hi,
Great tutorial for begineers. Keep it up.
loading...
Hi,
Can we invoke a EJB service from Android directly.
Do we need to expose EJB client as a webservice and call from android to EJBService?
Am not pretty sure how we can achieve this.Let me know on the same
loading...
Expose it as a web service or provide a front end (servlet/jsp) which accesses ejb.
loading...
Hi,
Thanks for the reply.
I tried the first option and its working fine.
Very good tutorials.
loading...
Hi Praveen
I have followed the steps mentioned in this tutorial. I am getting the below error. Please help me.
Authentication failed: all available authentication mechanisms failed
Thanks,
Uttam Das
loading...
Check 6.4 in this link
loading...
I have added jboss-ejb-client.properties in ejbmodule and set all requiredjar in classpath .I am using jboss 7.1.I am still getting same error
avax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initialHellowolrdClient.lookupContext()imputcontextnull
HellowolrdClient.getlookupName()
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getNameInNamespace(InitialContext.java:538)
loading...
Thanks a lot. Worked with jboss 7.1.0.
loading...
Exception in thread “main” java.lang.IllegalStateException: No EJB receiver available for handling [appName:sb01,modulename:sb01,distinctname:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@1a0c10f
at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:584)
at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:119)
at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
at $Proxy0.add(Unknown Source)
at EJBApplicationClient.main(EJBApplicationClient.java:18)
loading...
Great tutorial! Thank you very much.
I used JBoss Version 7.1.1 Final and struggled a little bit as the client told the error:
Exception in thread “main” java.lang.IllegalStateException: No EJB receiver available
Then I found out, that the application was not deployed correctly. To have it deployed I had to create a file HelloWorldSessionBean.jar.dodeploy in the deployment directory of the jboss server.
loading...
I am using jboss-6.1.0.Final, and am also facing this issue, I don’t see few of the jars mentioned in this example, any help would be appreciated
loading...
Go through this link for EJB3 in JBoss 6.1
loading...
Pingback: How To Develop Android Apps In Eclipse | X Power Ionizer Post
I am trying to follow your example but I am getting the following errors:
It looks like it cant find the imports for the ejb stuff
Description Resource Path Location Type
Remote cannot be resolved to a type HelloWorldBean.java /HelloWorldSessionBean/ejbModule/com/ibytecode/businesslogic line 5 Java Problem.
Description Resource Path Location Type
The import javax.ejb cannot be resolved HelloWorldBean.java /HelloWorldSessionBean/ejbModule/com/ibytecode/businesslogic line 3 Java Problem
loading...
I am using jBoss 5.0 , where could i find the jar files that are added in the last step.
I have tried searching these files but i could not. Help me out. Thanks
loading...
See this link for the steps to create an ejb3 project for JBoss 5.1
loading...
Hi. Great Tutorial. But Ctrl + F11 produces “Usage: javaw [-options] class [args...] (to execute a class)”
I also have JDK 1.6 configured and JRE 7 from Window -> preferences. I shut down eclipse, re-started the JBoss server and repeated, but still I get the same message.
loading...
Hi!
This is Naresh, i am tried above application using Eclipse Indigo, JBoss7.1, it showing Exception… can you plz tell me wt hpn…
like:
INFO: JBoss Remoting version 3.2.0.CR6
javax.naming.NamingException: Failed to create remoting connection [Root exception is java.lang.RuntimeException: Operation failed with status WAITING]
at org.jboss.naming.remote.client.ClientUtil.namingException(ClientUtil.java:36)
at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:121)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.(InitialContext.java:197)
at com.ariveguru.ejb.ClientUtility.getInitialContext(ClientUtility.java:25)
at com.ariveguru.ejb.EjbApplicationClient.doLookup(EjbApplicationClient.java:20)
at com.ariveguru.ejb.EjbApplicationClient.main(EjbApplicationClient.java:11)
Caused by: java.lang.RuntimeException: Operation failed with status WAITING
at org.jboss.naming.remote.protocol.IoFutureHelper.get(IoFutureHelper.java:89)
at org.jboss.naming.remote.client.NamingStoreCache.getRemoteNamingStore(NamingStoreCache.java:56)
at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateCachedNamingStore(InitialContextFactory.java:166)
at org.jboss.naming.remote.client.InitialContextFactory.getOrCreateNamingStore(InitialContextFactory.java:139)
at org.jboss.naming.remote.client.InitialContextFactory.getInitialContext(InitialContextFactory.java:104)
… 7 more
Exception in thread “main” java.lang.NullPointerException
at com.ariveguru.ejb.EjbApplicationClient.main(EjbApplicationClient.java:12)
loading...
Hey Nithya thanks for such a wonderful & perfect guide for creating EJB 3.0 project.
Great Efforts!!!!
Could you please help me further!
I wanted to add an JPA project to this EJB project how shall I do it?
Database used by me is Oracle 11g.
I have tried many ways but I am unable to get over several problems.
Also like to inform that i am an beginner to JavaEE.
loading...
You can refer this link for EJB3 JPA Project. But it uses MySQL. If you want to know the connection string for Oracle, refer this link.
loading...
Thanks for this informative tutorial. This example is working for me with properties file.
loading...
Mar 7, 2013 12:28:53 PM org.jboss.ejb.client.EJBClient
INFO: JBoss EJB Client version 1.0.5.Final
Mar 7, 2013 12:28:53 PM org.xnio.Xnio
INFO: XNIO Version 3.0.3.GA
Mar 7, 2013 12:28:53 PM org.xnio.nio.NioXnio
INFO: XNIO NIO Implementation Version 3.0.3.GA
Mar 7, 2013 12:28:53 PM org.jboss.remoting3.EndpointImpl
INFO: JBoss Remoting version 3.2.3.GA
Mar 7, 2013 12:28:54 PM org.jboss.ejb.client.remoting.VersionReceiver handleMessage
INFO: Received server version 1 and marshalling strategies [river]
Mar 7, 2013 12:28:54 PM org.jboss.ejb.client.remoting.RemotingConnectionEJBReceiver associate
INFO: Successful version handshake completed for receiver context EJBReceiverContext{clientContext=org.jboss.ejb.client.EJBClientContext@9446e4, receiver=Remoting connection EJB receiver [connection=Remoting connection ,channel=jboss.ejb,nodename=laptop]} on channel Channel ID dc2db15c (outbound) of Remoting connection 00b60b93 to localhost/127.0.0.1:4447
Mar 7, 2013 12:28:54 PM org.jboss.ejb.client.remoting.ChannelAssociation$ResponseReceiver handleMessage
WARN: Unsupported message received with header 0xffffffff
what can i do?
loading...
Read the previous comments. Check your JBoss version and try to add the correct client JAR file to the classpath.
loading...
i still get the warnings, but i could run the client, thank you very much for the support.
The EJB series is the best complete series of EJB tutorials i have ever seen.
Great job.
loading...
Hi Nithya and ALL,
I have been following your tutorial from 2 days, i want to work with JPA so i started with basic step by creating simple “Hello worldBean” by following your tutorial, i setted – up environment as you said, my server starts fine, http://localhost … shows my jboss page, but when i try to deploy ejbbean on server, it is not being deployed, i mean i dont get any message on console (which you specified in your tutorial), nor any errors, i checked both jboss/server/default/ and http://localhost:8080/jms- console/jndiview but couldnt see any entries of my jar file. I tried using jboss 4.22,5.1.0 and 6.x but same thing happens, Please help.
Thanks
Heta
loading...
I am new for EJB n also go through above steps but I got same error, so please let me know in case of any solution.
loading...
I am new for EJB n also go through above steps but I got error
Error: Could not find or load main class com.ibytecode.client.EJBApplicationClient
, so please let me know in case of any solution.
loading...
I am facing this problem while writing the above code and run in jboss 7.1
Exception in thread “main” java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
loading...
when runing server i get the traces as folows –
12:13:16,933 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015877: Stopped deployment testejb.jar in 40ms
12:13:16,934 INFO [org.jboss.as.server.deployment] (MSC service thread 1-7) JBAS015876: Starting deployment of “testejb.jar”
12:13:16,951 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-4) JNDI bindings for session bean named HelloWorldBean in deployment unit deployment “testejb.jar” are as follows:
java:global/testejb/HelloWorldBean!com.ibytecode.business.HelloWorld
java:app/testejb/HelloWorldBean!com.ibytecode.business.HelloWorld
java:module/HelloWorldBean!com.ibytecode.business.HelloWorld
java:jboss/exported/testejb/HelloWorldBean!com.ibytecode.business.HelloWorld
java:global/testejb/HelloWorldBean
java:app/testejb/HelloWorldBean
java:module/HelloWorldBean
12:13:17,093 INFO [org.jboss.as.server] (DeploymentScanner-threads – 2) JBAS018565: Replaced deployment “testejb.jar” with deployment “testejb.jar”
which is right but on runing the EJB applicationClient.java as java program i get the errors as
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:307)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:344)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at com.ibytecode.client.EJBApplicationClient.doLookup(EJBApplicationClient.java:26)
at com.ibytecode.client.EJBApplicationClient.main(EJBApplicationClient.java:13)
Exception in thread “main” java.lang.NullPointerException
at com.ibytecode.client.EJBApplicationClient.main(EJBApplicationClient.java:14)
please show me a way to run the program correctly
loading...
Very Good~mark
loading...