Session Bean with WSAD 5
I am able to write a session bean in WSAD. But I do not know how to run this in WSAD 5.0.
Is there any tutorial available how to run session bean in WSAD 5.0? Or can any one explain??
Thanks a lot in advance.
Hi,
You can use the bean explorer.
You right click the bean in the J2EE Hierachy view(on the left) and click "Run on server" from the popup menu. This will start a server, you will need to put in a few configuration details, normally you should accept all the defaults. You'll see the Universal Test Client open once the server is running, like a browser where the Java editor is. If you don't then in the Servers view(at the bottom) right click the server that is started and select "Run universal test client". In the Universal Test Client window(i.e. the browser) click the ejb link then navigate to your bean. I think it is pretty self explainatory from here, but if you need a little more help try this link although it is a little reading to find what you want - http://publib.boulder.ibm.com/infocenter/wsphelp/index.jsp?topic=/com.ibm.etools.websphere.tools.common.doc/concepts/cwejbtc.htm .
See ya
Michael
Similar Messages
-
Stateful Session Bean with BMT: JDBCpmf or EEpmf?
Quote:
For the record: when using BMT as David described, you should use a JDBCPersistenceManagerFactory
instead of an EEPersistenceManagerFactory. EEPersistenceManagerFactory is only appropriate when
transaction synchronization is desired.
-Patrick
Hi Patrick,
I wanted to follow up on this. In the case of Kodo, the JDBCpmf does not turn on the
UserTransaction in a managed environment, while the EEpmf does. My question: isn't is necessary to
turn on the UserTransaction in a stateful session bean with BMT? If this doesn't happen, isn't
there a danger, if the bean allows transactions to span business method invocations, that the
container will passivate the bean while a transaction is active? Since the PM can't be saved during
passivation, the tx would be interrupted by passivation -- something that would not happen if the
container were aware that a tx was active.
David EzzioDavid,
My interpretation of your initial post was that you were using fully
unmanaged transactions in your bean. That is, that you were not using the
UserTransaction, but were just using the javax.jdo.Transaction for
transactional data store access.
In the situation I just described, using the EEPMF would result in changes
to the UserTransaction. If your goal was to manage the UserTransaction in
the bean, then yes, you'd still want to use the EEPMF.
-Patrick
On 7/25/02 7:17 PM, "David Ezzio" <[email protected]> wrote:
Quote:
For the record: when using BMT as David described, you should use a
JDBCPersistenceManagerFactory
instead of an EEPersistenceManagerFactory. EEPersistenceManagerFactory is only
appropriate when
transaction synchronization is desired.
-Patrick
Hi Patrick,
I wanted to follow up on this. In the case of Kodo, the JDBCpmf does not turn
on the
UserTransaction in a managed environment, while the EEpmf does. My question:
isn't is necessary to
turn on the UserTransaction in a stateful session bean with BMT? If this
doesn't happen, isn't
there a danger, if the bean allows transactions to span business method
invocations, that the
container will passivate the bean while a transaction is active? Since the PM
can't be saved during
passivation, the tx would be interrupted by passivation -- something that
would not happen if the
container were aware that a tx was active.
David Ezzio--
Patrick Linskey [email protected]
SolarMetric Inc. http://www.solarmetric.com -
Using a Statefull Session Bean with RMI on Multiple JSP pages
Heya all,
i have a JBoss server running with a statefull bean on it. I want to use it on my JSP pages. But every time I start my JSP-page a NEW INSTANTION of the bean is created! For each user using my page, I want ONE bean.
Is there anyway to do this? ANything with the sessioncontext?
I can do it with local beans, using the simple tags in the JSP-page, but they do not work for Remote Beans.
(I use JNDI)hi,
statefull session beans are client session specific. the instance will exists if client session exits.
now since u are loading the jsp page again in the other browser, a new instance will be associated with the current session.
hope it will work.
sameer -
Creating and deploying ejb 3.0 session bean with annotated pojo
I try to create and deploy a EJB 3.0 stateless session bean (and associated webservice) with the following steps:
1) Create Interface "Repository"
package de.xxx.config;
import java.rmi.Remote;
import java.rmi.RemoteException;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public interface Repository extends Remote {
@WebMethod(operationName = "findCampaignByChannel")
public String findCampaignByChannel(String channelName) throws RemoteException;
2) create dummy "RepositoryImpl"
package de.xxx.config;
import java.rmi.RemoteException;
import javax.ejb.Stateless;
import javax.jws.WebService;
@WebService(endpointInterface="de.xxx.config.Repository")
@Stateless
public class RepositoryImpl implements Repository {
public String findCampaignByChannel(String channelName) throws RemoteException {
return null;
3) The two class files are packaged into a jar without any further descriptors
4) The jar is deployed with admin_client into the oc4j instance using the commands:
-deploy -file <jarfile> -deploymentName <name>
Result:
An ear was constructed and started but no session bean or webservice is found (using the console). But according to to the docs a jar file without a ejb-jar.xml should be recognized as a EJB 3.0 ejb-jar file and the necessary steps to create session bean and expose webservice should be done automatically.
My question:
Which step do i miss here ?
Tools used:
Eclipse 3.2 for the jar file
SoaSuite 10.1.3.1 for oc4janother strange problem.
i have an APplication server added ( JBOSS ).
when i create deployment profile (EAR ) application server is showed in the ComboBox .
But when i create Java Test Client for some EJB and when i check " Connect Remote Application server" there is 2 comboboxes
J2EE Application
App Server Connection.
first combo is ok there is EJB applicaiton
Secound is empty .. but i Have App Server.
Another think is that when i create EJB 3.0 its BAD to see J2EE app it must be J EE 5 app or just Java EE app -
Session bean with 2 entity bean
i have a phonebook manager (session bean) taht controls the category of contacts such as group a , group b, group c and group d. where group a b c and d are all entity beans.
may i know how to control a session bean so that it can diferent which entity beans to invoke ?Group might be a table in a database,
GroupEJB referes to Entity Bean.
with the following fields. Group Id , Group disciption. where group ID is primary Key.
Use a session bean and create your group A B C D.( EJB create method).
Simple i guess.
Enjoy
Zoha. -
Deploying session beans with weblogic 5.1 in NT
Hello ,
I have a problem with deploying session beans in weblogic 5.0. I have
written the code and compiled it. My Compilation is fine. Cud any one give
me a step by step of how I should deploy my bean with weblogic 5.0 on
windows NT.
Raj UrsHello ,
I have a problem with deploying session beans in weblogic 5.0. I have
written the code and compiled it. My Compilation is fine. Cud any one give
me a step by step of how I should deploy my bean with weblogic 5.0 on
windows NT.
Raj Urs -
Example of using session bean with webservices
Hello,
I am working with netbeans 5.5 (with JAX-WS 2.0 library) and using Tomcat.
I have created webservices and everything is working well so far. However, each webservice is making a connection to my database.
I would like to use a session bean so that I make the connection only once (at the begining of the client session for example) and store it into my session bean.
I am a newbie in those things, I search on the Web and on this forum some code examples. The only thing I have found is this article http://weblogs.java.net/blog/ramapulavarthi/archive/2006/06/maintaining_ses.html
When I tried this, the session doesn't seem to work at all : I get the same result (counter=1) twice.
Does anybody have a complete example of how to use a session with webservices please?
Thanks a lot!Sorry, I was not very clear in my last message.
I need all my webservices to share the same bean during one user session.
Then, if a page calls 2 different web services, only 1 database connection is made instead of 2. And if the user opens other pages which call other webservices, they will use the connection kept into the session bean.
Anyway, I tried to do like it is said in your website but I can not build my project. I have an error : java.lang.LinkageError: JAXB 2.0 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/C:/.../build/web/WEB-INF/lib/jaxb-impl.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.1 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. I do not understand because I have downloaded the jax-ws 2.1.1 api and no other libraries are imported in my project. :-(
I wonder if it is not related to netbeans... -
Hi,
It depends upon your client program. You can use a java rmi based client or a web application. The good kick start to the problem would be to have a look into the java pet store example and converter example which is using RMI port for client access as well as web based access. Please review the examples shipped along with iAS and I'm sure that you will have a good idea on going about the coding.
Regards
Raj -
How can i expose a stateless session bean with in .ear as web service?
This is my situation.
I have an .ear file and in that i have several other .jar files which are
inter-dependant, lets say
A.jar
B.jar
C.jar files
and i want to expose only A.jar as
webservice, how can i do that ?
Does WLS8.1 provided any way how to do that?
I Appreciate any suggestions and advices.
Thanks
kkI used a different method...
I used servicegen with only a.jar to create the ear.
I touch-ed my own application.xml to make it newer than the one already in the
newly created ear.
I used the ant <ear> task to add b.jar, c.jar, and application.xml to the ear.
Worked like a charm.
Mike
Bruce Stephens <[email protected]> wrote:
Hello,
See if Neal's answer here helps solve your problem using servicegen's
service element "IncludeEJBs" attribute:
http://newsgroups.bea.com/cgi-bin/dnewsweb?cmd=article&group=weblogic.developer.interest.webservices&item=2932&utag=
HTHs,
Bruce
kk wrote:
This is my situation.
I have an .ear file and in that i have several other .jar files whichare
inter-dependant, lets say
A.jar
B.jar
C.jar files
and i want to expose only A.jar as
webservice, how can i do that ?
Does WLS8.1 provided any way how to do that?
I Appreciate any suggestions and advices.
Thanks
kk -
EJB 3.0 - Communicate an Applet with a Session Bean
Hello
I'm developing an EJB 3.0 app (eclipse and glassfish tools bundle), and I have an applet that has to use remote session beans.
QUESTION: Is it possible for the applet to connect to EJB?
QUESTION: By creating a J2EE application client project, can I use @EJB annotations to inject the session bean directly to the applet, avoiding the JNDI lookup?
(since I imagine that the anwser to the second one is NO, I do the following consideration)
Given an application client project, I imagine that this application can run remotely on a client machine/JRE. Then this application can use Annotations/injection facilities whenever it runs on a J2EE client container (which I assume consists of a set of libraries provided by the application server vendor, Glassfish in that case). Could this application be deployed using Java Web Start? If so, why can't it be deployed as an applet? (both options run in a client JRE, don't they?).
QUESTION: In either case (applet or JWS), how do I have to package the JAR file (using Eclipse) so that it contains the needed libraries for accessing the EJB? Which are those libraries?
At the time being, I'm trying to implement a sample application that follows the "Applet doing JNDI lookup" approach. I have:
- an EAR project
- an EJB project (containing an Entity Bean and a Stateless Session Bean with a @Remote interface)
@Remote
public interface HelloRemote {
public String hello(String name);
@Stateless
public class Hello implements HelloRemote {
@Override
public String hello(String name) {
return "Hello "+name+"!!";
}- an Application Client project (containing the applet code):
public class ClientApplet extends JApplet {
public void init(){
try {
Context jndiContext = getInitialContext( );
HelloRemote server = (HelloRemote) jndiContext.lookup(HelloRemote.class.getName());
setContentPane(new JLabel(server.hello("Gerard")));
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
private Context getInitialContext() throws NamingException{
Properties props = new Properties();
props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("org.omg.CORBA.ORBInitialHost", "myhost");
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
return new InitialContext(props);
}- a static web project (with a sample web page that contains the applet object the corresponding applet JAR file)
I tried to export the Application Client project as an "application client JAR", in the hope that the java EE libraries bundled with glassfish (listed as libraries of this project) would be packaged too.
No success, so now I'll try to copy all the JAR files (one by one) into the +\WebContent\+ folder of the Web Project, and add references to each of them in the archive="" attribute of the +<applet>+ HTML tag. Although this might work, I suspect that I am missing the good/easy way of doing it. Any suggestions?
Thanks in advance,
Gerard
Edited by: gsoldevila on May 6, 2009 7:09 AMAn Applet can communicate with an EJB via JNDI lookup but I would (personally) use an intermediate Servlet to handle this. Client to Servlet communication is http whereas to ejb is iiop - which might be blocked.
Injection only works in managed classes (EJB, Servlet, Listeners..) and an Application Client main class. So yes you could use an app client for handling resource injection.
m -
TX isolation level with stateless session bean in oc4j
Hi All,
I have a stateless session bean with container managed transaction method. This method is called in a Servlet. This method retrieves data from database using 'ejb-location'connection pool and closes the connection inside. Max-connection setting for connection pool is 50
I am facing a problem running servlet multiple times.
When i have the tx_attribute as Supports, it works fine. I can run the servlet hundreds of times
But when i have the tx_attribute as Required, i am able to run servlet only 50 times and further it says 'Max connection limit exceed..unable to get the connection'.
I assume that with 'Required' attribute, it starts a transaction. Why is the transaction not getting completed at end of method? Is transaction hanging somewhere?
I assume that i am closing the connection properly as it is working fine with supports attribute.
When i monitor database, there are only 20 connections.
Why am i seeing this behaviour?
Thanks
srinathHi Deepak,
Thanks for your reply.
Actually, our stand alone java application already using spring-hibernate feature. Now we are planning divide our application into modules and deploy each module as ejb beans. As it is already integrated with spring-hibernate we are not using entity beans as of now. My understanding is container uses some default transcation management .so, my question is what are all the configurations needs to be done to let weblogic 10.0 server uses org.springframework.orm.hibernate3.HibernateTransactionManager. I mean, is there are any .xml file in weblogic to configure all these? please reply deepak I am struck here..
Regards,
Rushi. -
Can this be done only with Session Beans ?
Hi all,
suppose I have an airline web selling ticket application.
This is the web flow:
-The user chooses destinations & date
-The user chooses seats
-The user confirms to buy
If it's NOT required to persist itineraries until the user confirms to buy,
can this be done ONLY with Session Beans ?
I think that there aren't cuncurrency problems because even if two persons will book the same flight, they'll get different sequence Id (if the sequence is generated by the DataBase).
I think the worst scenario is if two person book the last seat at the same time, one will get an error.......
What do you say to it ?
Thanks
FrancescoIf it's NOT required to persist itineraries until the
user confirms to buy,
can this be done ONLY with Session Beans ?Yes. Even if persistence is required, you can use only session beans with some persistence mechanism. -
Session Bean trying to send a message to Websphere MQ5.3
Hello all,
I use WSAD5.1 and Websphere MQ 5.3. Websphere MQ is installed on a
Solaris box with a Queue Manager configured and several queues created on it.
The WSAD, is running on a different machine. I have written a session bean with a method, putMessage( ).
Inside this putMessage( ), I'm supposed to send a message to one of the
queues configured in Websphere MQ running on the solaris box. How should I code in my putMessage( ) method, so that I'm able to send a message to the queue.
My major doubt is I need to look up for the QueueConnectionFactory and also the queue inside the session bean. I doubt if this is possible using JNDI.
I'm coding as per EJB2.0 specs.
Can someone guide me what is the right approach so that I'm able to send a message from sessionbean to a queue.
If someone could point to some kind of example code, that would be great.
P.S. I know, how to code if I create the queue and QueueConnectionFactory, in WSAD, i.e., in the Server configuration.
But what I don't know is, how to code if I'm using MQ Series running
elsewhere.
Thanks in advance,
Pandit.
Please get back to me if you need any clarifications.try this : (you need some mq libraries (search for ma88 in google ( MQSeries classes for Java and MQSeries classes for Java))
import com.ibm.mq.*; // Include the WebSphere MQ classes for Java package
public class SendMessageToMQ
private String qManager = "AIXD004"; // define name of queue // manager to connect to.
private MQQueueManager qMgr; // define a queue manager
// object
public static void main(String args[]) {
new SendMessageToMQ();
public SendMessageToMQ() {
// Set up WebSphere MQ environment
MQEnvironment.hostname = "192.168.19.41";
MQEnvironment.port=1415;
// hostname & channel
//MQEnvironment.channel = "S_ibcn_c029"; // string directly here!
//MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES);//Connection
MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
MQEnvironment.channel = "SYSTEM.DEF.SVRCONN";
try {
// Create a connection to the queue manager
qMgr = new MQQueueManager(qManager);
// Set up the options on the queue we wish to open...
// Note. All WebSphere MQ Options are prefixed with MQC in Java.
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF |
MQC.MQOO_OUTPUT ;
// Now specify the queue that we wish to open,
// and the open options...
MQQueue system_default_local_queue =
//qMgr.accessQueue("ENTEST1.HOST.ASYNC.RECEPCION",
qMgr.accessQueue("QNO.0002.AIXD004.L",
openOptions);
// Define a simple WebSphere MQ message, and write some text in UTF format..
MQMessage hello_world = new MQMessage();
hello_world.writeUTF("Hello World!");
// specify the message options...
MQPutMessageOptions pmo = new MQPutMessageOptions(); // accept the // defaults,
// same as MQPMO_DEFAULT
// put the message on the queue
system_default_local_queue.put(hello_world,pmo);
// get the message back again...
// First define a WebSphere MQ message buffer to receive the message into..
MQMessage retrievedMessage = new MQMessage();
// Set the get message options...
MQGetMessageOptions gmo = new MQGetMessageOptions(); // accept the defaults
// same as MQGMO_DEFAULT
// get the message off the queue...
system_default_local_queue.get(retrievedMessage, gmo);
// And prove we have the message by displaying the UTF message text
//String msgText = retrievedMessage.readUTF();
String msgText = retrievedMessage.readUTF();
System.out.println("The message is: " + msgText);
// Close the queue...
system_default_local_queue.close();
// Disconnect from the queue manager
qMgr.disconnect();
// If an error has occurred in the above, try to identify what went wrong
// Was it a WebSphere MQ error?
catch (MQException ex)
System.out.println("A WebSphere MQ error occurred : Completion code " +
ex.completionCode + " Reason code " + ex.reasonCode);
// Was it a Java buffer space error?
catch (java.io.IOException ex)
System.out.println("An error occurred whilst writing to the message buffer: " + ex);
} // end of sample -
How can i design a EJB application using session Beans?
Hello,
I am designing a Find application using EJB. Here a user is prompted a search page, where he can enter the search criteria's. Then on click of submit, the query is formed at the server side depending on what criteria's were selected. Then a jdbc query is performed and the results are returned back to the user. Here no session is maintained for the users. Can anyone suggest me how to design this application using EJB. Should i use entity beans for this or session beans will suffice? Should the jdbc query be performed in the bean itself or should it be outside in a helper class? Please kindlu suggest me the design for this application...
Regards,
SubbuHi,
First of all, I'm unable to figure out why you need to use EJB for this scenario. You can write a helper class to frame and execute the query.
If you really want to use EJB, then I suggest you use a stateless Session Bean with transaction attribute as TX_NOT_SUPPORTED. From the session bean, you can call the helper class. But, by avoiding the session bean, you can eliminate remote calls, thus improving your performance. Also, check if the database & the db driver you are using supports sql caching.
Regards,
Raj. -
Calling EJB 3.0 Stateless Session Bean
Dear all,
I created a stateless session bean with a hello world method on it. Now i want to call the method from a BeanDecorator class, through a getter metod. When i use the jndi lookup in my getter, i can call the helloWorld method without a problem. However, when i dont use the jndi lookup, and only use the @EJB annotation, i always get a nullpointer.
This is working:
InitialContext ic = new InitialContext();
test = (TestLocal)ic.lookup("test.be/ear~bd/LOCAL/TestBean/"+TestLocal.class.getName());
test.helloWorld()
This gives nullpointer:
@EJB
private TestLocal test;
test.helloWorld();
What is the correct way to consume session beans without having to explicitly code the jndi lookup?
Kind regards.Hi,
any annotation like this can be used only in "managed classes" like Session Beans, Servlets etc. Managed classes are those classes managed by the J2EE server. Managed here means, lifetime controlled by server.
You can find this in J2EE specification.
Frank
Maybe you are looking for
-
lorsque je demarre une application j'ai ce message d'erreur: # An unexpected error has been detected by Java Runtime Environment: # EXCEPTION_FLT_STACK_CHECK (0xc0000092) at pc=0x00a0d0a9, pid=244, tid=3768 # Java VM: Java HotSpot(TM) Client VM (1.6.
-
How do I activate a Bridge slideshow already uploaded to my DW CS4 site?
Slideshow (29 photos) was created in CS Bridge from Photoshop and uploaded to a site already created and published from DW CS4. I want to have the slideshow open and run in an editRegion on a specific page already created using the custom site templa
-
Using HTML5 and Firefox 4.0.1, following code : <form> <input type="text" name="my_input" pattern="^[A-Z]([a-zA-Zçéèâêîôûäëïöü-]{1,47}|.)" /> </form> fails to validate input like "François" or "André" but "Francois" ou "André" is accepted. The problè
-
When I click on an image, it won't show up in photoshop
I'll restart the computer, and then photoshop and it will let me work on it for a short time, then it won't pull up an image. I had CS4 and decided to upgrade to the monthly photoshop to see if that would fix it and nope, it started again! HELP!
-
Report for what transactions a person has used
Hi Experts Is there any way to write our own report to show the trasnsaction code a person has used between dates or year so that we want to trace what transaction code are mostly used by the users . There are hundereds of transaction which will has