jsonオブジェクトを渡す必要があるサーブレットメソッドがあります。このjsonオブジェクトは、マネージドBean(JSF)の1つで作成されます。Beanをサーブレットに挿入してjsonオブジェクトを取得しようとしましたが、ランタイム例外が発生しています。その方法では不可能な場合があります。だから私はJSFBeanからサーブレットを呼び出したいと思います。Beanから呼び出す方法はありますか?
サーブレット
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()」を送信する必要があります。