Вызовите метод сервлета doPost из управляемого компонента

У меня есть метод сервлета, в котором мне нужно передать объект json. Этот объект json будет создан в одном из управляемых компонентов (JSF). Я только что попытался внедрить bean-компонент в сервлет, чтобы получить объект json, но я получаю исключение во время выполнения, возможно, это невозможно. Итак, я хочу вызвать сервлет из компонента JSF. Любые идеи, как звонить из бина?

Сервлет

private static final long serialVersionUID = 1L;
TopicController topicController;
TopicBean topicBean;
List<JsonTopicObj> jsonTopicList;
public void doGet(HttpServletRequest req, HttpServletResponse res)
        throws IOException {

    // here code for subscription

    Meteor mateor = Meteor.build(req).addListener(
            new MyAtmosphereResourceEventListener());

    boolean isLongPolling = true;
    if (mateor.transport() == LONG_POLLING) {
        isLongPolling = true;
    } else {
        isLongPolling = false;
    }
    System.out.println(" Now in the Get method of Atmosphere");
    // create the broadcaster for the particular topic
    String topicId = "default"; // for all users right now
    Broadcaster broadcaster = BroadcasterFactory.getDefault().lookup(
            topicId, true);
    //set that broeadcaster
        mateor.setBroadcaster(broadcaster);
        mateor = mateor.resumeOnBroadcast(isLongPolling);
        mateor.suspend(-1);

}

    public void doPost(HttpServletRequest req, HttpServletResponse res)
            throws IOException {}

JSF БИН

@ManagedBean(name = "testController")
@RequestScoped
public void listAllTopics() {
        JsonTopicObj jsonTopicObj;
        StringWriter out = new StringWriter();
        JsonFactory jfactory = new JsonFactory();
        ObjectMapper mapper = new ObjectMapper();
        jsonTopicList = new ArrayList<JsonTopicObj>();

        for (int i = 0; i < topicBean.getTopicVOArray().length; i++) {
            jsonTopicObj = new JsonTopicObj();
                   ......................

                         }
                   mapper.writeValue(out, jsonTopicList);  

теперь мне нужно вызвать метод dopost сервлета и отправить "out.toString()"


person user1595858    schedule 05.09.2012    source источник


Ответы (1)


Где ваш первый контроль? Он переходит к управляемому bean-компоненту, а затем к сервлету, и этот bean-компонент отвечает за пересылку в сервлет? Если это так, вы можете создать объект JSON, получить свой запрос и ответ от FacesContext и отправить запрос сервлету.

FacesContext дает ваш запрос и ответ, и из этого вы можете отправить свой запрос.

person benz    schedule 06.09.2012
comment
Я уже выполняю это раньше, это работало хорошо, но спасибо за ответ. - person user1595858; 06.09.2012