2
我有一個休息Web服務。在這個其他的Web服務中,我使用@EJB
來注入一個EJB。然後我想在我的EJB上調用一個函數。問題是,當我這樣做時,整個事情就會爆炸。我創建了一個簡單的示例來演示。無法在其他Web服務中調用EJB
我有兩個項目。一個是包含我的EJB的ear項目。
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
/**
*
* @author dan
*/
@Stateless
@LocalBean
public class DummyBean {
public String dummMessage(){
return "Hello World";
}
}
另一個是包含我的web服務的戰爭。
@Stateless
@Path("resources")
public class CasperMessage {
private final Logger logger = Logger.getLogger(ServerMessageManager.class.getName());
@Context
private UriInfo context;
@EJB
DummyBean db;
/**
* Creates a new instance of CasperMessage
*/
public CasperMessage() {
}
@PUT
@Consumes("application/xml")
@Produces("application/xml")
@Path("/message/get")
public String getMessage(String content)
{
//Message retVal = serverMessageManager.getMessageRecieved(message);
String retVal = db.dummMessage();
return retVal;
};
}
當您運行的代碼,我得到以下異常:
SEVERE: EJB5070: Exception creating stateless session bean : [DummyBean]
WARNING: EJB5184:A system exception occurred during an invocation on EJB DummyBean, method: public java.lang.String com.dv.business.messaging.server.DummyBean.dummMessage()
WARNING: javax.ejb.EJBException: javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB
at com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:454)
at com.sun.ejb.containers.BaseContainer.getContext(BaseContainer.java:2547)
at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1899)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:212)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
at $Proxy207.dummMessage(Unknown Source)
at com.dv.business.messaging.server.__EJB31_Generated__DummyBean__Intf____Bean__.dummMessage(Unknown Source)
at com.dv.ws.CasperMessage.getMessage(CasperMessage.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
任何意見或建議?這似乎是一個這麼簡單的想法,但它不適合我。
你可以嘗試包裝DummyBean作爲一個耳朵?那麼戰爭與它有聯繫嗎? – user489041
有兩個模塊的耳朵:具有Rest服務的war模塊和具有bean的ejb模塊? – Ilya
是的,效果很好... – Ilya