#java #apache-flex
#java #apache-flex
Вопрос:
UserService.java
...
public class UserService {
public static User getUser(String username, String password) {
...
}
public static User getUser2(String username, String password) {
...
}
}
login.mxml
private function loginUser() : void {
lostPassword = false;
// this works fine
UserService.getUser(username.text, password.text);
// this fails !
UserService.getUser2(username.text, password.text);
}
getUser
уже было в, UserService.java.
я только что создал getUser2
, и оно идентично getUser
. Когда я пытаюсь вызвать getUser2
, я получаю ошибку « Cannot invoke method
«.
вопрос: Нужно ли указывать getUser2 в каком-либо другом файле? как в каком-то файле конфигурации? если да, то какой и как мне это сделать.
Спасибо.
Комментарии:
1. 1. Используете ли вы аннотации JAVA-WS? 2. Вы компилируете JAVA-код? 3. Генерируете ли вы сервисный код с помощью wsgen? 4. Используете ли вы службы данных Flash Builder для самоанализа сервиса и генерации клиентского кода? 5. Если (4== true) Вы обновили службу? 6. Используете ли вы BlazeDS remoting?
2. Является ли временная метка в версии
UserService.class
, которая загружается, более старой, чем вUserService.java
?3. @Kevin, извините за глупый вопрос, но как мне скомпилировать Java-код в eclipse? должен ли я загружать компилятор Java для этого. @mike, я вижу UserService.java файл, но я не вижу отдельного файла для UserService.class.
Ответ №1:
думаю, проблема в статическом методе JAVA в соответствии с определением службы удаленной связи
Служба удаленного взаимодействия позволяет клиентскому приложению получать доступ к методам серверных объектов Java
В Java / oops статические методы не связаны с объектом / экземпляром, который зависит от него / ассоциирован с классом
ваш метод должен быть таким, чтобы принимать вызов из flex
public class UserService {
public User getUser(String username, String password) {
...
}
public User getUser2(String username, String password) {
...
}
}
Надеется, что это поможет
Комментарии:
1. Я использую Flex для редактирования как msml, так и java, а также опцию сборки Export Release для сборки swf-файла. Затем я копирую swf-файл на наш тестовый сервер для тестирования. Перед getUser есть статическое объявление, и оно отлично работало, но не для getUser2. В целях тестирования я удалил все статические объявления (как для getUser2, так и для getUser), и проблема все еще сохраняется. Не может быть так сложно работать в flex! Заранее спасибо за всю помощь..
2. исправление: я использую eclipse для редактирования msml и java, затем опцию eclipse Export Release Build для сборки swf-файла.
3. вопрос: нужно ли мне компилировать Java-код (например UserService.java ) отдельно? если да, то какой инструмент мне следует использовать? Спасибо.
4. Используете ли вы Flex builder?, он предоставляет тип проекта, в котором Flex amp; компилируется и развертывается вместе в WAR of BlazeDS
5. Я, наконец, понял это. Было 3 вещи, которые я сделал неправильно: 1) Мне нужно было скопировать скомпилированный класс java (UserService.class ) на сервер развертывания, а не только в файл Index.swf. 2) У проекта неверный корень содержимого и пути 3) Веб-сайту требуется перезапуск после каждого развертывания (быстрый и грязный способ — просто внести меньшее изменение в web.xml ) Изучение Java было на самом деле несложным. Большую часть времени занимала настройка Flex и изучение нюансов развертывания. Спасибо вам всем за помощь, особенно Имрану. Махало 🙂