1: Unsere Anwendung läuft auf Weblogic Application Server, Version 10.3.0EJB 3.0-Lookup in Weblogic 10.3.0
2: In unserem System brauchen wir eine EJB zu implementieren, um die EJB 3.0-Spezifikation entsprechen.
finden Sie den Beispielcode für unsere UAT-Umgebung wie folgt:
/*The remote interface*/
package com.serverside.ejb.session;
import javax.ejb.Remote;
@Remote
public interface ASimpleSessionBeanRemote {
public void printThis(String print);
}
/*The bean class*/
package com.serverside.ejb.session;
import javax.ejb.Remote;
import javax.ejb.Stateless;
/**
* Session Bean implementation class ASimpleSessionBean
*/
@Stateless(name="ASimpleSessionBean", **mappedName = "ASimpleSessionEJB"**)
@Remote(ASimpleSessionBeanRemote.class)
public class ASimpleSessionBean implements ASimpleSessionBeanRemote {
/**
* Default constructor.
*/
public ASimpleSessionBean() {
// TODO Auto-generated constructor stub
}
@Override
public void printThis(String print) {
// TODO Auto-generated method stub
System.out.println("ASimpleSessionBean : "+print);
}
}
3: Die oben genannten Dateien, wenn im Glas verpackt erfolgreich auf dem Server bereitgestellt bekommen.
4: Wie pro EJB 3.0-Spezifikation sind die deployement Deskriptoren nicht mandatory.Hence, wird das Glas nicht ejb-jar.xml und weblogic-ejb-jar.xml
5 umfassen: Finden Sie, Bezug des EJB3.0 Annotationen gemäß der Weblogic Application Server Dokumentation:
Annotation : @Stateless
Package: javax.ejb.Stateless
Attribute : mappedName
Description :
Specifies the product-specific name to which the stateless session bean should be mapped.
You can also use this attribute to specify the JNDI name of this stateless session bean. WebLogic Server uses the value of the mappedName attribute when creating the bean’s global JNDI name. In particular, the JNDI name will be:
mappedName#name_of_businessInterface
where name_of_businessInterface is the fully qualified name of the business interface of this session bean.
For example, if you specify mappedName="bank" and the fully qualified name of the business interface is com.CheckingAccount, then the JNDI of the business interface is bank#com.CheckingAccount.
6: zu der obigen Spezifikation entspricht, wobei die Probe auf dem EJB Anwendungsserver bereitgestellt hat, die Bindung Namen (wie in der JNDI-Struktur reflektiert wird), wie folgt:
ASimpleSessionEJB # com.serverside.ejb.session.ASimpleSessionBeanRemote
A jndi Lookup unter diesem Namen erfolgreich ist:
InitialContext.doLookup("ASimpleSessionEJB#com.serverside.ejb.session.ASimpleSesionBeanRemote");
7: Nun wir die Bindung Namen ein einfacher String dh der Lookup sein wollen muss sei etwas wie:
InitialContext.doLookup ("ASimpleSessionEJB");
8: Zur Umsetzung Point-7 haben wir versucht, die ejb-jar.xml und weblogic-ejb-jar.xml wie folgt (Sorry, konnte nicht herausfinden, wie mit anhängen/render XML-Dateien):
9: Trotz der Punkt-8 bleibt die Bindung Namen wie folgt:
ASimpleSessionEJB#com.serverside.ejb.session.ASimpleSessionBeanRemote
10: Bitte leiten Sie uns über die Lösung und Umsetzung Point-7 zu besuchen.
Danke!
Bitte lesen Sie meine Antwort im folgenden Thread: http://StackOverflow.com/Questions/8909573/how-to-access-ejb-from-a-Quartz-job/10885831#10885831 –