Хи Фолкс,
хорошо, (для меня) мою проблему трудно объяснить, но я думаю, для большинства из вас это покажется довольно тривиальным.Я создаю приложение, используя Spring Webflow.Пользователи должны ввести свое имя пользователя в веб-приложение, которое затем сохраняется в бине.Когда они нажимают на кнопку «Войти», вызывается метод компонента (connect()
), который устанавливает соединение jms с другим сервером.
public class HumanBrokerBean implements Serializable {
/** The Constant serialVersionUID. */
private static final long serialVersionUID = 1L;
/** The broker name. */
private String brokerName;
/** The password. */
private String password;
private double cashPosition = 0;
/**
* Gets the password.
*
* @return the password
*/
public String getPassword() {
return password;
}
/**
* Sets the password.
*
* @param password
* the new password
*/
public void setPassword(String password) {
this.password = password;
}
/**
* Gets the broker name.
*
* @return the broker name
*/
public String getBrokerName() {
return brokerName;
}
/**
* Sets the broker name.
*
* @param brokerName
* the new broker name
*/
public void setBrokerName(String brokerName) {
this.brokerName = brokerName;
}
/**
* @return the cashPosition
*/
public double getCashPosition() {
return cashPosition;
}
public boolean connect(){
ConnectionService connection = new ConnectionService();
//if there have been problems while establishing the connection
if(!connection.connect(username, password, serverConnection, byPass)){
return false;
}
//if connection was established
return true;
}
}
Через некоторое время появляется сообщение от удаленногосервер прибывает, говоря, что CashPosition конкретного пользователя изменился.Теперь мне придется обновить переменную «cashPosition» Бина, которая должна отображаться в пользовательском интерфейсе.
1) Моя проблема в том, что я просто не могу получить доступ к значениям бина.Как мне получить к ним доступ?
2) Через некоторое время пользователь может захотеть отправить сообщение на сервер.По этой причине у меня есть метод внутри моего класса ConnectionService.Теперь я хотел создать метод в Bean, который должен быть посредником между пользовательским интерфейсом и сервисом ConnectionService.Здесь у меня проблема в том, что я не могу создать переменную класса и соответствующий метод, такой как
private Connection Service connection;
public void sendMessage(String message){
connection.send(message);
}
, потому что некоторые элементы службы соединений класса не сериализуемы (ActiveMQ).Вот почему я попробовал это так:
public void sendMessage(String message){
ConnectionService connection = new ConenctionService();
connection.send(message);
}
Но это решение всегда создает новый экземпляр службы соединений классов, которая не работает здесь из-за ActiveMQ ... Так что я должен иметь возможностьчтобы получить доступ к этому классу из моего бина, но я не уверен, как.
Я надеюсь, что я обмолвился, проясню вашу проблему ...
Любая помощь очень ценится!