Я пытаюсь внедрить фасет без ведома EJB в сервлет, но сервлет вызывает NullPointerExcetion. Я использую JBOSS для развертывания EJB и сервлета.Ошибка EJB в сервлетах
Я относительно новичок в мире Java, поэтому я публикую шаги, которые я выполнил.
Интерфейс
package MavenEJB.Bidding`
import javax.ejb.Local;
@Local
public interface PlaceBid {
public String AddBid();
}
Bean
package MavenEJB.Bidding;
import javax.ejb.Stateless;
@Stateless(name="PlaceBid")
public class PlaceBidBean implements PlaceBid {
public PlaceBidBean(){}
/**
* Include logic to add the bid
*/
public String AddBid(){
return "Placed bid using EJB";
}
}
Я создал банку файл компонента с использованием Maven и я скопировал файл банку с "разворачивать" каталог JBOSS. Я могу видеть компонент, развернутый в консоли JMX.
Global JNDI пространство имен в JMX консоли
+- PlaceBid (class: org.jnp.interfaces.NamingContext)
| +- local (proxy: $Proxy63 implements interface MavenEJB.Bidding.PlaceBid,interface org.jboss.ejb3.JBossProxy)
Мой сервлет код
public class PlaceBidServlet extends HttpServlet {
@EJB
private PlaceBid placeBid;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD><TITLE>Hello</TITLE></HEAD>");
out.println("<BODY>");
out.println("Output from EJB" +placeBid.AddBid());
//out.println("Output from EJB");
out.println("</BODY></HTML>");
}
....
}
Когда я указывал на URL моего сервлета, я получаю NullPointerException. Когда я комментирую bean-компонент и печатаю что-то еще, он печатает отлично. Поэтому я уверен, что проблема связана с вложением EJB Dependency Injection в сервлет. Я пробовал много решений, предложенных еще там, где ничего не работало, кто-то, пожалуйста, помогите мне.
Вы можете принять собственный ответ, чтобы другие пользователи знали, что на этот вопрос был дан ответ. –