** Я не могу создать сессионный компонент без состояния с EJB3.0 и Websphere 6.1.Проблемы с сессионным компонентом без состояния с EJB3.0 и websphere6.1
Я упаковываю все в файл EAR и размещаю его на Websphere. . Я пытаюсь создать сеансный компонент и ожидая, что экземпляр компонента сеанса и вызвать ejbCreate() **
Following is my code and xml file.
package com.aa.otrs.datacollector.reject.ejb;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.ejb.Timeout;
import javax.ejb.Timer;
import javax.ejb.TimerService;
import javax.interceptor.Interceptors;
import com.aa.otrs.datacollector.logging.DataCollectorLogger;
import com.aa.otrs.fraudnet.service.FraudNetSoapWrapperService;
import com.google.inject.Inject;
@Stateless
@Interceptors(GuiceInterceptor.class)
public class RejectServiceBean implements IRejectServiceBean{
@Inject
private DataCollectorLogger logger;
@SuppressWarnings("unused")
@Inject
private FraudNetSoapWrapperService fraudnetWebService;
@Resource
private TimerService timerService;
public void ejbCreate() throws javax.ejb.CreateException {
logger.debug("On ejbCreate");
logger.debug(“RejectServiceBean ");
}
public void ejbActivate() {
logger.debug("ejbActivate");
}
}
This is ibm-ejb-jar-bnd xml file under META-INF folder.
<ejb-jar-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_0.xsd"
version="1.0">
<message-driven name="PnrMessageBean">
<listener-port name="RECLOCATOR.LP" />
</message-driven>
<session name="RejectServiceBean">
<interface class="com.aa.otrs.datacollector.reject.ejb.IRejectServiceBean"
binding-name="ejblocal:ejb/RejectServiceBean"/>
</session>
</ejb-jar-bnd>
import javax.ejb.Local;
@Local
public interface IRejectServiceBean {
void callingInterface();
}
I have tried implementing stateless session with or without interface and xml file.
import com.google.inject.Inject;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.ejb.TimedObject;
import javax.ejb.Timeout;
import javax.ejb.Timer;
import javax.ejb.TimerService;
import javax.interceptor.Interceptors;
import com.aa.otrs.datacollector.logging.DataCollectorLogger;
import com.aa.otrs.fraudnet.service.FraudNetSoapWrapperService;
@Stateless
@Interceptors(GuiceInterceptor.class)
public class RejectServiceSessionBean {
@Inject
private DataCollectorLogger logger;
@Inject
private FraudNetSoapWrapperService fraudnetWebService;
public void ejbCreate() throws javax.ejb.CreateException {
logger.debug("On ejbCreate");
logger.debug("In RejectServiceSessionBean constructor");
}
public void ejbActivate() {
logger.debug("ejbActivate");
}
public class GuiceInterceptor{
private static final Injector injector = Guice.createInjector(new EjbEnvironmentModule());
@PostConstruct
@PostActivate
public void autowireBean(InvocationContext invocationContext) {
Object target = invocationContext.getTarget();
injector.injectMembers(target);
}
}
Проблема: Из выше два фрагмента коды он никогда не делает звонки на ejbCreate или метод ejbActivate. Я поместил регистраторы, чтобы проверить, проходит ли он через эти методы.